如何让 yad for gtk3 自定义按钮字体、背景和前景色?



我在Raspberry Pi 3上使用GTK3(不是GTK2)的yad来显示一组按钮。 屏幕离我坐的地方很远,所以我需要一种方法来使按钮文本和突出显示的按钮突出显示。 我完全不熟悉 GTK3 的内部工作原理,只需要一步一步地做什么。 我不想更改主题或其他更全局的设置,我只是希望它适用于此 YAD 执行。 可能吗?

我看到一个博客描述了如何使用 RC 文件更改按钮样式,但那是针对使用 GTK2 库的 yad 版本。 我很快就知道这在Pi 3上对我不起作用。 我应该提到我正在使用LXDE的默认窗口管理器。

我希望有人可以逐步提供文件内容的新手,将文件放在哪里以及如何使用它。 我知道解决方案与 css 有关,但我不熟悉如何做这样的事情以及如何使 CSS 处于活动状态,也不知道在所述 css 文件中放入什么东西。

我主要解决了自己的情况。 希望这对其他人有所帮助。 它并不完美,但它满足了我的需求。

我做的第一件事是使用 GTK 调试器启动 yad。

export GTK_DEBUG=interactive
yad --title "my title" --button "button1:1" --button "button2:2" --button "button3:3" --text "some text"

在调试器中对我来说最有用的事情是选择和查找对象的名称并即时编辑 css。 我不知道css。 我把在其他网站上找到的零碎的东西拼凑在一起,这些网站大多有效。

然后另一件有帮助的事情是能够"即时"更改 GTK3 主题。 我这样做是使用以下方法:

export GTK_THEME="Adwaita-dark"

然后我再次重新运行了 yad 线。 它暂时使用了新主题。

我发现这个主题基本上是我想要的,它似乎尊重我的自定义 css。由于我没有深入研究的某种原因,使用默认主题"Adwaita"不尊重我的自定义 css。 显然,如果我选择一个不同的主题,您必须将自定义 css 放在该主题的目录中,而不是"Adwaita-dark">

为了保存我的自定义项,我创建了$HOME/.themes,并在该目录下创建了以下目录:

  • $HOME/.themes/Adwaita-dark
  • $HOME/.themes/Adwaita-dark/gtk-3.0

然后我把我的自定义css放在$HOME/.themes/Adwaita-dark/gtk-3.0/gtk中.css

这是我的自定义 css,它覆盖了 yad 的默认值:

/* The background of the entire window
box {
background-image: image(rgb(224, 224, 209));
} */
/* The progress slider */
progress {
/* background-image: image(rgb(102, 102, 255)); */
background-image: image(rgb(102, 0, 255));
}
/* this gets us the highlighting behavior */
button:focus {
color: black;
border-top-color: yellow;
border-left-color: yellow;
border-right-color: yellow;
border-bottom-color: yellow;
border-bottom-width: 10px;
border-top-width: 10px;
border-bottom-width: 10px;
background-image: image(rgb(255,102,255));
}
button {
color: yellow;
font: 24px "comic sans";
border-top-color: black;
border-left-color: black;
border-right-color: black;
border-bottom-color: black;
border-bottom-width: 10px;
background-image: image(rgb(100,100,100));
}

上面的一些指令并没有真正对这个主题做任何事情,但我把它们留了下来,以防将来我想尝试一下。 我开始 yad 的方式是这样的:

GTK_THEME="Adwaita-dark" yad --title "my title" --button "button1:1" --button "button2:2" --button "button3:3" --text "some text"

最新更新