Полностью изменить тему geany

Вы не указали язык программирования, поэтому я предполагаю Python для простоты.

В gtk большинство компонентов могут подключаться к событию экспонирования, которое затем можно использовать для рисования вручную в виджет (для этого используется каир, все эти виджеты имеют связанный с ними каирский контекст) [!d1 ]

Вот простой пример окна с пользовательским цветным Vbox и двумя кнопками, пространство между контейнерами (здесь установлено до 20 пикселей), а маленькая рамка вокруг кнопок показывает цвет фона VBox.

import gtk


class MyColoredBox(gtk.VBox):
    def __init__(self, homogeneous=False, spacing=0):
        super(MyColoredBox, self).__init__(homogeneous, spacing)
        self.connect("expose-event", self.expose)

    def expose(self, widget, event):
        cr = widget.window.cairo_create()
        cr.set_source_rgb(1.0, 1.0, 0.5)
        cr.rectangle(event.area.x, event.area.y,
                     event.area.width, event.area.height)
        cr.fill()


class PyApp(gtk.Window):
    def __init__(self):
        super(PyApp, self).__init__()
        self.connect("destroy", gtk.main_quit)
        vbox = MyColoredBox(False, 20)
        b1 = gtk.Button("Hello")
        b2 = gtk.Button("World")
        vbox.add(b1)
        vbox.add(b2)
        self.add(vbox)
        self.show_all()


if __name__ == "__main__":
    PyApp()
    gtk.main()

Полученная программа выглядит примерно так:

1
задан 5 December 2017 в 10:49

2 ответа

Короткий ответ: да !!

Я нашел это https://unix.stackexchange.com/a/185115:

С gtk + ≥ 3.12 вы можете загрузить определенную тему и его вариант (темный, светлый) для каждого приложения1 через переменную среды GTK_THEME = тема: вариант. Согласно руководству gtk +: GTK_THEME. Если установлено, делает GTK + использовать названную тему вместо темы, заданной параметром gtk-theme-name [...] Также можно указать вариант темы для загрузки, добавив имя варианта с двоеточием, вот так: GTK_THEME = Adwaita: dark. Итак, чтобы загрузить темный вариант, который вы запускали: GTK_THEME = Adwaita: dark gedit Аналогично, для достижения противоположности (когда тема по умолчанию темная) вы загружаете вариант света: GTK_THEME = Adwaita: light gedit Обратите внимание, что если вы хотите используйте его через пользовательскую программу запуска (файл .desktop), вам нужно будет добавить env к команде в строке Exec: Exec = env GTK_THEME = Adwaita: dark eog% U 1: Стоит отметить, что - согласно решению разработчика - новее gnome-terminal имеет собственную конфигурацию через меню> предпочтения и игнорирует тему. Кроме того, поскольку это довольно новый материал, некоторые приложения gtk + 3 могут пока (но не соблюдать) переменную env GTK_THEME (одним из них является nautilus).

Также вам нужно будет использовать пользовательский набор значков для этого приложения, поэтому я нашел на https://unix.stackexchange.com/a/185115 :

С gtk + ≥ 3.12 вы можете загрузить определенную тему и ее вариант (темный, светлый) для каждого приложения1 через переменную среды GTK_THEME = theme: variant. В соответствии с справочником gtk +:

Производится за исключением некоторых приложений (например, VLC) от использования текущей темы gtk3 create any folder path/to/FOLDER create a icons/ folder inside it put your desired icon set folder in it and rename that folder with the name of current icon set

GTK_THEME. Если установлено, делает GTK + использовать названную тему вместо темы, заданной параметром gtk-theme-name [...] Также можно указать вариант темы для загрузки, добавив имя варианта с двоеточием, например: GTK_THEME = Adwaita: dark.

XDG_DATA_DIRS = / path / to / FOLDER /: $ XDG_DATA_DIRS

