Настройка новых тем GTK3

Тема Numix доступна путем установки shimmer-themes из центра программного обеспечения. Он установлен по умолчанию в Xubuntu.

В 14.04 я смог изменить некоторые аспекты темы, непосредственно редактируя файлы, такие как usr/share/themes/Numix/gtk-3.0/gtk.css или usr/share/themes/Numix/gtk-3.0/gtk-widgets.css.

Даже в 15.10, решение, как описано в Как установить пользовательский цвет подсветки текста , может быть легко применено.

Но в 16.04 такой же подход не представляется возможным. Я посмотрел файл README.md на странице разработчика здесь: https://github.com/numixproject/numix-gtk-theme . Несколько цитат оттуда:

Если вы хотите взломать тему, убедитесь, что у вас есть команда inotifywait, которая используется для просмотра и автоматического построения файлов.

и

Если вы измените какие-либо активы, вам потребуется заново создать файлы gtk.gresource.xml и gtk.gresource. Вы можете использовать grrr, чтобы сделать это легко.

Итак, как обычный среднестатистический пользователь может изменить любой аспект темы Numix, доступный для 16.04? Может кто-нибудь, знакомый с темами gtk3, которые используют scss, а не только простые css, пожалуйста, объясните процедуру?

3
задан 13 April 2017 в 15:25

1 ответ

После небольшого количества чтения на предмете и затем перечитывания readme.md в numix проекте я понял, что они на самом деле объясняют, как вручную установить и внести изменения в их тему.
Вещь состоит в том, что инструкции принимают большое необходимое как условие знание - в основном, что Вы - разработчик C, который знает CSS.
Я предполагаю, что Вы знаете, что исходный код для языков как C компилируется в двоичные исполняемые файлы и/или файлы библиотеки, и что SASS/SCSS является предварительным компилятором (своего рода "более высокий" язык), который компилируется в CSS, который является исходным кодом, который интерпретируется - и не компилируется в двоичную форму. Из того, что я могу сказать, что обзор похож на это:

                          +--------------------------------------------------------------+
 +------+                 |  +---------------------+                                     |
 |      |   you need to   |  | CSS files           |         Numix theme                 |
 |SASS  |   "compile"     |  | ordinary text (code)|         i.e. files in               |
 |files |   SASS to CSS   |  |                     |         /usr/share/themes/Numix Daily/gtk-3.0
 |    +------------------------->             <------------------------------------------+----------+
 |      |                 |  +---------------------|                                     |          |
 |      |                 |   +------------------------+                                 |          |
 +------+                 |   | gtk.resource           |                                 |          |
 If you change this       |   | (compiled binary    <-----+                              |          |
 you need to recompile    |   | file)                  |  |                              |          |
 (update the CSS          |   +------------------------+  |                              |          |
                          +--------------------------------------------------------------+          |
 files)                      +----------------------+     |                                         |
                             | GTK library          |     |  +---------------------------+          |
+--------------------+       | (binary library)     |     |  |  GTK and C developer tools|          |
| Application        |       |                      |     |  |  used to recompile        |          |
| e.g. Gnome terminal|       | Configured to use    |     |  |  gtk.gresource            |          |
| Nautilus etc       |       | Numix Theme          |     |  |                           |          |
| that uses GTK      |       |                      |     +----+                         |          |
| library            |       |                      |        |                           |          |
| (binary            |       |                      |        |                           |          |
| executable)        |       |                      |        +---------------------------+          |
+--------------------+       |                      |                                               |
                             |Makes call to         +                                               |
                             |gtk_css_provider_load_from_file() +----------------------------------->
                             |
                             +----------------------+

Таким образом, тема Numix и я предполагаем, что много/всех темы GTK-3.0 включают двоичные ресурсы и код CSS, который анализируется вызовом функции gtk_css_provider_load_from_file() который, кажется, новое дополнение к GTK-3.0.
numix проект предлагает, чтобы Вы только перекомпилировали gtk-gresource если Вы изменяете какие-либо активы. Таким образом, я не обеспокоился бы тем - если Вы действительно не должны. Если Вам действительно нужно, вот введение в создание двоичного ресурса GTK

Полезные ресурсы

  • GtkCssProvider - это ответственно за парсинг CSS - это, кажется, действительно основа для того, чтобы подать заявки GTK, которые в состоянии прочитать CSS. особенно, как GTK прочитает код CSS для темы на запуске:

Приложение может заставить GTK + анализировать определенную таблицу стилей CSS путем вызова gtk_css_provider_load_from_file () и добавления поставщика с gtk_style_context_add_provider () или gtk_style_context_add_provider_for_screen ().
Кроме того, определенные файлы будут считаны, когда GTK + будет инициализирован. Во-первых, $XDG_CONFIG_HOME/gtk-3.0/gtk.css файла загружается, если он существует.
Затем GTK + пытается загрузить $HOME/.themes/theme-name/gtk-3.0/gtk.css, отступая к datadir/share/themes/theme-name/gtk-3.0/gtk.css, где имя темы является названием текущей темы (см., что "gtk-theme-name" устанавливает), и datadir является префиксом, настроенным, когда GTK + был скомпилирован, если не переопределено переменной среды GTK_DATA_PREFIX.

3
ответ дан 14 April 2017 в 01:25
  • 1
    @TheBlueKingLP: Что на самом деле должно быть, происходят? I' ve читают немного о phpbb, и я думаю, что необходимо добавить правила вручную . Isn' t это? – pa4080 6 October 2017 в 20:30

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

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