Компоненты системы X Window

Среди компонент системы можно в первую очередь выделить:

 

· Компьютерное оборудование

· Операционную систему

· Х сервер обеспечивающий взвимодействие меджу клиентами и дисплеем

· Клиентские программы которые включают

 

· Оконный менеджер для управления поведением окон

· И непосредственно прикладные программы

 

В системе X Window очень часто употребительным термином является термин “дисплей”. Чтобы не путать его с монитором (телевизор к которому подкючается компьютер) раскроем его смысл. Дисплей это принципиально устройство вывода информации. Дисплей – это логическое понятие и один дисплей может включать в себя несколько физических мониторов.

Экран это графическое битмап устройство которое после старта Х сервера становиться корневым окном. Оно содержит все остальные окна и прочие визуальные элементы. Одним из вспомагательных но необязательных элементов системы X Window является Font Server, позволяющий передавать по сети шрифты на Х сервера.

 

Предварительное конфигурирование

 

Для работы в системе X Window прежде всего необходимо наличие переменной окружения DISPLAY, файла /etc/X0.host (в системах X11R4/R5) а также работу механизма резолвинга хостов (файл /etc/hosts и/или DNS и/или NIS). Переменная окружения DISPLAY устанавливается в соответствии с правилом:

 

export DISPLAY= Host: Display. Screen

 

Файлы /etc/X n. hosts представляют собой текстовые файлы содержащие имена хостов которым разрешено подключаться к Х серверу с номером n (запускаемым как /usr/bin/X11/X:n). При попытке подсоединения к Х серверу n необходимо в качестве номера screen в переменной окружения DISPLAY использовать n. Конфигурация X серверов храниться в файлах X n screens которые соответствуют файлам /etc/X n. hosts. При не настроенном механизме резолвинга хостов или в случае сетевых проблем возможно возникновение проблем или задержек в работе X Window. Для контроля доступа к Х серверу используется программа xhost.

 

xhost +                           разрешает установку соединения с любым клиентом

xhost -                            запрещает установку соединения со всеми клиентом

xhost + hostname         разрешает установку соединения от хоста host

xhost - hostname          запрещает установку соединения от хоста host

 

