在哪里可以查找 Ubuntu Mate 中顶部和底部面板的当前颜色?

在哪里可以查找 Ubuntu Mate 中顶部和底部面板的当前颜色?

我正在制作一个在系统托盘中运行的应用程序,并且我希望能够在顶部面板栏改变颜色时交换图标,这样我可以在面板为白色时显示黑色图标,在面板为黑色时显示白色图标。

为此,我需要弄清楚 Ubuntu Mate 存储该面板的当前颜色的位置。我已经找到了在 Windows 和 OSX 以及常规 Ubuntu 和 Kubuntu 中实现此目的的方法,但当我在sudo find / -mmin 1更改主题后运行时,似乎唯一相关的更改是,~/.config/dconf/user但我无法使用 找到颜色dconf Editor,甚至找不到我已更改为的主题的名称。有什么想法吗?

答案1

在默认配置中,Ubuntu Mate 19.10 中的面板使用系统主题来确定面板颜色,该颜色由存储在两个主题文件夹之一中的 GTK3 主题之一定义:/usr/share/themes~/.themes

  • 用于dconf read /org/mate/marco/general/theme获取当前配置的主题。
  • 用于dconf watch /org/mate/marco/general/theme监视其变化。

但两者都只给出名称,因此您需要在两个文件夹中查找具有匹配名称的主题。

获得主题名称后,您可以解析 CSS 文件中的<theme folder>/<theme name>/gtk-3.0当前background-color.mate-panel-menu-bar,该值似乎是 Mate 上 GTK3 主题中面板颜色的定义。.mate-panel-menu-bar中定义的特定 css 文件不一致,颜色本身可能是十六进制值、RGB 值、GTK 函数调用的一部分或 CSS 别名(如@dark_bg_color在其他 CSS 文件之一中定义的颜色),因此您可能需要解析多个文件才能看到全貌。

当用户更改默认值,并通过将面板属性中的“背景”选项卡从 设置为 来手动设置面板颜色时None (use system theme)Solid color您可以看到以下内容dconf read

  • /org/mate/panel/toplevels/top/background/type将从none变为color
  • /org/mate/panel/toplevels/top/background/color将获得以格式定义的颜色rgb(#,#,#)
    • (例如rgb(0,0,0)黑色或rgb(255,255,255)白色)

上述路径的一部分/top/也可能根据用户为哪个面板设置颜色而改变。在我的例子中,我需要指示器小程序,它是托盘状图标所在的位置,所以我必须使用dconf read /org/mate/panel/objects/indicatorappletcomplete/toplevel-id(默认为top)来查看我正在查看哪个面板的颜色。

相关内容