根据应用程序更改窗口栏的颜色/样式

根据应用程序更改窗口栏的颜色/样式

我一直在大力自定义我的基本操作系统桌面,以使其看起来更符合我的喜好,并且我想知道是否可以根据正在运行的应用程序更改每个窗口上方栏的颜色。看起来这是可能的,但是当我用谷歌搜索它时,我永远找不到任何东西。事实上,我什么也没找到;没有关于它的问题,没有文章——我想我可能把它称为错误的东西,或者它根本不可能。这就是我在这里问的原因。是否可以动态更改窗口栏颜色?

另外,我的第二个问题有点像第一个问题,但没那么重要,是否可以根据打开的应用程序的颜色动态更改桌面顶部面板的颜色?我使用 ImageMagick 看到了类似的东西,但我找不到了

答案1

太长了;博士这是可能的,但它不是超级简单,并且不适用于每个应用程序。

首先,有一个叫做 Gtk.CSS 的东西,用于设置工具包的样式。如果您熟悉 CSS,您就会知道它是基于选择元素(如类和 ID)进行操作的。为了选择特定的应用程序窗口,需要设置一个可以在 CSS 中选择的 ID。有些应用程序可以,但有些应用程序不能。对我们来说幸运的是,Sam Hewitt 做了很多工作来找出哪些应用程序设置了 ID。您可以使用他的 Paper 样式表作为参考。

现在,您需要修改样式表并为您想要自定义主题的每个应用程序添加新的 CSS 规则。这可能很复杂,具体取决于您当前使用的样式表。

在小学,我们目前正在开发一个简单的 Granite 实用程序,应用程序开发人员可以使用它来设置应用程序标题栏的颜色。但这需要从应用程序的源代码中完成。

至于改变每个应用程序面板的颜色,目前这是不可能的。该面板只知道焦点应用程序的状态(最大化、平铺或未最大化)。它不会收到有关应用程序内部 CSS 的任何信息。

相关内容