字体与文字大小:代码、中文和图标怎样一起看清
区分字体、文字大小与显示缩放,排查缺字和图标问题,并恢复 Shell 与终端中的修改。
根据公开资料整理,未在实机验证。操作前请核对你的版本与硬件环境。
代码看得清,但中文像换了一套字体,时钟又太小。调整显示器缩放可能让时钟舒服了,却让所有窗口都变大。本页先区分几个控制层,再用同一段文字比较字体与大小。
示例对应固定的 Omarchy Shell 源码。先看 omarchy version、omarchy font --help 和 omarchy display text size --help;旧安装的入口可能不同。在正常图形用户会话中查询字体,SSH 里的结果不能说明桌面应用实际怎样显示。
1. 四个控制层分别改变什么
章节:1. 四个控制层分别改变什么| 控制项 | 改变什么 | 不能据此保证什么 |
|---|---|---|
| 字体家族 | 字形、间距、包含的字符 | 所有应用字号都舒服 |
| 文字大小 | Shell 和参与联动的应用文字 | 显示器排列、所有网页缩放 |
| 显示器缩放 | 桌面逻辑坐标空间的大小 | 缺失字符由哪个字体提供 |
| 应用缩放 | 一个应用中的内容 | Shell、终端一起变化 |
英文编程字体可能依靠其他字体显示中文。Nerd Font 增加桌面和终端工具使用的图标,并不意味着包含所有中文字符。中文缺字、图标缺失、输入法没启动是三个不同问题;输入文字请看中文输入指南。
2. 先记录状态和会被修改的文件
章节:2. 先记录状态和会被修改的文件omarchy font currentomarchy display text sizefc-match -f '%{family}\n' monospacegsettings 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 familyfc-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 手册 · 官方字体说明