运行具有自定义字体大小和字体样式的仅限 X11 的应用程序

运行具有自定义字体大小和字体样式的仅限 X11 的应用程序

如何使用用户定义的字体大小和字体样式运行仅 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 应用程序具有特定的字体设置并不常见。

相关内容