跳转到内容
omarchyFIELD GUIDE
实用知识 / FIELD GUIDE

字体与文字大小:代码、中文和图标怎样一起看清

区分字体、文字大小与显示缩放,排查缺字和图标问题,并恢复 Shell 与终端中的修改。

根据公开资料整理,未在实机验证。操作前请核对你的版本与硬件环境。

代码看得清,但中文像换了一套字体,时钟又太小。调整显示器缩放可能让时钟舒服了,却让所有窗口都变大。本页先区分几个控制层,再用同一段文字比较字体与大小。

示例对应固定的 Omarchy Shell 源码。先看 omarchy version、omarchy font --help 和 omarchy display text size --help;旧安装的入口可能不同。在正常图形用户会话中查询字体,SSH 里的结果不能说明桌面应用实际怎样显示。

1. 四个控制层分别改变什么

章节:1. 四个控制层分别改变什么
控制项 改变什么 不能据此保证什么
字体家族 字形、间距、包含的字符 所有应用字号都舒服
文字大小 Shell 和参与联动的应用文字 显示器排列、所有网页缩放
显示器缩放 桌面逻辑坐标空间的大小 缺失字符由哪个字体提供
应用缩放 一个应用中的内容 Shell、终端一起变化

英文编程字体可能依靠其他字体显示中文。Nerd Font 增加桌面和终端工具使用的图标,并不意味着包含所有中文字符。中文缺字、图标缺失、输入法没启动是三个不同问题;输入文字请看中文输入指南。

2. 先记录状态和会被修改的文件

章节:2. 先记录状态和会被修改的文件
终端窗口
omarchy font current
omarchy display text size
fc-match -f '%{family}\n' monospace
gsettings get org.gnome.desktop.interface text-scaling-factor

文字大小工具会报告 Shell 大小、GTK 因子和检测到的一份终端字号。有多份终端配置时,它不是所有终端的完整清单。字体匹配只表示 fontconfig 的选择,不等于所有应用的真实显示结果。

两种工具都会改多处个人文件。使用前,把下面存在的文件分别复制到新的备份名称;不存在的文件也记录下来,因为恢复“原来不存在”与复制回旧文件不同。

文件 为什么要保存
~/.config/fontconfig/fonts.conf 个人 monospace 字体偏好;字体工具会重写这个文件
~/.config/omarchy/shell.toml Shell 个人文字大小
~/.config/foot/foot.ini Foot 字体与字号
~/.config/ghostty/config Ghostty 字体与字号
~/.config/kitty/kitty.conf Kitty 字体与字号;工具可能新建它
~/.config/alacritty/alacritty.toml Alacritty 字体与字号

例如 Foot 文件存在时:

终端窗口
cp -i ~/.config/foot/foot.ini ~/.config/foot/foot.ini.before-font-edit

其他存在的文件也按各自路径保存。若 fonts.conf 已有你维护的回退规则,更要先备份:字体工具不会把生成的 XML 与任意个人规则自动合并。GTK 因子另外记录;只还原文件不能还原通过 gsettings 保存的桌面设置。

3. 用同一段内容比较字体

章节:3. 用同一段内容比较字体

通过 Style → Font 看可选字体,也可以查询:

终端窗口
omarchy font list

从列表选择已经安装的家族。例如下面字体确实在列表中时:

终端窗口
omarchy font set "CaskaydiaMono Nerd Font"

在 Shell、新开的终端和编辑器里比较同一段内容:

O0 Il1 {} [] () => != /usr/share/omarchy
中文阅读与 English code 123:标点、选中与注释

这是阅读样本,不是命令。检查容易混淆的字母、标点、注释、光标和选中文字;终端里再看对齐的列是否仍对齐。比例字体适合正文阅读,但可能破坏终端界面对等宽字符的假设。

Shell 通过 fontconfig 解析 monospace。编辑器可以指定另一套字体,网页也可以请求自己的家族。只有一个应用没变化时,先查看它自己的字体设置,再判断系统字体切换是否失败。

4. 选好家族后再调整文字大小

章节:4. 选好家族后再调整文字大小

本源码的字体工具会把 Foot 的字体行设置为字号 9。因此先选字体家族,再设置期望的文字大小;反过来操作,后续换字体可能把 Foot 字号改回去。

终端窗口
omarchy display text size 14

本源码接受 9 到 20 的整数。工具一起调整 Shell 基础字号、GTK 文字缩放和受支持终端的配置字号,不保证所有应用内容都随之变化。

Shell 基础字号 工具写入的终端字号
12 px 9 pt
14 px 11 pt
16 px 12 pt

单位不同,终端结果还有取整;GTK 因子也会按界面字体的点数量化。设为 14 不代表屏幕上每个字都恰好高 14 个物理像素。

已经运行的 Foot 保留启动时字号。先保存工作,再开一个新窗口比较,不要杀掉承载任务的终端。其他终端也有各自的重载方式。只想放大 Shell 或固定顶栏高度,可使用影响范围更小的顶栏外观设置。

5. 中文回退和图标缺失怎样区分

章节:5. 中文回退和图标缺失怎样区分
终端窗口
fc-list :lang=zh family
fc-match -f '%{family}\n' 'monospace:charset=4e2d'

第一条列出声明支持中文的已安装家族。第二条查询包含“中”(U+4E2D)的字体匹配,可以帮助识别候选回退字体,但一个字不能验证整篇文档、Emoji 或应用自带的渲染器。

如果多个应用都把中文显示成方框,且第一条没有合适结果,通过正常软件包入口安装适合的 CJK 字体,再重新打开应用。用本机可用的软件包名称,不要照搬其他发行版的包名。

中文正常、顶栏图标是方框时,确认选中的是预期的 Nerd Font 且真正安装。只有一个编辑器图标缺失,则先检查编辑器字体。不要为缺失字形重新安装输入法。

6. 继续缩小不一致的范围

章节:6. 继续缩小不一致的范围
现象 有用的比较
只有一个应用仍很小 应用缩放与显式字体设置
旧 Foot 小,新 Foot 大 启动配置,而非写文件失败
整个桌面都太大 显示器缩放与只放大文字的区别
中文能显示但宽度、基线不同 回退字体与应用渲染
顶栏随文字一起变高 [bar] scale-with-font 与可用高度
菜单的大字被裁切 先减小一档,比较应用和版本布局

不要同时修改显示缩放、统一字号和应用缩放,否则无法解释是哪一步产生效果。混合 DPI 多屏先按显示器指南调整几何布局,再调文字舒适度。

7. 精确恢复与恢复默认不同

章节:7. 精确恢复与恢复默认不同

omarchy display text size reset 会移除个人 Shell 基础字号覆盖、重置 GTK 设置,并把终端字号设为 9 pt。它是恢复工具默认值,不是恢复你以前定制过的状态;当前主题仍可能提供自己的 Shell 字号。

精确撤销需要还原保存的文件,以及记录的 GTK 因子。例如 gsettings set org.gnome.desktop.interface text-scaling-factor 1.0 只有在原值确实为 1.0 时才正确。原来不存在的文件,先确认没有后来要保留的修改,再将新文件归档。未锁定时重启 Shell,按需要重开受影响应用。

最后检查英文、中文、图标、选中文字和一个新终端,再切换另一个主题并切回。个人覆盖适用的地方应保留文字偏好,这个比较能区分字体选择、字号是否保留和主题可读性。

来源与关联指南

章节:来源与关联指南

字体工具源码 · 文字大小工具源码 · Fontconfig 手册 · 官方字体说明

继续阅读顶栏定制或应用主题差异。