如何使用用户定义的字体大小和字体样式运行仅 X11 的应用程序?
是否可以运行具有不同字体大小和样式的不同 X11 应用程序?例如xclipboard
使用字体运行FreeSans14px 并xman
运行罗博托12 像素。
是否有任何环境变量可用于覆盖 GUI 应用程序的字体设置?喜欢
env FONT_SIZE="16px" xterm
答案1
经典 X11 应用程序
对于经典的X11应用程序(如xclipboard、xman、xterm等),是的,有一种方法,通过X资源。 X 资源设置通常存储在一个名为 的文件中,该文件在会话启动期间~/.Xresources
由命令加载(但并非所有环境都默认加载它)。xrdb -merge ~/.Xresources
您可以在目录中找到 X 资源设置的示例app-defaults
(确切位置可能有所不同:/usr/share/X11/app-defaults
、/usr/X11/lib/app-defaults
、/etc/X11/app-defaults
、 …)。这些是每个应用程序的系统范围设置。你也可以运行appres
列出服务器中加载的用户定义设置以及 中的系统范围设置app-defaults
,例如appres Xman
。请注意,app-defaults
文件和appres
输出省略了类名称,但在您自己的配置文件中,您应该以类或实例名称开始每个设置,否则该设置将应用于每个应用程序。
资源设置由限定的小部件组件名称和值组成,例如XClipboard.form.text.textSink.font: fixed
。看.Xresources 设置生效和手册有关资源标识符的更多信息。请注意,X 资源区分大小写。按照惯例,类名以大写字母开头,实例名以小写字母开头。您可以使用通配符*
来代表任意数量的组件,例如XClipboard*font
设置 XClipboard 中的所有字体。
请注意,经典的 X11 应用程序使用服务器端文本呈现。它们不具有与使用由 fontconfig 管理的字体进行客户端渲染的应用程序相同的字体。您可以使用xfontsel
它来查看服务器端可用的字体。 X11字体使用由14部分组成的命名方案,对字体、大小、粗细等进行编码;看手册详细信息。
大多数经典的 X11 应用程序都支持在命令行上进行资源设置,使用诸如 之类的参数-xrm '*text*font: fixed'
,以及一些快捷方式(例如-font fixed
设置主字体)。 Xterm 支持这些,此外还支持客户端渲染,可以通过资源或命令行参数进行设置-fa
(详细信息请参阅手册)。
GTK应用
GTK 字体通常由主题设置,并且可以在~.gtkrc
.
gtk-font-name = "Roboto 12"
您可以通过环境变量使用备用 gtkrc 文件或备用主题运行应用程序。对于较旧的 Gtk2:
GTK2_RC_FILES=/path/to/alternate/gtkrc my-gtk2-app
较新的 Gtk3 预计可配置性较差,但您可以使用备用主题:
GTK_THEME=/path/to/alternate/theme.css my-gtk3-app
您还可以使用以下命令查找特定于应用程序的设置gconf 编辑器(GTK 2) 或 dconf 编辑器 (GTK 3)或g设置。不过,我认为 GTK 应用程序具有特定的字体设置并不常见。