53

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

1 ответ1

62

~/.Xdefaults - более старый метод хранения ресурсов X. Этот файл перечитывается каждый раз при запуске программы Xlib. Если X11 используется по сети, файл должен присутствовать в той же файловой системе, что и программы.

~/.Xresources новее. Он загружается с помощью xrdb в свойство RESOURCE_MANAGER корневого окна X11. Всякий раз, когда какая-либо программа ищет ресурс, он читается прямо из RESOURCE_MANAGER .

Если это свойство не существует, Xlib возвращается к старому методу чтения .Xdefaults при каждом запуске программы. Обратите внимание, что большинство дистрибутивов будут загружаться ~/.Xresources автоматически, если он присутствует, вызывая .Xdefaults игнорируется, даже если вы никогда не запускали xrdb вручную.

Преимущество нового метода в том, что достаточно вызвать xrdb один раз, и ресурсы будут доступны для любой программы, запущенной на этом дисплее, будь то локальная или удаленная. (Название ~/.Xresources - это всего лишь соглашение - вы можете использовать xrdb для загрузки любого файла, даже .Xdefaults .)

Руководство по программированию Xlib P.441:

До X11R2 настройки ресурса X считывались из.Файл Xdefaults в домашнем каталоге пользователя и, возможно, на любом компьютере, на котором работал X-клиент, поэтому было сложно поддерживать несколько файлов.

Позже была создана программа xrdb для хранения настроек ресурса пользователя из in.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 .)

  • Пятое расположение - это общесистемные каталоги app-defaults. Опять же, каталоги app-defaults проверяются при запуске программы, если у них есть файл с именем программы. Например, XTerm (в Arch 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

    Файлы app-defaults обычно устанавливаются в /usr/share вместе с самой программой; переопределения администратора будут идти в /etc


Все, что упомянуто выше, подробно описано в документации по инструментарию X.org - статья X Toolkit Intrinsics - C Language Interface, раздел Загрузка базы данных ресурсов.

К сожалению, я не смог найти ни одного недавнего руководства пользователя, описывающего ресурсы X, в основном потому, что они не имеют отношения к 2012 году. Но для исторической (читай: ужасно устаревшей) информации вы можете прочитать руководство пользователя X Window System для X11 R3 и R4 раздела 9 X Window System : настройка ресурсов (начиная со страницы 181).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .