X resources (Русский)

From ArchWiki
Состояние перевода: На этой странице представлен перевод статьи X resources. Дата последней синхронизации: 5 октября 2015. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Xresources - это настраиваемый на уровне пользователя dotfile ("точкафайл", dotfiles), как правило, находящийся по пути ~/.Xresources. Он может быть использован для установки ресурсов X, параметров настроек для клиентских приложений X.

Они может сделать много операций, в том числе:

  • определить цвета терминала
  • настроить предпочтения терминала
  • задать DPI монитора, сглаживание (antialiasing), хинтование (hinting) и другие настройки шрифтов X
  • изменить тему Xcursor
  • установить тему xscreensaver
  • изменять предпочтения низкоуровневых приложений X (xclock (xorg-xclock), xpdf, rxvt-unicode, и т.д.)
Примечание: Устарело использование ~/.Xdefaults, так что эта статья будет относиться только к ресурсам, загруженных с xrdb xrdb

Начинаем

Убедитесь, что пакет xorg-xrdb установлен на вашей системе.

Разбор .Xresources

Файл ~/.Xresources не существует по умолчанию. Это обычный текстовый файл, вы можете создавать и редактировать его с помощью любого текстового редактора. После создания, он будет "разобран" на программы xrdb (базы данных ресурсов Xorg) автоматически, при условии что вы либо:

  • используете Экранный менеджер (менеджер входа) чтобы войти в X. Большинство Экранных Менеджеров будут автоматически загружать файл ~/.Xresources на входе в систему.
  • если вы используете startx, вы должны отредактировать ~/.xinitrc. Для подробностей, смотрите ниже.

Ресурсы будут сохранены в X-сервере, так что файл не должен читаться каждый раз, когда приложение запускается.

Чтобы перечитать ваш файл .Xresources, и удалить старые ресурсы:

xrdb ~/.Xresources

Чтобы перечитать ваш файл .Xresources, и сохранить старые ресурсы:

xrdb -merge ~/.Xresources
Совет: ~/.Xresources это просто условное название; xrdb может загрузить любой файл. Если вы используете вручную xrdb, вы можете поместить этот файл в любом месте, где захотите (например, ~/.config/Xresources).
Примечание: Ресурсы загруженные с xrdb также доступны в удалённых клиентах X11 (таких как перенаправление на SSH).
Важно:
  • Если вы в фоне выполняете xrdb в цепи команд ~/.xinitrc, программы запущенные в той же цепи, не могут использовать его, так что рекомендуется никогда не запускать в фоне команды xrdb в ~/.xinitrc.
  • Старый и устаревший файл ~/.Xdefaults читается каждый раз при запуске программ X11 таких как xterm, но только если xrdb "никогда" не был использован в текущем сеансе X. [1]

Добавление к xinitrc

Если вы не используете Среду рабочего стола, добавьте следующую строку в xinitrc:

[[ -f ~/.Xresources ]] && xrdb -merge -I$HOME ~/.Xresources

Настройки по умолчанию

Для просмотра настроек по умолчанию для установленных приложений X11, смотрите /usr/share/X11/app-defaults/.

Подробная информация о конкретных программных ресурсах, как правило, предоставляется на страницах руководства программ (man). Хорошим примером является руководство xterm, так как оно содержит список ресурсов Х и их значения по умолчанию.

Чтобы увидеть текущие загружены ресурсы:

xrdb -query -all

Синтаксис Xresources

Основной синтаксис

Синтаксис файла Xresources заключается в следующем:

name.Class.resource: value (имя.Класс.ресурс: значение)

а вот реальный пример:

xscreensaver.Dialog.headingFont: -*-fixed-bold-r-*-*-*-100-*-*-*-*-iso8859-1
name (имя)
Название приложения, такое как Xterm, Xpdf и т.д.
class (класс)
Классификация используется для объединения ресурсов вместе. Имена классов, как правило, в верхнем регистре.
resource (ресурс)
Название ресурса, значение которого должно быть изменено. Ресурсы как правило в нижнем регистре, а для объединения в верхнем.
value (значение)
Фактическое значение ресурса. Это может быть 1 из 3-х типов:
  • Integer (целые числа)
  • Boolean (true/false, yes/no, on/off (т.е. верно/неверно, да/нет, вкл/выкл)
  • String (строка символов) (например слово (white), цвет (#ffffff), или путь (/usr/bin/firefox))
delimiters (разделители)
Точка (.) используется для обозначения каждого шага вниз по иерархии  —  в приведенном выше примере мы начали с name, затем спустились до Class, и наконец до самого resource. Двоеточие (:) используется, чтобы отделить описание ресурса от фактического значения.

Джокер соответствия (Wildcard matching)

Звездочка (*) может использоваться в качестве шаблона, что облегчает использование одного правила , которое может быть применено ко многим различным приложениям или элементам.

Воспользуемся предыдущим примером, если вы хотите применить тот же шрифт для всех программ (не только для XScreenSaver) которые содержат имя класса Dialog, и которое содержит имя ресурса headingFont, можно записать так:

*Dialog.headingFont:     -*-fixed-bold-r-*-*-*-100-*-*-*-*-iso8859-1

Если вы хотите применить это правило для всех программ, которые содержат ресурс headingFont, независимо от его класса, вы должны написать:

*headingFont:    -*-fixed-bold-r-*-*-*-100-*-*-*-*-iso8859-1

Комментарии

Чтобы добавить комментарий в файле Xresources, просто воспользуйтесь префиксом с воскрицательным знаком (!), например:

! Следующее правило будет игнорироваться, поскольку оно было закомментировано
!Xft.antialias:        true

Включение файлов

Чтобы использовать различные файлы для каждого приложения, используйте #include в главном файле. Например:

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

Если файлы не удалось загрузить, укажите каталог для xrdb с параметром -I. Например:

~/.xinitrc
xrdb -I$HOME ~/.Xresources

Примеры использования

Следующие примеры помогут понять, какие настройки приложения могут быть изменены с помощью файла Xresources. Больше примеров можно посмотреть здесь. Для получения подробной информации обратитесь к справочной странице интересующего вас приложения.

Решение проблем

Ошибки чтения (парсинга) файла ~/.Xresources

Экранные менеджеры, такие как GDM, могут запускать xrdb с опцией --nocpp.

Смотрите также