当我使用 Windows(很久以前!)和 Mac OS X 时,总是有一个由操作系统和所有程序共享和访问的字体的中央“存储库”(Windows 中的字体文件夹和 Mac 中的字体簿)操作系统 X)。
Linux 中如何管理字体?是否还有一个所有程序(没有 X 的 shell、有 X 的 shell、窗口管理器、其他 GUI 软件)都可以使用的字体中央存储?或者字体是单独管理的吗?如何在 Linux 中高效、轻松地管理我的字体?
答案1
X 领域的字体有两种机制:服务器端和客户端。
渲染字体的传统方法是客户端告诉服务器“渲染字体”foo
在字体 F 中的位置 (x,y) 处渲染”(其中字体规范包括字体、大小、编码和其他属性)。要么是 X 服务器本身,要么是一个称为字体服务器,打开字体文件以构建每个字形的描述。字体可以是位图或矢量字体,但矢量字体在渲染之前会转换为位图。
大多数现代程序通常通过客户端字体渲染xft和字体配置。由于服务器端字体渲染不支持抗锯齿,因此需要一种新机制。
在X之外(即在VGA控制台上),有VGA字体,它们是特定尺寸的位图字体。但与X11相比,没有人使用VGA控制台,因此没有在他们身上花费太多精力。
在实践中,您需要通过两种方式配置字体:
答案2
控制台字体和 X 字体在 Linux 中是两个独立的东西。使用该命令setfont
更改字体,并showconsolefont
查看它的外观。每个发行版都有自己的设置默认控制台字体的方法。请阅读setfont
手册页以了解控制台字体的位置。对于我的 Fedora 14 系统,它是 /lib/kbd/consolefonts/。控制台字体是定义 EGA/VGA 控制台字体的文件格式。
X 字体的格式与控制台字体不同。它们通常由 X 配置中的定义(在“文件”部分中使用 FontPath)或通过字体服务器 (xfs) 进行处理,该服务器也在“文件”部分中使用 FontPath 进行设置。您还可以通过运行添加 FontPaths xset +fp path
。我的系统在 /usr/share/X11/fonts 中有所有 X 字体。