我安装了 Ubuntu MATE 18.04 LTS。之前我在 MATE 17.10 上遇到了这个问题。我喜欢老式的 Human-Clearlooks 主题,所以我安装了human-theme
这个包。
但是窗口标题栏有奇怪的银色背景颜色:
在 16.04 LTS 中它具有正常的 Ubuntu 橙色 - 请参阅下面的屏幕截图进行比较:
我已经报告了错误 1721955到 LaunchPad,它已得到其他用户的确认。
我该如何调试这个问题?你有什么想法吗?
如何让基于 GTK2 的主题在基于 GTK3 的 Ubuntu 中再次运行?
更新 20180505:Ubuntu MATE 18.04 LTS 也受到影响。我们有一个ubuntu-mate.community 上的讨论。
更新 20190128:Ubuntu MATE 18.10 和即将推出的 19.04 也受到影响。
更新 20190131:以下是使用 Human 主题的 Ubuntu MATE 18.04 LTS 的屏幕截图 -
这里的灰色不同。但在 Ubuntu 16.04 MATE LTS 上,Gtk2 窗口标题是橙色的。
答案1
Human-Clearlooks需要 GTK+3 支持才有用。
经过一些努力,旧主题可以适应并可用于较新版本的 Ubuntu 及其衍生产品。但是,只有使用 Metacity 窗口管理器时,带有 Human 主题的标题栏才会显示出来。
无用的警告:某些窗口管理器可能根本不显示带有 Human 主题的标题栏。对于 GTK+ 桌面环境,如果客户端装饰(又称GNOME 中的标题栏默认情况下使用,用户可能想要禁用它并用标题栏替换以获得所需的外观。因此出现了这个无用警告或变得无用的警告(包括双关语)。
以下说明将假设:
- 用户已从 Universe 存储库安装了所需的软件包:
human-theme
并且确实mate-themes
并且愿意做其中任何一件事; - 设置 A(简单):Human-Clearlooks 主题带有蓝色变体,或者,
- 设置 B:带有蓝色/橙色变体的 Human-Clearlooks 主题。
所需的软件包将提供基础主题:传统Ok建议。更多信息请见本文下半部分,故障排除部分。
设置 A(简单)
MATE 与 GNOME2 一样,具有一种轻松自定义 GTK+ 主题的原生方式。用户将选择一个可用主题,然后自定义以与其他主题混合搭配。
去控制中心 > 外观 - 主题并选择基本主题:传统Ok。 点击定制...并相应地更改相应选项卡中的选项。
- 控制:
TraditionalOk
- 窗口边框:(
Human
更改自TraditionalOk
) - 图标:(
Humanity
更改自MATE
) - 指针:
MATE
点击关闭完成,用户将看到一个新条目风俗将显示为第一个条目。更改将立即应用,但不会持久。要使更改持久,请选择自定义主题并单击另存为...并输入姓名和描述按照需要或相应地。
- 姓名:
TraditionalHuman
- 描述:(
TraditionalOk customized with Human window border and Humanity icons
可选)
最后点击节省用户将看到自定义主题现已重命名为风俗为所选名称。这将自动创建~/.themes/TraditionalHuman/index.theme
自定义主题。
因此,我们重新创建了带有蓝色变体的 Human-Clearlooks 主题。蓝色来自基础主题:TraditionalOk,这是 Clearlooksmate-themes
软件包的 GTK+3 端口。
兼容性:仅限 MATE/GNOME2 桌面环境。
局限性:设置 A 不提供自由更改颜色的选项。自定义仅限于可供混合搭配的主题数量。无论使用哪种主题都不应删除,否则自定义主题将被破坏。
设置 B
此设置将使用可用主题的选定部分来创建一个新主题:简单地命名为“TraditionalHuman”,对这些包的依赖最少:gtk2-engines
,humanity-icon-theme
和dmz-cursor-theme
. 请注意以下几点。
- 对于蓝色变体的 Human-Clearlooks(与设置 A),仅需遵循以下步骤:1、2、最终。
- 对于带有 Orange 变体的 Human-Clearlooks,请遵循以下所有步骤。
步骤1:在 处创建本地主题目录,~/.themes
并将以下可选文件从可用主题复制到本地主题目录。可用的主题:Human、Human-Clearlooks、TraditionalOk。
$ cd $HOME
$ mkdir -p .themes/TraditionalHuman
$ cd .themes/TraditionalHuman
$ cp /usr/share/themes/Human/index.theme .
$ cp /usr/share/themes/Human/cursor.theme .
$ cp -R /usr/share/themes/Human/metacity-1/ .
$ cp -R /usr/share/themes/Human-Clearlooks/gtk-2.0/ .
$ cp -R /usr/share/themes/TraditionalOk/gtk-3.0/ .
第2步:编辑index.theme
以下内容的文件来定义本地主题。
$ nano index.theme
[Desktop Entry]
Type=X-GNOME-Metatheme
Name=TraditionalHuman
Comment=Make TraditionalOk more Human
Encoding=UTF-8
[X-GNOME-Metatheme]
GtkTheme=TraditionalHuman
IconTheme=Humanity
MetacityTheme=TraditionalHuman
CursorTheme=TraditionalHuman
步骤3:编辑包含 和 的行theme_selected_bg_color
,core_color_a
并将十六进制值替换为。注意:保留末尾的#ffbe6b
分号!;
$ nano gtk-3.0/gtk.css
...
@define-color theme_selected_bg_color #ffbe6b;
...
@define-color core_color_a #ffbe6b; /* Core color for blue widgets in TraditionalOk. */
...
步骤4:编辑包含的行selected_bg_color
并将十六进制值替换为#ffbe6b
。注意事项:这是一行很长的内容。保留\n
实例!
$ nano gtk-3.0/settings.ini
...
gtk-color-scheme = "base_color:#ffffff\nbg_color:#edeceb\nfg_color:#000000\nselected_bg_color:#ffbe6b\nselected_fg_color:#ffffff\ntooltip_bg_color:#f5f5b5\ntooltip_fg_color:#000000\ntext_color:#1a1a1a\nlink_color:#0000ee\nvisited_link_color:#551a8b"
...
最后一步:更改主题并享受。
去控制中心 > 外观 - 主题(或任何支持的主题管理器)并选择创建的主题“TraditionalHuman”。更改将在几秒钟后应用。
因此,我们重新创建了带有橙色变体的 Human-Clearlooks 主题。橙色来自#ffbe6b
原始 Human-Clearlooks 主题中使用的十六进制值。
变化:如果用户希望同时拥有蓝色和橙色两种变体的人类主题,请确保为每个变体赋予不同的名称. 这意味着,用户应该为创建的主题目录和文件中使用的每个名称实例指定不同的名称index.theme
。
例如,我将蓝色变体重命名为“TraditionalHuman”,将橙色变体重命名为“TraditionalHumanMore”,如下图所示。
用户还可以使用不同的颜色创建更多变化。
兼容性:MATE/GNOME2 和其他 GTK+ 桌面环境。
局限性:设置 B 主要依赖于用户主动性。主题文档可能有用,但很少找到。定制是可行的还是不可能的:取决于用户是否能够理解主题文件的工作原理。
故障排除
为了理解主题的工作原理,请遵循以下附加说明。
基本主题:这应该是最兼容的主题。一个常见的错误是用户倾向于使用旧版主题,这是兼容性最差的。不要使用,我的意思是不使用以人类主题为基本主题(故意重复)。
无法按预期进行自定义的“错误”基础主题示例:
颜色选择:检查原始主题文件以确保无误,并且不要使用颜色选择器对桌面上看到的表观颜色进行选择。表观颜色不是实际颜色:Human-Clearlooks 使用 Ubuntu Orange (#ffbe6b) 作为主色调,但标题栏采用 Human 主题才不是显示此颜色本身。
安装目录:自定义主题仅安装在~/.themes
主目录中的当前用户。对于系统范围的用户,请安装到/usr/share/themes
。系统范围的主题必须以适当的权限安装755
,否则主题可能会出现损坏。
但无法使用:无论设置如何,都使用相同版本的主题文件。不要混合不同版本的主题文件,否则结果就是无法使用的主题!
我至少已经mate-themes
在所有受支持的 LTS 版本上测试了软件包中的 TraditionalOk。同一版本的主题文件始终有效。例外情况:14.04 和 16.04 中的主题文件相当向后和向前兼容,几乎没有明显缺陷。
| \theme | TraditionalOk |
| system\ | 18.04 | 16.04 | 14.04 |
| ----------- | ------ | ------ | ------ |
| 18.04 | OK | BROKEN | BROKEN |
| 16.04 | BROKEN | OK | FAIR |
| 14.04 | BROKEN | FAIR | OK |
“破损”外观的示例(菜单栏中的窄对齐),以及不受支持的带有 Human 主题的窗口管理器(仅带有一些 Ubuntu Orange 的提示):
其他环境:Human-Clearlooks 是为 GNOME2 和 Metacity 窗口管理器设计的。带有 Muffin 窗口管理器的 Cinnamon 可能原生支持 Human 主题。其他窗口管理器(如 Xfwm 或 Openbox)可能需要额外配置才能显示准确的外观。这太过宽泛,本回答不作介绍。
用户可以破解任何主题文件;但是要做好准备至少要花几个小时,也可能要花几天在测试环境中。破解主题文件通常不值得花时间(自己再试一次……不看这个答案)。更不用说很少找到 GTK+ 主题文档。
最简单的解决方案:使用适合较新版本的任何主题。
总结:使用支持 GTK+3 的主题并从中进行自定义。除非用户对主题非常感兴趣,否则不值得查看代码混乱的主题文件。我快速浏览了一下,认为很容易修复,但却花了几天时间才找到这个答案。