В чем разница между.Xresources и.Xdefaults?

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

1 ответ

Решение

~/.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 для хранения настроек пользовательских ресурсов из.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 раздела X Window System 9: настройка ресурсов (начиная со страницы 181).

Другие вопросы по тегам