Xresources文件语法


Xresources是一个用户级的配置文件,通常位于~/.Xresources。它可以用来设置X resource,这些资源是X客户端应用程序的配置参数。

除此之外,还可以用来:

  • 定义终端颜色;
  • 配置终端首选项;
  • 设置DPI,反锯齿,提示和其他X字体设置;
  • 更改Xcursor主题;
  • 主题xscreensaver;
  • 配置低级X应用程序,如:xorg-xclock,xpdf,rxvt-unicode;

安装

安装xrdb包即可,在Debian中安装x11-xserver-utils(apt-get install x11-xserver-utils);

使用源码安装可以参考BLFS/Xorg Applications:http://www.linuxfromscratch.org/blfs/view/7.10/x/x7app.html

xrdb命令用于管理X resource数据库。

使用方法


加载resource文件

资源只被读取一次,并存储在X Server中。远程X Client也可以访问这些资源(例如:通过SSH转发)。

加载指定的resource文件(如传统的.Xresources),替换任何当前设置:xrdb ~/.Xresources

加载指定的资源文件,并与当前设置合并:xrdb -merge ~/.Xresources

注意事项

  • 某些Display Manager会在登录的时候加载~/.Xresources文件。
  • 当X11应用程序启动时,旧的~/.Xdefaults文件被读取,但只有在当前会话中没有使用xrdb的情况下。(~/.Xdefaults vs ~/.Xresources

xinitrc

如果你使用的是自定义的.xinitrc文件,需要添加以下行:[[ -f ~/.Xresources ]] && xrdb -merge -I$HOME ~/.Xresources

而大多数Linux发行版默认就已经加载了$HOME/.Xresources,所以不需要手动添加上面的行。

注意事项

  • 在~/.xinitrc中,不要在后台运行xrdb命令。否则,在xrdb之后启动的程序可能会在资源完成加载之前进行资源查找。

默认的resource配置

大多数的发行版中都有默认的X11应用的资源配置文件,比如Debian中位于/etc/X11/app-defaults/目录中。

有关某个程序的特定资源的详细信息通常在程序的手册页中有说明。xterm的手册页就是一个很好的例子,因为它包含一个X resource列表及其默认值。

查看当前已经加载的资源:xrdb -query -all

Xresources文件语法

该文件由一行一行的配置组成,每一行的语法格式为:name.Class.resource: value,比如:xscreensaver.Dialog.headingFont: -*-fixed-bold-r-*-*-*-100-*-*-*-*-iso8859-1

name:应用程序的名称,如xterm,xpdf等,可以通过命令程序的-name属性指定name。

Class:用于将资源分组在一起的分类。Class名通常是大写的。

resource:要更改其值的资源的名称。 资源通常是使用大写拼接的小写字母,类似于驼峰命名。

value:实际值。可以使整数、布尔(true/false, yes/no, on/off)、字符串(white、#ffffff、/usr/bin/firefox)。

delimiters: 冒号(:)用于将resourcevalue分开。点(.)用于分隔name、Class、resource。

Wildcard matching

  • 星号(*)可以作为通配符使用,可以很容易地编写一个可以应用于许多不同的应用程序或元素的规则。使用前面的示例,如果要将相同的字体应用于包含resource为headingFont且Class名为Dialog的所有程序(而不仅仅是XScreenSaver),则可以这样写:*Dialog.headingFont: -*-fixed-bold-r-*-*-*-100-*-*-*-*-iso8859-1
  • 如果要为所有包含resource为headingFont的应用程序使用相同的规则,可以定义:*headingFont: -*-fixed-bold-r-*-*-*-100-*-*-*-*-iso8859-1

Commenting:在行首使用叹号(!)进行注释;

Include files
对于每个应用程序的配置,可以写在不同的配置文件中,然后在.Xresources文件中进行引用:

#include ".Xresources.d/xterm"
#include ".Xresources.d/rxvt-unicode"
#include ".Xresources.d/fonts"
#include ".Xresources.d/xscreensaver"

注意:使用此功能需要安装C的预处理器,比如GNU CPP。

关于应用程序

在.Xresources中有两种指定X11资源的变体。可以为应用程序名称指定资源名,也可以为类指定资源名。类通常大写首字母来命名。

我在.Xresources中只有这个:xterm*color4:#8080c0。该示例中,可以使用参数-name xxx将应用程序名称更改为xxx。这样,你可以有不同的风格xterm。当为Class指定resource时,它会影响该Class的所有实例(所有XTerm应用程序,不管应用程序名name是什么)。

星号(*)是通配符。可以使用它来为许多不同的小部件设置资源。小部件可以是一个按钮,也可以是滚动条。如果你想要使用黑色背景,但又不想写许多行的resource配置,你就可以使用通配符。

我的配置文件


.Xresources # 主文件
.Xresources.d # 独立的配置文件
└── xterm

参考文献


ToC

安装

使用方法

加载resource文件

xinitrc

默认的resource配置

Xresources文件语法

关于应用程序

我的配置文件

参考文献