N0r*_*ert 6 themes gtk-2 ubuntu-mate 18.04 18.10
我安装了 Ubuntu MATE 18.04 LTS。以前我在 MATE 17.10 上遇到过这个问题。我喜欢老式的 Human-Clearlooks 主题,所以我安装了 package.json human-theme。
但它在窗口标题栏中有奇怪的银色背景色:
在 16.04 LTS 中,它具有正常的 Ubuntu 橙色 - 请参见下面的屏幕截图进行比较:

我已经向 LaunchPad报告了错误 1721955,已被其他用户确认。
我该如何调试问题?你有什么想法?
如何让基于 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 窗口标题是橙色的。
小智 4
Human-Clearlooks需要 GTK+3 支持才能发挥作用。
经过一些努力,旧主题可以进行调整并可以在 Ubuntu 及其衍生版本的新版本中使用。然而,具有 Human 主题的标题栏仅在使用 Metacity 窗口管理器时才可见。
无用的警告:某些窗口管理器可能根本不显示具有人类主题的标题栏。对于 GTK+ 桌面环境,如果默认使用GNOME 中的客户端装饰(又名标题栏) ,用户可能希望禁用它并替换为标题栏以获得所需的外观。因此,这个无用的警告或变得无用的警告(包括双关语)。
以下说明将假设:
human-theme并且确切mate-themes且更喜欢执行其中任一操作;所需的包将提供基本主题:建议使用TraditionalOk 。更多信息可在本文下半部分的“故障排除”部分找到。
MATE 与 GNOME2 一样,具有轻松定制 GTK+ 主题的本机方法。用户将选择可用主题之一,然后进行自定义以与其他主题混合搭配。
转到“控制中心”>“外观 - 主题”并选择基本主题:“TraditionalOk”。单击自定义...并相应地更改相应选项卡中的选项。
TraditionalOkHuman更改为TraditionalOk)Humanity更改为MATE)MATE单击“关闭”完成,用户将看到一个新条目“自定义”,该条目将显示为第一个条目。更改会立即应用,但不会持久。要使更改持久,请选择自定义主题并单击另存为... ,然后根据需要或相应地输入名称和说明。
TraditionalHumanTraditionalOk customized with Human window border and Humanity icons可选)最后单击“保存”,用户将看到自定义主题现已从“自定义”重命名为所选名称。这将自动创建~/.themes/TraditionalHuman/index.theme自定义主题。
因此,我们用蓝色变体重新创建了 Human-Clearlooks 主题。蓝色来自基本主题:TraditionalOk,是 Clearlooksmate-themes包中的 GTK+3 端口。
兼容性:仅限 MATE/GNOME2 桌面环境。
限制:设置 A 不提供自由更改颜色的选项。定制仅限于可混合和匹配的可用主题数量。无论使用哪个主题都不应删除,否则自定义主题将被破坏。
此设置将使用可用主题的选定部分来创建新主题:简单地命名为“TraditionalHuman”,对这些包的依赖性最小:gtk2-engines、humanity-icon-theme和dmz-cursor-theme。请注意如下。
步骤 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/ .
Run Code Online (Sandbox Code Playgroud)
第 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
Run Code Online (Sandbox Code Playgroud)
步骤 3theme_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. */
...
Run Code Online (Sandbox Code Playgroud)
步骤 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"
...
Run Code Online (Sandbox Code Playgroud)
最后一步:更改主题并享受。
转到控制中心 > 外观 - 主题(或任何支持的主题管理器)并选择创建的主题“TraditionalHuman”。更改将在几秒钟后应用。
因此,我们用 Orange 变体重新创建了 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 版本上测试了 Package 中的 ClassicOk 。同一版本的主题文件将始终有效。例外情况: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 |
Run Code Online (Sandbox Code Playgroud)
“损坏”外观的示例(菜单栏中的窄对齐),以及具有 Human 主题的不受支持的窗口管理器(只有一些 Ubuntu Orange 的提示):
其他环境:Human-Clearlooks 是为 GNOME2 和 Metacity 窗口管理器设计的。Cinnamon with Muffin 窗口管理器可能原生支持 Human 主题。其他窗口管理器(如 Xfwm 或 Openbox)可能需要额外的配置才能显示确切的外观。这太宽泛了,本答案不会涵盖。
用户可以破解任何主题文件;但是,请准备好在测试环境中花费至少几个小时或可能几天。黑客主题文件通常不值得花时间(自己再试一次......不看这个答案)。更不用说GTK+主题文档很少见了。
最简单的解决方案:使用适用于新版本的任何主题。
TL;DR:使用支持 GTK+3 的主题并从中进行自定义。除非用户对主题非常感兴趣,否则不值得查看代码混乱的主题文件。我快速浏览了一下,认为很容易解决,但花了几天时间才得到这个答案。