因为 GTK 3 的主题不紧凑,按钮、标题栏太宽,太占空间,所以尝试着定制 GTK 3 的主题。
相关的文章及手册
# 首先,入门文章
Installing, Obtaining, and Making GTK Themes
Making GTK3 themes – Part 1: Basics
Tutorial for making GTK3 themes
# 然后,官方手册
GNOME DEVELOPER – https://developer.gnome.org
(1)GTK+ CSS Overview
(2)Widget Gallery
(3)GTK+ CSS Properties
手册(1)(2)(3)用到的频率比较高,尤其是(2)(3)会经常翻阅。
相关的开发工具
# Oomox
Customize And Create Your Own GTK2, GTK3 Themes
Oomox GitHub Repository
如何预览自己的主题?
在创建主题时,修改文件并测试效果,然后再调整代码会非常有用。这就需要一些类似于”主题浏览器“的工具:
GTK+ Change Theme
此程序可以更改 GTK 主题,并允许开发人员预览主题。该程序由一个包含许多小部件的窗口组成,从而为主题提供完整的预览。
要安装此程序,使用“apt-get install gtk-chtheme”安装。
但只能预览 GTK+ 2 的主题。
LXappearance
此程序可以更改主题,图标和字体。
但只能预览 GTK+ 2 的主题。
构建
主题下载获取及安装
到哪里下载主题?
(1)、我经常使用的是GNOME-LOOK.ORG网站,里面包含了很多 GTK 的主题。除此之外还给出了预览和安装方法等等。
(2)、还有一些其他的站点、博客文章,这就要靠你自己去搜索了。
在一般情况下,一个主题中即包含了 GTK+2 的主题,也包含了 GTK+3 的主题,它的目录结构通常类似于:
theme-name ├── gtk-2.0 │ └── ... └── gtk-3.0 └── ...
某些主题只提供了 GTK+2 或者 GTK+3 的支持,可以通过查看目录或者手册中的描述进行甄别。
主题的保存路径
Gnome-Look/SGFC – Simple Grey Flat Compact Theme
Where are stored GTK themes?
/usr/share/themes/
$HOME/.themes/
用户主题目录。建议将它们保存在$HOME/.themes 中,然后安装 gnome-shell-extension-user-theme,以便能够使用 gnome-tweak-tool 修改 gtk3 主题。
我目前使用了该目录,而没有使用$HOME/.local/share/themes/ 目录,因为那个目录中的主题虽然可以显示,但是设置主体后没有生效。
$HOME/.local/share/themes/
这也是用户的主题目录。
主题加载路径
以 GTK+3 为例,当应用启动时,将会加载确定的文件:
- 首先,加载公共配置文件:如果存在,会尝试加载$XDG_CONFIG_HOME/gtk-3.0/gtk.css 文件,这通常是~/.config/gtk-3.0/gtk.css 文件;
- 然后,加载用户主题:尝试加载~/.themes/<name>/gtk-3.0/gtk.css 文件,其中 <name> 代表了当前主题的名字;
- 最后,加载系统主题:尝试加载$datadir/share/themes/<name>/gtk-3.0/gtk.css,这通常是 /usr/share/themes/name/gtk-3.0/gtk.css 文件,其中 <name> 代表了当前主题的名字;
这表示,对于同名主题,~/.themes/ 的主题会覆盖 /usr/share/themes/ 中的同名主题。另外,/usr/share/themes/ 可以被所有用户使用,而~/.themes 中的主题只能被当前用户使用。
修改主题
可以通过 lxappearance 或者 gnome-tweak-tool 来修改主题。
Where is Gtk+ default theme saved
应用
我们的个人经验
针对 GTK+ 2 的主题,我们都很喜欢,我们比较偏向紧凑风格。
但是 GTK+ 3 就不一样了,它按钮、组件都很大,不紧凑,不经典。所以,我主要开发的是 GTK+ 3 主题。
我们在 Eclipse 修改主题的 CSS 文件,然后使用 gtk3-widget-factory(1)进行预览。不过每次修改后,都要重启 gtk3-widget-factory 进行预览,这个动作就像浏览器里的刷新,但是它又没有”重绘“功能(考虑改进以下,检测文件系统变化(inotify),然后自动重启)。
参考
Installing, Obtaining, and Making GTK Themes
Making GTK3 themes – Part 1: Basics
Tutorial for making GTK3 themes
Gtk-Theming-Guide/creating_gtk_themes.md at master · surajmandalcell/Gtk-Theming-Guide
http://www.devpy.me/10-of-the-best-linux-themes-compared/
http://satya164.deviantart.com/art/Numix-GTK3-theme-360223962
https://www.maketecheasier.com/gtk-themes-for-linux/
https://www.gnome-look.org/p/1170869/
http://www.webhostingsearch.com/articles/top-18-linux-gtk-themes.php