Каково различие между.Xresources и.Xdefaults?

Эти два файла, кажется, имеют ту же функцию. Каково различие между двумя если таковые имеются?

61
задан 12.04.2019, 20:23

1 ответ

~/.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-8en.)

  • Пятое местоположение является каталогами "значений по умолчанию приложения" в масштабе всей системы. Снова, каталоги значений по умолчанию приложения проверяются на запуске программы, если им назвали файл в честь программы. Например, 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).

69
ответ дан 07.12.2019, 08:18

Теги

Похожие вопросы