在哪里可以找到 GNOME 3 主题的参考方案(例如 Adwaita)?

在哪里可以找到 GNOME 3 主题的参考方案(例如 Adwaita)?

我升级到了 Fedora 21,它重点关注 GNOME 3.14(以及相关的 GTK+ 材料)。不幸的是,这个特定的更新似乎破坏了我为现已老化的 GNOME 3 版本编写的许多旧主题。以前它们可能会吱吱作响,但现在看起来有点格格不入。

我不想重新发明轮子:我很乐意采用预先存在的 CSS 模板(例如默认的 Adwaita 3.14 规范)并根据我的喜好到处调整它;不会有什么花哨的飞行。想象一下当我偷看 /usr/share/themes/Adwaita/gtk-3.0/gtk.css 时我撕掉的头发:

/* Adwaita is the default theme of GTK+ 3, this file is not used */

这让我陷入了困境。我缺乏 Google-fu 来挖掘有关这可能在哪里的文档(更糟糕的是,我有一种直觉,这对 GNOME 人来说是显而易见的,而我一直错过了),并且出于某种原因,GNOME 开发者网站拒绝了我尝试研究他们的主题规范。

简而言之,我想找到一个 GNOME 3.14 的原始主题规范(假设存在)。我该如何做到这一点,或者如何修改我的方法?

答案1

该文件中只有一行,.css因为默认主题 Adwaita 以二进制形式提供:

Adwaita 是一个复杂的主题,因此为了保持其可维护性,它是在 SASS 中编写和处理的,然后在 gtk 构建期间将生成的 CSS 转换为 gresource 文件,并在运行时以不可读或可编辑的形式使用。


对于gnome 4.*自述文件:

如何调整主题


Default 是一个复杂的主题,因此为了保持其可维护性,它是在 SASS 中编写和处理的。然后,生成的 CSS 在 gtk 构建期间转换为 gresource 文件,并在运行时以不可读或可编辑的形式使用。

您的更改很可能会发生在 _common.scss 文件中。这是定义所有小部件选择器的地方。以下是“支持”样式表的概要,不太可能是通过样式表修复进行驱动的正确位置:

_colors.scss - 全局颜色定义。我们将定义的颜色数量保持在必要的最低限度,大多数颜色都源自少数基础知识。它涵盖了浅色变体和深色变体。

_colors-public.scss - 通过 gtk 导出的 SCSS 颜色,以允许第 3 方应用程序进行颜色混合。

_drawing.scss - 绘图助手混合/函数,以允许在特定上下文下更轻松地定义小部件绘图。这就是默认值不是 15000 LOC 的原因。

_common.scss - 每个小部件的实际样式定义。您可以在此处添加/删除更改。

您可以在以下位置阅读有关 SASS 的信息:http://sass-lang.com/documentation/。一旦您对 _common.scss 文件进行更改,GTK 将重建 CSS 文件。

另外,请检查中的指南默认light.scss默认-dark.scss:

// 一般准则:
// - 您不太可能想要编辑其他内容_common.scss
// - 将定义的颜色数量保持在最低限度,
如果您需要微妙的阴影,请使用颜色混合功能; - 如果您需要反转颜色函数
// 使用 @if 指令来匹配深色 $variant

在同一个 git 目录 ( Default) 中,您将找到这些文件
_common.scss,_colors.scss,_colors-public.scss_drawing.scss


对于gnome 3.*
由于代码已包含在gtk+,可以查看源文件这里。根据他们的readme

_colors.scss        - global color definitions. We keep the number of defined colors to a necessary minimum, most colors 
                      are derived form a handful of basics. It covers both the light variant and the dark variant.
_colors-public.scss - SCSS colors exported through gtk to allow for 3rd party apps color mixing.
_drawing.scss       - drawing helper mixings/functions to allow easier definition of widget drawing under specific context.
                      This is why Adwaita isn't 15000 LOC.
_common.scss        - actual definitions of style for each widget. This is where you are likely to add/remove your changes.

在同一个git目录( Adwaita)中你可以找到_*.scss上面提到的文件和参考方案:

gtk-contained.css
gtk-contained-dark.css

答案2

我在这里复制我自己的 TLDR,来自关于窗口顶栏颜色的类似问题

〜/.config/gtk-3.0/gtk.css

    /* REMOVE "-dark" IF USING LIGHT THEME */
    @import url("resource:///org/gtk/libgtk/theme/Adwaita/gtk-contained-dark.css");
    
    /* THIS ONE CHANGES TITLEBAR COLOR */
    headerbar.titlebar,
    headerbar.titlebar:active {
        background:#3F51B5;
    }
    
    /* THIS CHANGES NAUTILUS SEARCH BAR */
    .horizontal.path-bar-box,
    row:selected:backdrop {
         background:#3F51B5;
         border-color:#3F51B5;
    }

要调试并找到合适的 CSS 选择器,请使用环境变量打开 GTK3 应用程序GTK_DEBUG=interactive。例如,

GTK_DEBUG=interactive nautilus

这应该会打开 GTK 窗口的检查器。如果不存在,请按Ctrl+ Shift+ I

检查员的屏幕截图

相关内容