Эти два файла, кажется, имеют ту же функцию. Каково различие между двумя если таковые имеются?
~/.Xdefaults
более старый метод хранения X ресурсов. Этот файл перечитан каждый раз, когда программа Xlib запущена. Если X11 используется по сети, файл должен присутствовать в той же файловой системе как программы.
~/.Xresources
является более новым. Это загружается xrdb
в RESOURCE_MANAGER
свойство корневого окна X11. Каждый раз, когда любая программа ищет ресурс, она читается прямо из RESOURCE_MANAGER
.
Если это свойство не существует, Xlib отступает к старому методу чтения .Xdefaults
на каждом запуске программы. Обратите внимание, что большинство дистрибутивов загрузится ~/.Xresources
автоматически, если это присутствует, вызывая .Xdefaults
быть проигнорированным, даже если Вы никогда не работали xrdb
вручную.
Преимущество нового метода состоит в том, что достаточно звонить xrdb
однажды, и ресурсы будет доступно любой программе, работающей на этом дисплее, или локальный или удаленный. (Имя ~/.Xresources
только конвенция – можно использовать xrdb
загрузить любой файл, даже .Xdefaults
.)
Руководство по программированию P.441 Xlib:
До X11R2 X установок ресурса были считаны из.Xdefaults файла в пользовательском корневом каталоге, и дополнительно на любой машине X-клиент работал, таким образом, несколько файлов было трудно поддержать.
Позже, xrdb программа был сделан сохранить пользовательские установки ресурса от в.Xresources в свойство XA_RESOURCE_MANAGER корневого окна на текущем X-сервере, таким образом, у всех клиентов, подключенных к тому же серверу, есть доступ к ним. Если пользователь не назвал xrdb для установки свойства, то.Xdefaults читается.
[...] эти X ресурсов хранятся в двух стандартных местах, в зависимости от того, относятся ли они ко всем экранам или конкретному:
- свойство RESOURCE_MANAGER корневого окна экрана 0
- свойство SCREEN_RESOURCES корневого окна произвольного экрана
Это не вполне заканчивается в этом.
$XENVIRONMENT
переменная, который значения по умолчанию к ~/.Xdefaults-hostname
если не набор. Это используется таким же образом как .Xdefaults
, но всегда читается независимо от ли RESOURCE_MANAGER
присутствует. Можно использовать .Xdefaults-hostname
файлы для хранения некоторых настроек определенными для машины при использовании xrdb
для глобальных.Оба объекта № 4 и № 5 упомянули ниже, кажется, используются только чистыми программами Xlib – не GTK 3 или другие инструментарии.
Четвертое местоположение является каталогом, на который указывают $XAPPLRESDIR
переменная среды. (Странно, если переменная не установлена, $HOME
используется в качестве значения по умолчанию.), Когда программа запущена, это смотрит, существует ли какой-либо из следующих файлов (имя файла, совпадающее с именем класса программы):
$XAPPLRESDIR/$LC_CTYPE/XTerm
$XAPPLRESDIR/language/XTerm
$XAPPLRESDIR/XTerm
(language
получен из $LC_CTYPE
путем разделения всех кроме первого компонента; например, en_US.utf-8
→ en
.)
Пятое местоположение является каталогами "значений по умолчанию приложения" в масштабе всей системы. Снова, каталоги значений по умолчанию приложения проверяются на запуске программы, если им назвали файл в честь программы. Например, XTerm (на Дуге Linux) использование:
/etc/X11/$LC_CTYPE/app-defaults/XTerm
/etc/X11/language/app-defaults/XTerm
/etc/X11/app-defaults/XTerm
/usr/share/X11/$LC_CTYPE/app-defaults/XTerm
/usr/share/X11/language/app-defaults/XTerm
/usr/share/X11/app-defaults/XTerm
Файлы значений по умолчанию приложения обычно устанавливаются в /usr/share
наряду с самой программой; переопределения администратора перешли бы в /etc
.
Все упомянутое выше документируется в мельчайших подробностях в документации инструментария X.org – статье X Toolkit Intrinsics - Интерфейс языка C, раздел Loading the Resource Database.
К сожалению, я не мог найти недавнее руководство пользователя, которое описывает X ресурсов, главным образом потому что они не важны в 2012 году. Но для исторического (чтение: ужасно устаревший), информация, можно прочитать руководство пользователя X-оконной системы для X11 R3 и R4 раздела X Window System 9: Установка Ресурсов (запускающийся со страницы 181).