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

Ссылки по теме

- X Logical Font Description
- dotfiles

Xresources — настраиваемый пользователем dotfile, обычно находящийся по пути `~/.Xresources`. Он может быть использован для установки ресурсов X — настроек для клиентских приложений X.

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

- настроить параметры терминала (например, цвета)
- задать DPI монитора, сглаживание (antialiasing), хинтование (hinting) и другие настройки шрифтов X
- изменить тему Xcursor
- установить тему XScreenSaver
- изменять предпочтения низкоуровневых приложений X (xclock (xorg-xclock), xpdf, rxvt-unicode, и т.д.)

## Установка

Установите пакет xorg-xrdb.

## Использование

### Загрузка файла ресурсов

Ресурсы хранятся на X-сервере, поэтому файлы ресурсов достаточно прочитать всего один раз. Они также доступны для удалённых клиентов X11 (например, при пробросе X11 через SSH).

Загрузка файла ресурсов (например, общепринятого `.Xresources`) с заменой всех текущих настроек:

    $ xrdb ~/.Xresources

Загрузка файла ресурсов и объединение с текущими настройками:

    $ xrdb -merge ~/.Xresources

Примечание:

- Большинство экранных менеджеров автоматически загружают файл `~/.Xresources` при входе.
- Старый файл `~/.Xdefaults` считывается при запуске программы X11, но только если команда xrdb не использовалась в текущем сеансе. [1]

### xinitrc

Если вы используете копию стандартного xinitrc в качестве `.xinitrc`, в нём уже прописано объединение с ресурсами из `~/.Xresources`.

Если у вас свой `.xinitrc`, добавьте в него следующую строку:

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

Примечание: Не прописывайте запуск xrdb в фоне в вашем `~/.xinitrc`, иначе появится вероятность, что последующие программы запустятся до того, как работающий в фоне xrdb успеет загрузить все ресурсы.

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

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

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

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

    $ xrdb -query -all

### Синтаксис Xresources

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

Файл Xresources состоит из строк в таком формате:

    имя.Класс.ресурс: значение

Подстрока `ресурс` может содержать дополнительные разделители-точки (`имя` и `Класс` никогда не содержат разделители). Например, `Dialog.bodyFont` — это внутренний ресурс XScreenSaver, позволяющий задать шрифт:

    xscreensaver-auth.default.Dialog.bodyFont: times new roman 12, dejavu serif 12

имя
  Название приложения, такое как xterm, xpdf и т.д.

класс
  Классификация используется для объединения ресурсов вместе. Имена классов, как правило, в верхнем регистре.

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

значение
  Фактическое значение ресурса. Это может быть 1 из 3-х типов:
  - Integer (целые числа)
  - Boolean (true/false, yes/no, on/off (т.е. верно/неверно, да/нет, вкл/выкл)
  - String (строка символов) (например слово (`white`), цвет (`#ffffff`), или путь (`/usr/bin/firefox`))

разделители
  Точка (`.`) используется для обозначения каждого шага вниз по иерархии — в приведённом выше примере мы начали с имени, затем спустились до класса и, наконец, до ресурса. Двоеточие (`:`) используется, чтобы отделить описание ресурса от его значения.

Примечание: Подробнее о синтаксисе файла Xresources можно прочитать в XrmGetDatabase(3) § FILE_SYNTAX.

#### Сопоставление по шаблону

Можно использовать вопросительный знак `?` и звёздочку `*` в качестве шаблона, что позволяет написать одно правило, которое будет применено сразу ко многим приложениям или элементам. Вопросительный знак соответствует одному компоненту, а звёздочка соответствует любому количеству промежуточных компонентов, в том числе нулю.

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

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

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

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

Подробнее можно прочитать в XrmGetResource(3) § MATCHING_RULES.

#### Комментарии

Строки, начинающиеся с восклицательного знака (`!`), игнорируются:

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

Восклицательный знак должен быть самым первым символом в строке.

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

Примечание: Для использования этой возможности нужно установить какой-нибудь препроцессор C, например `GNU CPP`.

Чтобы использовать различные файлы для каждого приложения, используйте `#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

### Получение значений ресурсов

Если вы хотите получить значение ресурса (например, для использования в bash-скриптах), можно использовать xgetresAUR:

    $ xgetres xscreensaver.Dialog.headingFont
    -*-fixed-bold-r-*-*-*-100-*-*-*-*-iso8859-1

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

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

- Color output in console (Русский)#Эмуляторы терминала
- Темы курсора#X resources
- Настройка шрифтов#Приложения без поддержки fontconfig
- xterm (Русский)#Настройка
- rxvt-unicode (Русский)#Настройка
- xpdf(1) § OPTIONS

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

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

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

### Пустой вывод xrdb -query

Нередко `xrdb -query` ничего не выводит. Попробуйте выполнить команды, описанные в разделах #Загрузка файла ресурсов и #xinitrc. Имейте в виду, что некоторые из файлов могут оказаться пустыми.

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

- Конфиг:Xresources (Рус.)
- Using the Xdefaults File - Статья с углублением о том, как X интерпретирует файл Xdefaults

Categories:

- Configuration files (Русский)
- X server (Русский)