Система X Window использует следующие конфигурационные файлы:

 

          .Xdefaults        файл содержит ресурсы общие для всех программ

 

          .x11start          файл содержит список клиентов вызывающихся при старте X11

 

          .mwmrc            файл определяющий настройки оконного менеджера Motif.

 

          .app-defaults/* индивидуалные настройки клиентов

 

Если HOME каталог не содердит этих файлов их можно скопировать из системных файлов:

 

           cp /usr/lib/X11/sys.Xdefaults ~/.mwmrc

       cp /usr/lib/X11/sys.Xdefaults ~/.Xdefaults

 

Х сервер вначале ищет файлы в HOME каталоге и лишь не нашев их переходит к системным. По умолчанию конфигурация Х сервера хранится в файле /etc/X11/X*screens. В нем определяются такие параметры как файл устройства, апаратно независимые параметры, глубина цвета, прозрачность окон, а также апаратно зависимые параметры. Полное описание всех параметров можно получить из файла

 

/usr/lib/X11/Xserver/info/screen/hp

 

Конфигурациооный файл для устройств ввода Х сервера имеет имя /etc/X11/X*devices.

 

Старт X Window

 

Для старта системы X Window нужно запустить команду x11start. Он стартует программу xinit которая запускает Х сервер и клиентов а также оконный менеджер в зависимости от конфигурационного файла.x11start.

 

X ресурсы

 

Ресурсы определяют поведение программ (геометрия, цвета, шрифты, поведение клавиатуры, ….). Существует несколько способов позволяющих их изменять:

 

· Опции командной строки

·.Xdefaults файл

· загрузка ресурсов через менеджер ресурсов

· application resource файлы (app-delaults файлы)

 

Менеджер ресурсов xrdb

 

xrdb [ option ] filename

 

основные опции:

 

           -load                 ресурсы загружаемые из файла перезаписывают сущестивующие

 

           -merge              ресурсы загружаемые из файла обьеденяются с сущестивующими

 

           -remove           ресурсы указаные в файле удаляются из собственности менеджера

ресурсов.

           -edit                  поместить ресурсы собственности менеджера в файл

 

Для задания ресурсов используют строку вида:

 

           [client_name] * resource: value

или

       [client_сlass] * resource: value

 

Имена и классы клиентов

 

Каждый Х клиент имеет имя и класс. Имя определяет специфического клиента а класс категорию клиента. Ресурсы определенные через имя клиента имеют больший приоритет перед теми что определены через класс клиента. Для лучшего понимания ресурсы определенные через класс пишуться с большорй буквы. Назначить имя клиенту можно при его старте:

 

xterm –name myTerminal

 

чтобы получить к ним доступ достаточно загрузить в ресурс менеджер следующие строки:

 

       Xterm.name:                       myTerminal

       MyTerminal*background:                 green

 

Имена и классы ресурсов

 

Ресурсы как и классы имеют имена и классы. Индивидуальные пишутся с маленькой буквы. Ресурс класса всегда ссылается на класс ресурсов. Поэтому если ресурс *background: red сделает все тоновые цвета красными, то *Background: red сделает красными те ресурсы которые принадлежат к классу Background к которым могут принадлежать cursorColor, pointerColor … Индивидуальные ресурсы всегда имеют приоритет перед ресурсами классов. Это демонстрирует следующий пример ресурсного файла:

 

       *Foreground:           red

       Xterm*Foreground:  gray

       Xterm*foreground:   yellow

       Xterm*CursorColor:  green

 

В именах ресурсов возможно употребление символа * на первом месте. Нарример ресурс *foreground будет обозначать цвет тона всех приложений, в отличии от xterm*foreground только xterm-a.

 

Типы ресурсов

 

Помимо того что каждое приложение может использовать свои собственные ресурсы, существует огромное количество стандартизированых ресурсов. Напрример рассмотренные выше цвета которые можно задавать и в RGB представлении (соответствие между именем цвета и RGB содержится в файле /usr/X11/lib/rgb.txt). Помимо них к стандартным ресурсам относятся геометрические (width, height, column, row), шрифты (Font, FontList, FontSet) и.т.п.

 

Управление шрифтами

 

В системе X11 шрифты бывают двух видов: bitmap (растровые) шрифты и scalable typeface (векторные). Растровый шришт состоит из набора файлов в каждом из которых хранятся символы определенного размера. С растровыми шрифтами напрямую может работать Х сервер и Font сервер. Векторный шрифт перед тем как должен быть выведен на дисплей проходит серию математических обработок после которых он превращается в растровый определенного размера, начертания и.т.п. Если Х сервер желает работать с векторными шрифтами, он должен их получить от Font сервера.

 

 

Настройка путей поиска шрифтов. Команда xset.

 

 В качества источника шрифтов для Х сервера может выступать либо директория, либо Font сервер который принимает соединения на определенный TCP порт (tcp/ <hostname>: portnumber).  Путь поиска может быть установлен командой xset.

 

xset option  

 

где option может принимать следующие значения:

 

           q                                        выводит информацию о системе X11 включая fontpath

 

-fp source[,source …] удаляет источник с начала (-fp) или с конца (fp-) пути

fp- source [,source] поиска шрифтов

 

+fp source[,source …]       добавляет источник к началу (+fp) или к концу (fp+) пути

fp+ source [,source] поиска шрифтов

 

fp= source [,source] назначает fontpath                   

 

fp default                сбрасывает fontpath в значение по умолчанию

 

fp rehash                заставляет сервер перечитать базу шрифтов (это нужно в тех

случаях когда изменялось содержимое директорий со

шрифтами)

 

Получение списка шрифтов доступных в системе. Команда xlsfont

 

xlsfont [- option ]

 

Где option

 

-display host:display        Х сервер с которого нужно получить листинг шрифтов

 

-l                                               генерировать маленький листинг

-ll                                              генерировать большой листинг

-lll                                             генерировать очень большой листинг

 

-n                                              количество колонок для листинга

-w                                             ширина каждой колонки для листинга

 

В выводимом листинге могут быть как шрифты так и алиасы, последние имеют короткое название.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: