如何在gnome-3中主题/样式标题栏?

时间:2017-12-30 03:31:56

标签: css themes gnome-3

我正在尝试为Gnome 3创建一个主题,但是我在标题栏的样式方面遇到了一些问题。我在尝试设置条形图时使用了以下CSS,但它仅适用于使用GtkHeaderBar覆盖标题栏的窗口。

headerbar {
  border: 1px solid #000000;
  border-bottom: none;
  border-radius: 4px 4px 0 0;
  box-shadow: inset 1px 1px 0px 0px rgba(255, 255, 255, 0.25), inset -1px 1px 0px 0px rgba(255, 255, 255, 0.25);
  background-image: linear-gradient(to right, rgba(109, 179, 242, 0.5) 0%, rgba(84, 163, 238, 0.5) 50%, rgba(54, 144, 240, 0.5) 51%, rgba(30, 105, 222, 0.5) 100%);
  padding: 0 5px;
}

headerbar:backdrop {
  border: 1px solid #303030;
  border-bottom: none;
  background-image: linear-gradient(to right, #C1C1C1 0%, #B1B1B1 50%, #A2A2A2 51%, #8B8B8B 100%);
}

/* Window Body */
window {
  border: 1px solid #000000;
  border-top: none;
  border-radius: 0 0 4px 4px;
  box-shadow: inset 1px -1px 0px 0px rgba(255, 255, 255, 0.25), inset -1px -1px 0px 0px rgba(255, 255, 255, 0.25);
  background-image: linear-gradient(to right, rgba(109, 179, 242, 0.5) 0%, rgba(84, 163, 238, 0.5) 50%, rgba(54, 144, 240, 0.5) 51%, rgba(30, 105, 222, 0.5) 100%);
  padding: 5px;
}

window:backdrop {
  border: 1px solid #303030;
  border-top: none;
  background-image: linear-gradient(to right, #C1C1C1 0%, #B1B1B1 50%, #A2A2A2 51%, #8B8B8B 100%);
}

window > box {
  border: 1px solid black;
  border-radius: 3px;
  box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.25);
  margin: 4px;
  background-color: #ABABAB;
  background-image: none;
}

窗口管理器似乎正在使用上次加载的主题中的样式信息,而不是我提供的CSS。我正在通过运行gsettings set org.gnome.desktop.interface gtk-theme "<theme name"来切换主题。

标题栏应该是这样的(应用于不同的窗口) Picture of theme applied properly

这是在gtk3-demo之后切换到我的主题时Ambiance窗口的样子 Picture of theme with "ambiance"

这是在gtk3-demo之后切换到我的主题时Adwaita窗口的样子 enter image description here

我的结论是,有一组单独的css节点或类与headerbar分开,尽管我在网上找到的所有建议(如使用.header-bar都没有)导致任何成功。我尝试通过使用GTK_DEBUG=interactive gtk3-demo启动交互式调试器来检查css节点层次结构,但是节点层次结构查看器在window节点处结束,该节点不包括标题栏。

gnome-3中的主题设置标题栏样式的正确方法是什么?是否有某个可用于参考的css节点的主列表?

修改:我刚刚遇到并试用了decoration代码,但它似乎与headerbar有同样的问题,它不会影响没有{的{ {1}}元素。

编辑2:现在看来我的问题不一定与我创建的CSS有关。作为尝试引发标题栏中任何更改的最后努力,我创建了一个规则GtkHeaderBar,但它对标题没有影响。我现在开始认为默认标题栏的样式不是应用程序css,可能在* { color: #00ff00; background-color: #ff0000; background-image: none}目录下的另一个文件夹中。目前我已将我的整个CSS复制到~/.themes/xyz/gtk-3.0文件夹中,但它似乎没有改变任何内容。这是我的主题树。是否缺少必需的文件?

gtk-3.20

1 个答案:

答案 0 :(得分:2)

此问题是由于忘记在gnome-tweak-tool中安装用户主题扩展程序引起的。因为某些应用程序的标题栏是由应用程序本身提供的,所以主题应用于它们,但是其他程序依赖于shell来提供标题栏,因此没有样式。