Зачем нужны такие тяжелые и неудобные инструменты вроде GTK и Qt? Можно же просто использовать файл, на подобии Xresoures, только с адекватным синтаксизом, вроде .ini, или просто .conf. К примеру вот примерное содержимое theme.ini:
[color]
bg="282828FF"
fg="EBDBB2FF"
Тут bg=BackGround=Фон, fg=ForeGround=Текст, кнопочки, другое. Последние две буквы - Alpha канал, т.е. прозрачность
Так же помимо цветов нужно указывать всякие кнопочки, переключатели, ползунки, вот пример для кнопочки:
[button]
button=/usr/share/MyBestSettingsKit/button.png
text_on_button=true
text_on_button_side=right
image_on_button=true
image_on_button_side=left
Тут из контекста, думаю понятно
Ну и конечно сами картинки, что все-таки будет нарисовано на кнопочке?
[image]
settings=/usr/share/MyBestSettingsKit/images/settings.png
brush=/usr/share/MyBestSettingsKit/images/brush.png
Думаю мою идею вы поняли. Не нужен никакой софт, есть только файл, из которого другие проги собственноручно будут брать настройки. Это самый универсальный вариант, т.к это может использоваться даже в TUI интерфейсах. Также универсальность заключается в том, что можно делать отдельные настройки для разного софта:
[color/ProgrammName]
bg="#00000000"
fg="#FFFFFF00"
[button/ProgrammName]
button=/usr/share/MyProprietaryToolPath/button.png
text_on_button=true
text_on_button_side=right
image_on_button=true
image_on_button_side=left
[image]
settings=/usr/share/MyProprietaryToolPath/images/settings.png
brush=/usr/share/MyProprietaryToolPath/images/brush.png
Ну а путь к самому этому стандартному файлу можно указывать в переменной окружения
P.s. Я понимаю, что в терминале (по стандарту) нет никаких картинок, я говорил про текст.
Перемещено xaizek из desktop