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 轻松完成此操作。
那么普通用户如何更改 16.04 版 Numix 主题的任何方面?熟悉使用 gtk3 主题scss
而不是纯主题的人css
可以解释一下该过程吗?
答案1
在阅读了一些关于这个主题的内容,然后重新阅读readme.md
了numix 项目我意识到他们确实解释了如何手动安装并更改其主题。
问题是,这些说明假设您具备很多先决知识 - 基本上就是您是了解 CSS 的 C 开发人员。
我假设您知道 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 二进制资源构建简介
有用的资源
- GtkCss 提供程序- 它负责解析 CSS - 它似乎是使 GTK 应用程序能够读取 CSS 的基础。特别是GTK 如何在启动时读取主题的 CSS 代码:
应用程序可以通过调用 gtk_css_provider_load_from_file() 并使用 gtk_style_context_add_provider() 或 gtk_style_context_add_provider_for_screen() 添加提供程序来使 GTK+ 解析特定的 CSS 样式表。
此外,初始化 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,其中 theme-name 是当前主题的名称(请参阅“gtk-theme-name”设置),datadir 是编译 GTK+ 时配置的前缀,除非被 GTK_DATA_PREFIX 环境变量覆盖。