我正在运行 KUbuntu 20.04 并在那里更改了我的默认字体。KDE 系统设置 GUI 有一个用于配置 GTK 外观的按钮,但这只允许将整个主题更改为另一个预定义主题。
我找到了两个 CLI 实用程序gtk-chtheme
和gtk-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.conf
Gtk/FontName "Noto Sans Condensed, 11"
- 更新
~/.config/gtk-3.0/settings.ini
gtk-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!