В системе X Window , то X ресурсы являются параметры из компьютерных программ , таких как имя шрифта , используемого в кнопках , на цвет фона из меню и т.д. Они используются в сочетании с или в качестве альтернативы командной строки параметров и конфигурации файлы .
Формат
На уровне протокола X ресурсы - это строки, которые хранятся на сервере и не имеют особого значения. Синтаксис и значение этих строк задаются клиентскими библиотеками и приложениями.
Каждый X-ресурс определяет параметр для программы или одного из ее компонентов. Полностью указанный ресурс имеет следующий формат:
application.component.subcomponent.subcomponent.attribute: value
Этот ресурс определяет значение attribute
для названного компонента component.subcomponent.subcomponent
программы application
. Ресурсы часто используются для указания параметров виджетов, создаваемых приложением. Поскольку эти виджеты организованы в виде дерева , последовательность имен компонентов / подкомпонентов используется для идентификации виджета путем указания его пути в дереве. Значение ресурса - это значение атрибута для этого виджета, например цвет фона и т. Д.
Ресурсы X также используются для указания параметров программы, не связанных напрямую с ее виджетами, с использованием того же синтаксиса.
Ресурсы X предназначены для того, чтобы один и тот же параметр можно было указать более чем для одной программы или компонента. Это реализуется за счет использования подстановочных знаков в спецификации ресурса. В частности ,? символ используется для соответствия имени приложения или отдельного компонента. Символ * используется для обозначения любого количества компонентов. Эти два символа можно использовать где угодно, но не в конце имени ресурса. Другими словами, атрибут нельзя заменить символом подстановки.
Хотя ресурсы можно свободно указывать с помощью подстановочных знаков, запросы значения ресурса должны точно указывать этот ресурс. Например, ресурс может указать, что фон каждого компонента xmail
программы должен быть красным:
xmail*background: red
Однако, когда программа (например, сама программа xmail , когда она хочет выяснить, какой цвет фона использовать) обращается к базе данных ресурсов через функции Xlib , она может запросить только значение определенного ресурса. В отличие от большинства баз данных , хранимые данные могут быть указаны свободно (с помощью подстановочных знаков), но запрос не может. Например, программа может запрашивать значение xmail.main.background
или xmail.toc.buttons.background
, но не может использовать ?
или *
проверять цвет фона нескольких компонентов одновременно.
Ресурсы также могут быть указаны для классов элементов: например, application.widget.widget.attribute: value
их можно обобщить, заменив имя приложения его классом (например, Mail
вместо xmh
), каждый виджет - его типом ( Pane
, Button
и т. Д.), А атрибут - его типом.
Расположение и использование
Во время работы сервера отображения X ресурсы X хранятся в двух стандартных местах в зависимости от того, применяются ли они ко всем экранам или к конкретному:
RESOURCE_MANAGER
свойство корневого окна экрана 0SCREEN_RESOURCES
свойство корневого окна произвольного экрана
Ресурсы X хранятся на сервере, а не в файле конфигурации, чтобы программы, запущенные с других компьютеров, могли их использовать. Действительно, программа, подключающаяся к серверу X-дисплея с другого компьютера, может получить доступ к ресурсам через X-протокол . Использование старой системы хранения параметров программы в .Xdefaults
файле создает необходимость копирования этого файла на все другие компьютеры, на которых программа может быть запущена.
Ресурсы управляются программой xrdb . В частности, во многих конфигурациях сервера X display запускается xrdb при запуске, инструктируя его читать ресурсы из .Xresources
файла в домашнем каталоге пользователя . С этого момента все остальные программы находят ресурсы в двух стандартных местах. Вы можете просматривать текущие ресурсы с консоли с помощью xrdb -query
.
Клиентские библиотеки
Xlib содержит ряд удобных функций для доступа к ресурсам на сервере и управления ими локально. Эти функции используются как xrdb, так и любой другой программой, которая нуждается в этих ресурсах. Большинство этих функций управляют базой данных ресурсов , которая представляет собой локальную структуру данных, представляющую набор спецификаций ресурсов. Функции Xlib для управления ресурсами:
- функции для чтения ресурсов на сервере в локальную строку (
XResourceManagerString
иXScreenResourceString
) - функции для создания, манипулирования и уничтожая локальную базу данных ресурсов (
XrmInitialize
,XrmDestroyDatabase
,XrmGetFileDatabase
,XrmPutFileDatabase
,XrmGetStringDatabase
,XrmLocaleOfDatabase
,XrmSetDatabase
,XrmGetDatabase
,XrmCombineFileDatabase
,XrmCombineDatabase
,XrmMergeDatabases
,XrmParseCommand
) - функции для поиска ресурсов и хранения новых (
XrmGetResource
,XrmQGetResource
,XrmQGetSearchList
,XrmQGetSearchResource
,XrmPutResource
,XrmQPutResource
,XrmPutStringResource
,XrmQPutStringResource
,XrmPutLineResource
,XrmEnumerateDatabase
)
В частности, функция XrmParseCommand
позволяет анализировать аргументы командной строки , читать ресурсы, которые затем добавляются в локальную базу данных ресурсов. Таким образом, ресурсы могут быть прочитаны с сервера и использованы по умолчанию, которые переопределяются аргументами командной строки.
Ради эффективности целые числа, называемые кварками , определены для представления локальных строк. Кварки похожи на атомы , но представляют собой строки, хранящиеся локально, а не на сервере. Ряд функций Xlib создают связь между строками и кварками. Кварки могут использоваться вместо имен компонентов при использовании одной из вышеперечисленных функций; поэтому имена ресурсов соответствуют спискам кварков.
Смотрите также
Внешние ссылки
- Несущественные ресурсы X для техно-двуногих
- Как использовать ресурсы X?
- Менеджер ресурсов Функции по Xlib клиентской библиотеки