在 KDE 下更改 GTK3 应用程序的字体

在 KDE 下更改 GTK3 应用程序的字体

我正在运行 KUbuntu 20.04 并在那里更改了我的默认字体。KDE 系统设置 GUI 有一个用于配置 GTK 外观的按钮,但这只允许将整个主题更改为另一个预定义主题。

我找到了两个 CLI 实用程序gtk-chthemegtk-theme-switch2。其中一个(我不知道是哪一个)帮助我将更改应用于 GTK2 应用程序。

但在 GTK3 应用程序(大多数!)方面,我仍然陷入困境。

我理解 GTK 从所谓的 RC 文件转换为他们自己的 CSS 风格,但我能找到的大多数信息似乎都是针对人们创建全新的主题,这对我来说太复杂了,而且有点过度了。

搜索结果(包括这里)充斥着极其古老的问题,这无济于事。

我也对 Thunderbird 的默认字体(Tinos、Arimo、Cousine)的来源感到好奇,但这可能是另一个问题(或可能不是!)。

答案1

感谢@ysalmon 的回答,让我能够抢先弄清楚这一点。

gtk-font-name=DejaVu, 14我只需在文件中添加一行即可使其工作~/.config/gtk-3.0/settings.ini。如果此文件尚不存在,则需要使用组创建它[Settings]

[Settings]
gtk-font-name=DejaVu, 14

我发现,省略字体名称(“DejaVu”)将设置字体大小而不更改字体系列。不过,我的配置可能不具代表性。我在 Windows Subsystem for Linux 中的 Ubuntu VM 上运行,因此我没有运行 Gnome 或 KDE UI shell。独立设置可能需要其他东西。

答案2

以下是我为将 Noto Sans Condensed 设置应用于 GTK3 应用程序所做的操作。

我不知道第一部分是否必要,因为它对某些程序有效(例如 Meld、dconf-editor),但对其他程序无效(例如 Firefox、Thunderbird)。创建或添加到~/.config/font-manager/local.conf

<match target="pattern">
   <test qual="any" name="family"><string>sans-serif</string></test>
   <edit name="family" mode="assign" binding="same"><string>Noto Sans Condensed</string></edit>
</match>

第二部分;我不知道哪些步骤是真正必要的或者是否是多余的:

  • 更新~/.config/xsettingsd/xsettingsd.confGtk/FontName "Noto Sans Condensed, 11"
  • 更新~/.config/gtk-3.0/settings.inigtk-font-name=Noto Sans Condensed, 11
  • 在 dconf 下的org.gnome.desktop.interface设置font-name'Noto Sans Condensed, 11'

第三部分是考虑到 KDEPlasma GTKd将在登录时删除第二部分所做的更改。我不知道这是我的配置错误还是一个错误(KDE 将字体称为“Noto Sans”,并带有“Condensed”属性,而在 GTK 中,需要将“Noto Sans Condensed”作为字体名称;也许设置传输有问题)。所以我只是在 KDE 设置 GUI 中的启动和关机、后台服务下将其停用。

答案3

我可以确认,KDE 将字体表示为系列+样式的方式肯定存在问题,而 GTK 却没有,并且 GTKd 转换似乎出了问题。

就我而言,我在 KDE 中选择了 DejaVu Sans Condensed(DejaVu Sans 系列,Condensed 风格)。中的字体.config/kdeglobals行在末尾有风格,如font=DejaVu Sans,11,-1,5,50,0,0,0,0,0,Condensed

但是这会生成 GTK 配置文件(如上所述,有多种),其中字体名称为“DejaVu Sans”,而 GTK 需要将样式作为字体名称的一部分。因此,编辑 kdeglobals,font=DejaVu Sans Condensed,11,-1,5,50,0,0,0,0,0然后注销/登录以重建 GTK 配置对我来说是可行的。不过,如果我调整 KDE 字体,我可能必须再次编辑 kdeglobals!

相关内容