Итак, чтобы загрузить темный вариант, который вы запускали:

Использование корицы metacity border-decoration, это в папке тем / метафильм-1 /. Я не знаю, как настроить его для конкретного приложения. Ошибка XDG_DATA_DIRS выше не будет работать.

GTK_THEME = Adwaita: dark gedit

GTK_THEME = Adwaita: dark XDG_DATA_DIRS = / path / to / FOLDER /: $ XDG_DATA_DIRS

Аналогично, для достижения противоположности (когда тема по умолчанию темная), вы загружаете вариант света:

Exec = sh -c "GTK_THEME = Adwaita: темный XDG_DATA_DIRS = / путь / в / FOLDER /: $ XDG_DATA_DIRS% F"
0
ответ дан 18 July 2018 в 01:53

Короткий ответ: да !!

Я нашел это https://unix.stackexchange.com/a/185115:

С gtk + ≥ 3.12 вы можете загрузить определенную тему и его вариант (темный, светлый) для каждого приложения1 через переменную среды GTK_THEME = тема: вариант. Согласно руководству gtk +: GTK_THEME. Если установлено, делает GTK + использовать названную тему вместо темы, заданной параметром gtk-theme-name [...] Также можно указать вариант темы для загрузки, добавив имя варианта с двоеточием, вот так: GTK_THEME = Adwaita: dark. Итак, чтобы загрузить темный вариант, который вы запускали: GTK_THEME = Adwaita: dark gedit Аналогично, для достижения противоположности (когда тема по умолчанию темная) вы загружаете вариант света: GTK_THEME = Adwaita: light gedit Обратите внимание, что если вы хотите используйте его через пользовательскую программу запуска (файл .desktop), вам нужно будет добавить env к команде в строке Exec: Exec = env GTK_THEME = Adwaita: dark eog% U 1: Стоит отметить, что - согласно решению разработчика - новее gnome-terminal имеет собственную конфигурацию через меню> предпочтения и игнорирует тему. Кроме того, поскольку это довольно новый материал, некоторые приложения gtk + 3 могут пока (но не соблюдать) переменную env GTK_THEME (одним из них является nautilus).

Также вам нужно будет использовать пользовательский набор значков для этого приложения, поэтому я нашел на https://unix.stackexchange.com/a/185115 :

С gtk + ≥ 3.12 вы можете загрузить определенную тему и ее вариант (темный, светлый) для каждого приложения1 через переменную среды GTK_THEME = theme: variant. В соответствии с справочником gtk +:

Производится за исключением некоторых приложений (например, VLC) от использования текущей темы gtk3 create any folder path/to/FOLDER create a icons/ folder inside it put your desired icon set folder in it and rename that folder with the name of current icon set

GTK_THEME. Если установлено, делает GTK + использовать названную тему вместо темы, заданной параметром gtk-theme-name [...] Также можно указать вариант темы для загрузки, добавив имя варианта с двоеточием, например: GTK_THEME = Adwaita: dark.

XDG_DATA_DIRS = / path / to / FOLDER /: $ XDG_DATA_DIRS

Итак, чтобы загрузить темный вариант, который вы запускали:

Использование корицы metacity border-decoration, это в папке тем / метафильм-1 /. Я не знаю, как настроить его для конкретного приложения. Ошибка XDG_DATA_DIRS выше не будет работать.

GTK_THEME = Adwaita: dark gedit

GTK_THEME = Adwaita: dark XDG_DATA_DIRS = / path / to / FOLDER /: $ XDG_DATA_DIRS

Аналогично, для достижения противоположности (когда тема по умолчанию темная), вы загружаете вариант света:

Exec = sh -c "GTK_THEME = Adwaita: темный XDG_DATA_DIRS = / путь / в / FOLDER /: $ XDG_DATA_DIRS% F"
0
ответ дан 24 July 2018 в 17:28

Другие вопросы по тегам:

Похожие вопросы: