帮助创建一个基于Adwaita的新主题?

我想基于Adwaita创建一个主题。
我发现Adwaita不再使用*.css文件了。
cat /usr/share/themes/Adwaita/gtk-3.0/gtk.css
/* Adwaita is now part of GTK+ 3, this file is no longer used */

我在GitLab上找到了Adwaita的源代码。

MASTER: https://gitlab.gnome.org/GNOME/gtk/tree/master/gtk/theme/Adwaita

版本3.24.10: https://gitlab.gnome.org/GNOME/gtk/tree/3.24.10/gtk/theme/Adwaita (更新:GitLab上的“master”分支可能因为处于开发阶段而存在问题。因此,应使用更稳定的分支,如3.24.10)。
因此,我可以从GitLab下载源文件,并修改其中包含的*.scss文件以实现我想要的颜色变化。
在完成修改后,我该如何将源代码编译成新的主题,并在我的设备上部署它?
1个回答

Ubuntu 18.04

我刚刚尝试了一下,通过理解你提供的链接中的README文件,从~/Downloads/gtk-master/gtk/theme/Adwaita/路径下下载的。

  1. 已经下载了源代码压缩文件。

enter image description here

编辑了文件~/Downloads/gtk-master/gtk/theme/Adwaita/_colors.scss中的一些颜色(只是为了尝试)。
$base_color: if($variant == 'light', #00FF00, lighten(desaturate(#241f31, 100%), 2%));
$text_color: if($variant == 'light', black, white);
$bg_color: if($variant == 'light', #0000FF, darken(desaturate(#3d3846, 100%), 4%));
$fg_color: if($variant == 'light', #2e3436, #eeeeec);

$selected_fg_color: #FF0000;

enter image description here

3. 保存并关闭 4. sudo apt install sassc 5. cd ~/Downloads/gtk-master/gtk/theme/Adwaita 6. sassc -M -t compact gtk-contained.scss MyCustomized.css 7. 将此MyCustomized.css文件复制到新创建的主题文件夹中/usr/share/themes/MyCustomized/gtk-3.0/,并将其重命名为gtk.css 8. 将assets文件夹从~/Downloads/gtk-master/gtk/theme/Adwaita/复制到/usr/share/themes/MyCustomized/gtk-3.0/ 9. 可以从gnome-tweaks中选择此自定义主题。

enter image description here


Pratap,这是一个非常清晰的答案,并且在某种程度上有效...然而,我认为资产并没有生成。例如,按照你的指示操作后,复选框和单选按钮内部缺少了勾选标记和圆点图像。要理解我的意思,请在选择自定义主题后尝试打开屏幕截图应用程序,并注意所选复选框或单选按钮被渲染为红色方块。是否还需要其他步骤来生成相应的资产? - Enterprise
还有一个问题,如何从自定义主题文件生成相应的/usr/share/gnome-shell/gnome-shell-theme.gresource文件?(只需在从GitLab下载的...gtk/theme/Adwaita目录中运行glib-compile-resources命令即可吗?) - Enterprise
有趣的是,Pratap,我的/usr/share/themes/Adwaita/gtk-3.0目录下没有一个assets子目录。(我还有一个/usr/share/themes/Default目录,也没有assets子目录)。尽管如此,我按照你的建议,将源代码中的assets目录复制到了我的新的...gtk-3.0目录下,结果成功了。请在你的回答的第7步之后添加这个内容,以便帮助其他人。 - Enterprise
我注意到从GitLab的“master”分支获取源代码会产生与你描述的一样的视觉"怪癖"的主题。然后我从GitLab使用了版本号为"3.24.10"的代码(https://gitlab.gnome.org/GNOME/gtk/tree/3.24.10/gtk/theme/Adwaita)。这个版本更接近于目前安装在Ubuntu 19.04上的GTK版本3.24.8,没有那些视觉"怪癖"。我猜想"master"分支可能是"最前沿"的,很可能存在错误。 - Enterprise