Gnome标题栏调整大小的通用修补程序无法普遍使用

问题描述

Gnome缩放不能在窗口栏上自动运行,因此常见的问题是如何调整它们的大小,常见的答案是在gtk.css添加一个名为~.config/gtk-3.0/文件,该文件适用于大多数窗口。但是,某些窗口(如扩展窗口)保持其高条。我唯一的猜测是将gtk.css文件复制到~.config,中每个编号的gtk版本中。

我的文件结构和gtk.css内容是:

~ $ tree .config/gtk-*

.config/gtk-2.0
├── gtk.css
└── gtkfilechooser.ini
.config/gtk-3.0
├── bookmarks
├── gtk.css
└── settings.ini
.config/gtk-4.0
├── gtk.css
└── settings.ini


~ $ cat .config/gtk-3.0/gtk.css 

.titlebar,headerbar {
    min-height: 0px;
    max-height: 4px;
    padding: 0px;
    margin: 0px;
}
headerbar entry,headerbar spinbutton,headerbar button,headerbar separator {
    min-height: 0px;
    max-height: 4px;
    padding: 0px;
    margin: 1px;
}

我提供了一个标题栏的图像,它可以正常工作,而不能正常工作。

Snapshot of testQSignalStdFunction

解决方法

某些应用程序的标题栏较高,因为它们为字幕留出了空间。由于默认设置是为字幕留出空间,而开发者必须明确地将其关闭,因此即使它们从不使用字幕,许多应用程序也会有特别高的标题栏。

GtkHeaderBar docs 说,

标题栏的高度将被设置为提供足够的空间 副标题,即使当前没有设置。如果不需要字幕, 可以关闭空间保留 gtk_header_bar_set_has_subtitle().

如果您按照GtkInspector instructions

默认情况下禁用调试器。要启用它,请确保您拥有 libgtk-3-dev(debian-naming) 或 gtk3-devel(fedora-naming) 包 安装并在终端中运行:

gsettings set org.gtk.Settings.Debug enable-inspector-keybinding true

[……一些关于 flatpak 的东西……]

要启动 GTK Inspector,请聚焦您的 GTK 应用程序并按 Control-Shift-D。或者,将鼠标光标移动到您想要的位置 小部件并按 Control-Shift-I 以专门检查下的小部件 鼠标光标。

然后您可以打开和关闭 has-subtitle 属性以查看差异:

thick header bar when has-subtitle=true

thin header bar when has-subtitle=false

不幸的是,我不知道有什么方法可以使用 CSS 或配置文件为应用程序覆盖此属性;它可能需要对 GTK 或应用程序本身进行代码更改。

也就是说,由于 GTKInspector 可以切换此属性,因此您可能可以使用一些 API/协议来模拟它在做什么。