窗口边框自定义不会影响所有应用程序

窗口边框自定义不会影响所有应用程序

[Ubuntu 22.04-GNOME 42]

我搜索了整个网络,但还没有找到一种方法,让每个应用程序都由一个带有可自定义边框的窗口来管理,无论是厚度还是颜色。我只是想在每个窗口应用程序周围都有一个 10px 宽度的绿色边框。到目前为止,我能得到的最好的方法是创建一个~/.config/gtk-3.0/gtk.css包含以下内容的文件:

decoration {
    borders: 10px solid #00FF00;
}

但这仅影响少数应用程序(使用标准 gtk 后端引擎的应用程序)。一些应用程序,如鹦鹉螺火狐,不受此修改的影响。我该如何让这些应用程序周围也带有 10 像素宽度的绿色边框?

[编辑#1]

这是我的桌面的屏幕截图,您可以在其中看到ls -al ~/.config/gtk-4.0/命令的输出。

在此处输入图片描述

另外,从同一个屏幕截图中,您可以注意到 nautilus 没有任何绿色边框。对于 Firefox 窗口也是如此,我已经用 PPA 版本替换了软件包的 snap 版本。

答案1

Ubuntu 22.04 确实如此。原因是:某些应用程序正在使用利巴德瓦伊塔库,它会覆盖任何主题(它们只是忽略它)。

有两种可能的解决方法可以解决此问题:

  1. 编辑.profile主文件夹中的文件并添加一行:export GTK_THEME=yourtheme。注销并重新登录。
  2. 创建一个文件夹.config/gtk-4.0(.config 存在于您的主文件夹中)。在那里生成一个链接:ln -s /home/\<user>/.themes/yourtheme gtk.css如果您的主题是本地安装的,否则使用/usr/share/themes/yourtheme作为链接的来源。

这将(目前)绕过 libadwaita 限制。

此解决方法不适用于通过 snap 安装的应用程序!

此外,一些应用程序使用自己的主题(LibreOffice、FreeOffice 和 Firefox)。后者使用自己的 userChrome.css。

更新

我们可以看到布局的不同“想法”:(Tweaks、gedit、nautilus 和终端): 1]

这些是使用此 css 生成的.config/gtk-3.0/gtk.css

window.csd:not(.popup)>decoration{
  border: 3px solid green;
  box-shadow: 0 0 0 3px blue;
 }


/*
decoration,window.csd {
    border: 3px solid magenta;
}
*/

decoration {
border:3px solid yellow;
}

headerbar.titlebar {
    border-top: 3px solid magenta;
    border-left: 3px solid magenta;
    border-right: 3px solid magenta;
}

调整

  1. window.csd 装饰(蓝色)
  2. 带边框的标题栏(洋红色)
  3. 内边框(绿色)

编辑

  1. window.csd 装饰(蓝色)
  2. 内边框(绿色)
  3. 不是标题(而是标题栏)

鹦鹉螺

  1. window.csd 装饰(蓝色)
  2. 既不是头栏也不是标题栏的东西

终端

  1. 有装饰,但没有窗户
  2. 标题栏
  3. 没有周围的窗口.csd

没有一个示例是 gtk-4.0 — — 所以如果我们关注 gtk-3.0 世界中的多种实现。

因此,最好的办法是在 window.csd 和装饰中使用 box-shadow,这样可以处理大部分排列。装饰部分还将绘制菜单周围的边框。可以使用 css window.popup >decoration-selector 进行修复。

相关内容