Тема 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
, пожалуйста, объясните процедуру?
После небольшого количества чтения на предмете и затем перечитывания 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
Приложение может заставить 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.