ГЛАВА 12. ДОПОЛНИТЕЛЬНАЯ КОНФИГУРАЦИЯ XWINDOWS

1. Глава 12. Дополнительная конфигурация X Windows

 

Глава 12. Дополнительная конфигурация X Windows

  • Последовательность запуска X Windows
  • Х-ресурсы

Вероятно, вы обратили внимание, что среда X Windows обеспечивает степень гибкости и адаптируемости, на которые способна далеко не каждая операционная система с графическим пользовательским интерфейсом (GUI). Конечно, за эту гибкость пришлось заплатить некоторым усложнением системы - чтобы максимально использовать возможности X Windows, иногда приходится проходить непростые конфигурационные процедуры.

В этой главе подробно рассмотрены основные компоненты X Windows и способы их конфигурирования, начиная с версии 4 файла XF86Conf ig, который определяет поведение Х-сервера. В этом файле указано все: от типов видеоадаптера и монитора (в том числе требуемые разрешение и глубина цвета) до мыши и клавиатуры.

После полного конфигурирования Х-сервера понадобится указать способ запуска X Windows, программы, запускаемые автоматически, операции, выполняемые перед загрузкой X Windows, запуск диспетчера окон. Как механизм реализации установок (цветов и шрифтов в окнах, а также реакции окон на определенные операции) используется база данных Х-ресурсов. Любой из перечисленных (и других) параметров может быть глобальным или предназначаться отдельной программе.

Файл XF86Config

Конфигурационные параметры XFree86 хранятся в файле XF86Conf ig. Обычно он находится в каталоге /etc/XF86Conf ig или /etc/Xll/XF86Conf ig (в зависимости от дистрибутива XFree86). В Linux Red Hat 7.1 этот файл находится в каталоге /etc/X11. Можно также использовать общий конфигурационный файл /usr/XllR6/lib/Xll/XF86Config.eg.

Если вы не знаете, где программа установки XFree86 установила этот фaйл, найдите его с помощью следующей команды.

# locate XF86Config

В файле XF86Conf ig содержится информация, определяющая работу Х-сервера, в том числе определения клавиатур, параметры мыши и технические характеристики монитора. Этот файл генерируется программами конфигурирования XFree86 - например, Xconfigurator или xf 8 6conf ig.

В некоторых случаях тонкая настройка среды X Windows достигается только редактированием файла XF86Conf ig в текстовом редакторе.

Примечание

На момент написания книги сервер XFree86 версии 4 не поддерживал такого разнообразия драйверов графических карт, как XFree86 версии 3. Но многие конфигурационные параметры входят и в файл XF86Conf ig и в файл XF86Conf ig-4. Если в вашем каталоге /etc/xll содержатся оба файла, то приведенные ниже рекомендации следует применять к файлу /etc/Xll/XF86Config-4.

Собранные в файле XF86Conf ig параметры разбиты на ряд разделов. Не все они влияют на работу интерфейса GUI. Для версии 4 XFree86 порядок разделов более не важен.

Files (Файлы). Указание каталогов, в которых расположены дополнительные файлы XFree86, содержащие шрифты, таблицы цветов и т.п.

ServerFlags (Флажки сервера). Включение и выключение отдельных функций Х-сервера, например способов обработки отдельных сочетаний клавиш.

Module (Модуль). Спецификация загружаемых в ходе запуска Х-сервера динамически подгружаемых модулей. В их число входят и модули отображений шрифтов. В большинстве случаев, когда Х-сервер уже сконфигурирован и работает, а стандартных шрифтов вполне достаточно, раздел Module в вашем файле XF86Config может отсутствовать.

InputDevice ycmpoucmea ввода). Спецификация устройств ввода, включая мышь и клавиатуру. Этот раздел не нужен, если есть разделы Keyboard и Pointer.

Keyboard (Клавиатура). Ссылка на протокол клавиатуры, управляющий сопоставлением кодов клавиш, и другие параметры, например скорость повтора. Этот раздел не нужен, если есть раздел InputDevice. Работает в версии 4 XFree86.

Pointer (Указатель мыши). Тип мыши, порт подключения и определение кнопок. Этот раздел не нужен, если есть раздел InputDevice. Работает в версии 4 XFree86.

VideoAdaptor (Видеоадаптер). Этот раздел ориентирован на поддержку видео как "примитива", другими словами, видеоадаптер рассматривается как часть более мощной системы. В книге не рассматривается.

Monitor (Монитор). Параметры монитора. Может включать сведения из раздела Modes. Device (Устройство). Доступные графические устройства (видеоадаптеры).

Modes (Режимы). Частота обновления и разрешающая способность монитора. Может быть включен в раздел Monitor.

Screen (Экран). Связывает монитор с видеоадаптером. Задает параметры доступных Х-серверов, например универсального сервера SVGA, монохромного сервера и т.д. Может включать несколько подразделов Display, соответствующих альтернативным разрешающим способностям и глубинам цвета.

ServerLayout (Раскладка). Связывает экраны со специальными устройствами ввода, например, клавиатурой и мышью.

DRI. Задает все параметры интерфейса Direct Rendering Interface (DRI), часто используемого на рабочих станциях, ориентированных на интенсивную работу с графикой. Конфигурация DRJ не рассматривается в книге. Дополнительная информация собрана на узле http://www.xfree86.org/current/DRI.html .

Vendor (Поставщик). Специальные параметры изготовителя. В книге данный раздел не рассматривается.

 

2. Files

 

Files

В разделе Files указаны некоторые важные файлы, входящие в систему. Ниже приведен пример этого раздела без комментариев.

Примечание

Комментарий в файле XF86Config начинается с символа "#" и занимает одну строку. Строка комментария игнорируется системой XFree86.

FontPath "/usr/XllR6/lib/Xll/fonts/local/" FontPath "/usr/XllR6/lib/Xll/fonts/misc/" FontPath

"/usr/XHR6/lib/Xll/fonts/75dpi/:unsealed" FontPath

"/usr/XHR6/lib/x11/fonts/100dpi/:unscaled" FontPath "/usr/XllR6/lib/Xll/fonts/Typel/" FontPath

"/usr/XllR6/lib/Xll/fonts/Speedo/" FontPath "/usr/XHR6/lib/Xll/fonts/75dpi/" FontPath

EndSection

Перечислим некоторые основные правила, применимые к этому и остальным шести разделам.

  • Каждый раздел начинается со строки Section.
  • Каждый раздел заканчивается строкой EndSec t ion.
  • В строке Section в кавычках указывается имя раздела (в данном примере - "Files").

Обычно этот раздел содержит три директивы, описанные в табл. 12.1.

Табл. 12.1. Директивы раздела Files

Директива

Описание

RgbPath

 

 

 

FontPath

 

 

ModulePath

Имя файла базы данных RGB (red-green-blue - красный-зеленый-синий) без расширения . txt или . db. RGB-файл задает состав именованных цветов. Если база данных не перемещена и не переименована, то остается имя по умолчанию. Но этого не следует делать, поскольку многие программы будут искать ее в прежнем каталоге

Эта директива может применяться многократно и задает каталог, в котором находятся Х-шрифты системы - масштабируемые или растровые. Имя подкаталога растровых шрифтов имеет окончание : unscaled. Установив в системе новый каталог шрифтов, необходимо внести в раздел Files новую директиву FontPath

Это директива для тех операционных систем, которые, как и Linux, поддерживают динамически загружаемые модули. Она указывает путь к этим модулям. В большинстве версий XFree86 эта директива не используется, поэтому в примере она отмечена как комментарий. По умолчанию динамически загружаемые модули находятся в каталоге /usr/X11R6/lib/modules. Необходимость менять этот каталог и, следовательно, директиву возникает редко

Прочие модули шрифтов находятся в каталоге /usr/X11R6/lib/modules/ fonts.

 

3. ServerFlags

 

ServerFlags

В разделе ServerFlags включаются и отключаются некоторые функции Х-сервера. Пример раздела без,комментариев приведен ниже.

EndSection

Чтобы задействовать любую директиву этого раздела, удалите из ее строки символ коммен- , тария. По умолчанию указанные директивы не задействованы. Заданные в этом разделе значения опций заменяются значениями из раздела Server-Layout.

Описание директив приведено в табл. 12.2.

Табл. 12.2. Директивы раздела ServerFlags

Директива

Описание

NoTrap

 

 

Signals

Эта директива применяется при отладке. Когда поступает сигнал об ошибке, сервер выполняет дамп своего раздела памяти в файл на диске. Это может нарушить устойчивость

системы, но полезно при поиске источников ошибок, особенно на стадии бета-тестирования Х-серверов. Лучше всего оставить эту директиву закомментированной

 

Директива

Описание

DontZap

Обычно сочетание клавиш Ctrl+Alt+Backspace применяется для завершения работы X Windows с возвратом к командной строке. Данная директива заставляет X Windows игнорировать указанное сочетание клавиш, позволяя его обработку активной программе. Директива используется редко — когда какая-либо программа не может работать без этого сочетания клавиш.

DontZoom


Обычно сочетание клавиш Ctrl+Alt+Цифровой Плюс ("плюс" цифровой клавиатуры) применяется для последовательного переключения разрешений, определенных при конфигурировании Х-сервера от меньшего к большему. Аналогично, сочетание Ctrl+Alt+ЦифровойМинус ("минус" цифровой клавиатуры) применяется для переключения разрешений от большего к меньшему. Если эти сочетания клавиш нужны какой-либо программе, удалите символ комментария в строке данной директивы. X Windows будет игнорировать указанные сочетания клавиш, и они будут доступны активной программе.

DisableVidModeExtension

Эта директива предотвращает настройку монитора клиентом xvidtune. В книге эта программа не рассмотрена, но ее документация выводится на экран по команде man

xvidtune в окне xterm Нет необходимости использовать эту директиву.

All owNonboca lXvidtune

В отличие от предыдущей директивы, разрешает настройку монитора удаленным (то есть, находящимся где-то в сети) клиентом xvidtune. Из соображений безопасности эту директиву не следует задействовать.

DisableModlnDev

Если задействовать эту директиву, динамическая смена настроек клавиатуры и мыши в процессе работы X Windows станет невозможной.

AllowNonLocalModlnDev

Эта директива разрешает настройку клавиатуры и мыши с другого компьютера сети. Не используйте ее без особой необходимости.

AllowMouseOpenFail

Эта директива разрешает запуск даже если отсутствует работоспособная мышь (Pointer).

"blank time" "10"

Если ваш компьютер не проявляет активности в течение заданного времени (10 минут в приведенном примере), запускается программа экранной заставки. Выполняемые действия зависят от спецификаций вашего монитора.

" standby time" "20"

Если ваш компьютер не проявляет активности в течение заданного времени (20 минут в приведенном примере), монитор переключается в ждущий (standby) режим. Выполняемые действия зависят от спецификаций вашего монитора.

 

Директива

Описание

" suspend' time" "30"

 

 


"off time" "60"

 

 


EstimateSizesAggresively %

 


NoPM "false" Xinerama "true"

Если ваш компьютер не проявляет активности в течение заданного времени (30 минут в приведенном примере), монитор переключается в спящий (suspend) режим. Выполняемые действия зависят от спецификаций вашего монитора.

Если ваш компьютер не проявляет активности в течение заданного времени (60 минут в приведенном примере), монитор отключается (off mode). Выполняемые действия зависят от спецификаций вашего монитора.

Если BIOS вашего компьютера не может корректно определить второй видеоадаптер, установка значения 2 для этой опции может решить возникшую проблему. На момент написания книги сведения об этой опции в документации крайне скудны.

Отключение управления питанием.

Опция, необходимая для работы с несколькими мониторами (каждый со своим видеоадаптером).

 

4. Module

 

Module

В разделе Module задаются изменения, расширения и дополнения для заданных ранее базовых серверных и шрифтовых параметров. Для работы графического интерфейса пользователя не нужны никакие модули. Пример раздела без комментариев приведен ниже.

Чтобы задействовать любую директиву этого раздела, удалите из ее строки символ комментария. По умолчанию указанные директивы не задействованы. Описание директив приведено в табл. 12.3.

Табл. 12.3. Директивы раздела Module

Директива

Описание

Load "dbe"

Option "omit XFree86-DGA"

 

Load "typel" Load "freetype"

Загружает расширения Double Buffer Extensions,

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

разные буферы. Отключает расширение Direct Graphics Access. Загружает шрифтовой модуль для шрифтов PostScript type 1 . Загружает клон TrueType шрифтов.

Прочие модули расширения доступны в каталоге /usr/X11R6 /lib/modules/extensions.

 

5. Input Device — Keyboard

 

Input Device — Keyboard

Раздел InputDevice описывает устройства целеуказания (мышь) и клавиатуру. Хотя по умолчанию в версии 4 XFree86-используется Input-Device, унаследованные от предыдущих версий модули Keyboard и Pointer также не запрещены. Обычно используется две секции InputDevice: одна для клавиатуры и одна для устройства целеуказания (мыши).

Нетрудно догадаться, что в разделе Keyboard приведена информация, определяющая режим работы клавиатуры. Это тип и протокол клавиатуры. Хотя по умолчанию эта секция больше не используется, она по прежнему распознается в XFree86 версии 4. Хотя Red Hat Linux 7.1 использует версию 4 XFree86, разделы Keyboard и Pointer (а не InputDevice) представляют собой часть используемого по умолчанию конфигурационного файла Red Hat I.inux 7.1 XF86Confiy. Типичный раздел InputDevice без комментариев приведен ниже.

# Driver "keyboard"

EndSection

Выглядит сложно, но вы убедитесь, что это не так, просмотрев табл. 12.4.

Табл. 12.4. Директивы раздела Keyboard

Директива

Описание

"Protocol" "Xqueue"

Протокол Xqueue используется для различных серверов Sun Solaris (SRV3, SRV4). Если эта строка отсутствует, XFree86 использует значение по умолчанию Standard, которое вполне подходит для всех систем других типов.

Identifier Driver

Имена, назначенные администратором для клавиатуры и ее драйвера.

AutoRepeat

Задает задержку повтора вывода символа при нажатой клавише и частоту повтора. Оба значения указываются в миллисекундах. В примере AutoRepeat 500 5 означает повтор через полсекунды после нажатия клавиши с выводом символа каждые 5 миллисекунд.

Xleds

Определяет светодиоды клавиатуры, управляемые пользователем с помощью команды xset. Оставьте в строке символ комментария, указанный по умолчанию.

LeftAlt,

RightAlt,

RightCtl , ScrollLock

Система X Windows первоначально применялась на рабочих станциях Unix, клавиатуры которых отличались от стандартной клавиатуры ПК. На этих клавиатурах были специальные клавиши: Meta, ModeShift, Compose и ModeLock. Если окажется, что эти клавиши нужны какой-то из программ (что маловероятно), то удалите из этой строки символ комментария.

XkbDisable

Если удалить символ комментария из этой строки, то X Windows не будет использовать свое расширение ХКВ. Если ХКВ задействовано (строка начинается с символа комментария), то именно оно определяет отображение кодов клавиатуры для прежних версий Х-сервера с помощью последовательности директив.

XkbModel

Используется, если ХКВ может определять модель клавиатуры. Стандартные клавиатуры Standard U.S. обозначаются pc101. Клавиатура U.S. "Windows" обозначается рс104. Клавиатура Microsoft Natural обозначается microsoft. Большинство европейских клавиатур имеют обозначение рс102 или рс105. Стандартная японская клавиатура обозначается рс106 .

XkbLayout

Используется, если ХКВ может определять раскладку клавиатуры. Как правило, для клавиатуры определено несколько раскладок. Например, de, обозначает "немецкий" и соответствует немецкоязычной раскладке.

XkbOptions

Директива используется, когда ХКВ разрешается переключать положение клавиш CapsLock и Ctrl. Для этого ей присваивается значение

"ctrl : swapcaps".

XkbKeymap

Применяется, если ХКВ может загружать сопоставление кодов клавиатуры.

Примечание

Устанавливая "не-английскую" клавиатуру, можно обратиться к документации HOWTO по адресу http: / /www. l inuxdoc. org. На этом узле собрано множество документов HOWTO для разных языков, позволяющих сконфигурировать клавиатуру в специфической языковой среде.

 

6. inputDevice — Pointer

 

inputDevice — Pointer

Второй подраздел раздела InputDevice конфигурирует мышь. Как уже упоминалось, для этой цели можно использовать раздел InputDevice или Pointer в версии 4 XFree86. Конфигурационный файл Red Hat Linux 7.1 по умолчанию (XF86Conf ig) содержит раздел Pointer. В этом разделе задается конфигурация мыши. В разделе Pointer указываются тип мыши, порт ее подключения и функции кнопок.

# Option "ChordMiddle" EndSection .

Описание директив дано в табл. 12.5.

Более подробно конфигурирование других типов мыши, включая USB-мышь и мышь со скрол-лером или колесом прокрутки описано в гл. 7.

 

7. Monitor

 

Monitor

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

Section "Monitor" Identifier "monitor" VendorName "LG" ModelName "StudioWorks" HorizSync 30-70 VertRefresh 50-160 End Section Некоторые директивы раздела Monitor приведены в табл. 12.6.

Табл. 12.5. Директивы раздела Pointer

Директива

Описание

Identifier, Driver

Имена, назначенные администратором для мыши и ее драйвера.

Protocol

Указывает тип мыши. Возможные значения: Microsoft, Logitech, MouseSystems, BusMouse, PS/2 и Auto (для Plug-and-Play мыши, которую может распознать Linux).

Device

Указывает порт подключения мыши. Если при установке Linux мышь была правильно конфигурирована, ей будет соответствовать логическое устройство /dev/mouse, и именно это имя можно указать в директиве. В противном случае укажите /dev/psaux для мыши PS/2, /dev/ttyS0 -для последовательной мыши, подключенной к порту СОМ 1 в DOS и Windows, и /dev/ttyS1 - к порту COM2. Предусмотрены опции для других типов устройств целеуказания, например, трекбола или тактильного экрана.

BaudRate

Используется с некоторыми разновидностями мыши Logitech (см. техническую документацию).

SampleRate

Используется с некоторыми разновидностями мыши Logitech (см. техническую документацию).

Emulate3Buttons

Эта директива применяется с 2-кнопочной Microsoft-совместимой мышью. Если она задействована, то одновременный щелчок правой и левой кнопками мыши воспринимается как щелчок средней кнопкой. Если у вас 2-кнопочиая Microsoft-совместимая мышь, целесообразно использовать эту директиву.

Emulate3 Timeout

Определяет, насколько одновременными должны быть щелчки двумя кнопками, чтобы восприниматься как щелчок средней кнопки. Имеет

значение только при установке директивы EmulateBButtons. Значение

по умолчанию - 50 мс. Если одновременные щелчки двумя кнопками удаются с трудом, увеличьте это значение. Время указывается в миллисекундах, но единицы времени не указываются. Директива

"EmulateSTimeout 100" правильна, "Emulate3Timeout 100 ms''-нет.

HorizSync VertRe fresh Диапазон частот горизонтальной развертки монитора в кГц. Можно задать диапазон, как в примере, или перечислить допустимые значения через запятую. Обязательно изучите документацию на монитор, чтобы указать правильные значения - ошибки могут привести к его повреждению. Частота обновления экрана монитора в Гц. Можно задать диапазон, как в примере, или перечислить допустимые значения через запятую. Обязательно изучите документацию на монитор, чтобы указать правильные значения - ошибки могут привести к его повреждению.

ChordMiddle

Задействует среднюю кнопку некоторых разновидностей 3-кнопочной мыши Logitech. Если у вас мышь Logitech с неработающей средней кнопкой, попробуйте задействовать эту директиву.

 

8. Modes

 

Modes

Для каждого монитора, подключенного к компьютеру следует завести отдельный раздел Modes. Рассмотрим пример раздела Modes конфигурационного файла XF86Config.

Modeline "1600x1200" 200 1600 1616 1968 2080 1200 1200 1212 1253

EndSection

Эти строки Modeline определяют допустимые режимы работы монитора. Режим задает

разрешающую способность и частотные параметры, определяющие способ вывода на монитор. Х-сервер в момент загрузки отбросит все строки, задающие несовместимые режимы, указанные в файле XF86Config. Задать корректные значения для этих строк нелегко. Проще всего поручить их генерацию средствам конфигурирования XFree86 и затем не менять их.

Примечание

Если к компьютеру подключено несколько мониторов, следует во избежание ошибок включить сведения раздела Modes в соответствующий раздел Monitor.

Параметры первой строки Modeline приведенного примера рассмотрены в табл. 12.7.

Табл. 12.7. Параметры строки Modeline

Директива

Описание

640x480

46:02

640

656

760

832

480

490

498

522

Разрешающая способность экрана в пикселах

Частота пикселов в МГц

Число пикселов по горизонтали

Начальное значение горизонтальной синхронизации

Конечное значение горизонтальной синхронизации

Общее значение горизонтальной синхронизации

Число пикселов по вертикали

Начальное значение вертикальной синхронизации

Конечное значение вертикальной синхронизации

Общее значение вертикальной синхронизации

Первую строку Modeline:

EndMode

 

9. Device

 

Device

В файле XF86Config может быть несколько разделов Device с описанием видеоадаптеров, используемых -сервером. Как правило, сервер сам определяет большую часть этой информации, но для верности ее следует ввести вручную. А поскольку указанная информация содержит немало специальных параметров видеооборудования, можно затем откорректировать ее при помощи конфигурационных процедур XFree86.

Раздел Device активен только в случае, если он упоминается в разделе Screen.

Рассмотрим пример раздела Device.

# BusID "PCI:1:0:0"

BusID "PCI:0:10:0"

EndSection Описание директив этого раздела дано в табл. 12.8.

 

10. Screen

 

Screen

В разделе Screen сведена вместе информация двух разделов - Monitor и Device. В файле XF86Conf ig может быть несколько разделов Screen. Рассмотрим пример раздела Screen.

Табл. 12.8. Директивы раздела Device

Директива

Описание

Identifier

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

файла XF86Config.


VendorName

Имя изготовителя. Эта директива не влияет на работу Х-сервера, но в дальнейшем помогает идентифицировать оборудование.

BoardName

Название карты видеоадаптера. Эта директива не влияет на работу Х-сервера, но помогает идентифицировать оборудование.

Chipset

Микропроцессорный набор видеоадаптера. Если XFree86 не поддерживает микропроцессорный набор установленного видеоадаптера, укажите один из универсальных наборов (generic).

VideoRam

Объем видеопамяти в килобайтах. Если не указать это значение, сервер попытается определить его непосредственно из видеоадаптера.

Clocks

Параметры тактовых импульсов для видеооборудования.- Данную директиву не следует редактировать вручную; лучше предоставить это конфигурационным процедурам.

ClockChip

Генератор тактовых импульсов (если имеется) для видеооборудования. При отсутствии генератора тактовых импульсов эта директива не нужна. Если директива задана, то указывать директиву Clocks не нужно, поскольку генератор обеспечит установку всех необходимых параметров.

Driver

Определение имени драйвера для данного устройства.

Option

Некоторые драйверы допускают дополнительное конфигурирование. В приведенном примере "hw cursor" "off "касается специфической проблемы размещения курсора в X Window для некоторых разновидностей видеоадаптеров.

BusID

Задает положение PCI или AGP видеоадаптера. Имеет значение в случае использования более чем одного видеоадаптера.

EndSubs ection EndSection

Раздел Screen связывает выбранный Х-сервер с видеоадаптером и монитором, а затем определяет возможные режимы экрана (сочетания разрешения и глубины цвета). В табл. 12.9 описаны основные директивы раздела Screen.

Табл. 12.9. Директивы раздела Screen

Директива

Описание

Identifier

 


Device


Monitor


DefaultColorDepth

Эта директива задает уникальное имя для данного Screen. Если вы используете раздел ServerLayout, вы должны использовать эту директиву Identifier.

Имя устройства (видеоадаптера). Оно должно совпадать с соответствующим именем в разделе Device.

Имя монитора. Оно должно совпадать с соответствующим именем в разделе Monitor.

Глубина цвета, если она не задана в директиве Depth раздела Display.

Display

В разделе Screen может быть несколько подразделов Display с описанием возможных режимов экрана.

Рассмотрим один из подразделов предыдущего .примера.

EndSubsection

Описание четырех директив, составляющих этот раздел, дано в табл. 12.10.

Табл. 12.10. Директивы подраздела Display

Директива

Описание

Depth Modes

 

ViewPort


Virtual

Глубина цвета (число бит на пиксель). Например, 8 бит обеспечивают 256 цветов, 16 бит — 65 536 цветов, 24 бит— 16,7 миллиона цветов.

Разрешение экрана. -Наиболее распространенные значения: 1024x768, 800x600 и 640x480.

Размер возможного виртуального стола. Например, на экране с разрешением 640x480 можно установить рабочий стол размером 1024x768. Когда указатель мыши достигает края экрана, изображение прокручивается, выводя скрытую часть виртуального рабочего стола. Директива ViewPort определяет размеры виртуального рабочего стола по горизонтали и вертикали, разделенные пробелом. Директива ViewPort 0 0 в примере означает отсутствие виртуального рабочего стола. Эта директива задает размер экрана больший, чем директива Modes. Если эта директива задана, то можно перемещаться с помощью мыши в рамках указанного виртуального пространства, которое больше, чем реальный экран.

Server-Layout

Раздел ServerLayout завершает конфигурирование, связывая разделы Screen и InputDevice. Выше указывалось, что раздел Screen связывает разделы Monitor и Device. Раздел ServerLayout в стандартной конфигурации не нужен. Если он не входит в состав файла XF86Conf ig, то используются активные разделы Screen, клавиатуры и мыши InputDevice.

Рассмотрим пример раздела ServerLayout:

# InputDevice "Keyboardl" "CoreKeyboard"

Описание трех директив, составляющих этот раздел, дано в табл. 12.11.

Табл. 12.11. Директивы подраздела ServerLayout

Директива

Описание

Identifier


Screen

 

InputDevice

Эта директива задает уникальное имя для данного ServerLayout.

Определяет используемый раздел Screen. В рассматриваемом случае должно быть два раздела Screen, с директивами Identifier, задающими имена "Sony Setup" и "Samsung Setup".

Определяет используемый раздел InputDevice. В рассматриваемом случае должно быть два раздела InputDevice, с директивами Identifier, задающими имена "Mousel" и "Keyboardl".

 

11. Последовательность запуска X Windows

 

Последовательность запуска X Windows

Конфигурирование сервера XFree86 позволяет обеспечить оптимальное качество изображения на экране. Но иногда возникает потребность в конфигурировании способа запуска самой среды X Windows. Это может сделать любой пользователь, редактируя файлы . xinitrc и .Xclients в исходном каталоге. Параметры в этих файлах имеют более высокий приоритет, чем соответствующие параметры в системных файлах. В Linux Red Hat 7.1 последние находятся в каталогах /etc/X11/xinit/xinitrc и/etc/Xll/xinit/Xclients.

 

12. Файл.xinitrc

 

Файл .xinitrc

Xinit - специальная программа запуска Х-сервера и исходной программы-клиента (например, диспетчера окон). По умолчанию startx проверяет наличие файла .xinitrc в исходном каталоге пользователя и запускает с этим файлом программу xinit. Если файл .xinitrc пользователя обнаружить не удается, программа xinit запускается с системным файлом xinitrc (в Linux Red Hat 7.1 - /etc/Xll/xinit/xinitrc). Если и системный файл найти не удается. то после запуска Х-сервера xinit открывает только окно xterm.

Файл xinitrc (или . xinitrc) - это выполняемый сценарий оболочки. Подробнее оболочки описаны в гл. 16, а сейчас мы рассмотрим стандартный файл из версии Linux Red Hat 7.1 и его функции. Строки пронумерованы для удобства: в реальном файле они не нумеруются.

9: # объединение параметров по умолчанию

10: if [ -f "$sysresources" ] ; then

13: if[ -f "$userresources" ] ; then

17: if [ -f "$sysxlcbmap" ]; then

18: setxkbmap 'cat "$sysxkbmap"

22 : setxkbmap 'cat "$useirxktomap" '

25: if [ -z "$XKB_IN_USE" -a ! -L /etc/Xll/X ] ; then

26: if grep ' Л ехес.*/Xsun' /etc/Xll/X > /dev/null 2>&1 && [ -f /etc/Xll/XF86Config ]; then

35: if [ -z "$XKB_IN_USE" ] ; then 36: if [ -f "$sysmodmap" ] ; then

40: xmodmap "$usermodmap"

41: fi

44: # Пользователь может запускать собственные клиенты. Если нет,

46: # запуск всех системных-скриптов xinitrc.

47: for i in /etc/Xll/xinit/xinitrc.d/* ; do

49: "$i"

50: fi

69: fi

Приведем описание команд файла.

1. Строки 3—8. Указывается расположение файлов, которые понадобятся при выполнении сценария.

Примечание

Файл ресурсов System X, заданный в строке 6 как sysresources, расположен в каталоге /etc/xil/xdm/xresources в Red Hat Linux 7.1. Если необходимо задать этот файл, как общепринятое умолчание для X Windows (см. ниже) измените строку 6 так, чтобы она отражала действительное положение файла.

2. Строки 10—12. Если существует глобальный файл Xresources, то он используется. Х-ресурсы рассмотрены в следующем параграфе.

3. Строки 13—-15. Если существует файл пользователя . Xresources в его исходном каталоге, то он используется путем объединения его параметров с текущими значениями.

4. Строки 17—20. Если существует глобальный файл сопоставления кодов, то он используется.

5. Строки 21—24. Если у пользователя есть файл сопоставления кодов, то он используется.

6. Строки 25—33. Эти строки не используются, поскольку сервер Sun X в вашей системе не используется.

7. Строки 34—43. Если имеют место конфликты между пользовательскими и системными файлами сопоставления кодов X Window, то задается файл определения клавиатуры.

8. Строки 47—51. Эти строки отрабатывают все сценарии, расположенные в каталоге /etc/X11/xinit/xinitrc.d/.

9. Строки 52—69. Запуск первых клиентов после запуска Х-сервера. Сценарий проверяет наличие у пользователя файла .Xclients. Обнаруженный файл запускается и запускает, в 1 свою очередь, указанные клиенты. Если файл .Xclients не обнаружен, выполняется поиск и запуск пюбального файла Xclients. Если и он не найден, то запускается некоторый стандартный набор программ, среди которых xclock, окно xterm, Web-браузер и, если имеется, диспетчер окон fVwm2 или twm.

 

13. Файл.Xclients

 

Файл .Xclients

Вероятно, при изучении файла xinitrc вы заметили, что пользователь может заменить установки глобального файла Xclients собственными, записанными в файле .Xclients его исходного каталога. В среде Red Hat после запуска Х-сервера программа xinit запускает исходные клиенты при помощи этих файлов.

Данный файл, как и файл xinitrc, - это сценарий оболочки, подчиняющийся всем правилам составления таких сценариев. Чтобы понять, для чего используется Xclients, рассмотрим стандартный файл Xclients из предварительной версии Linux Red Hat 7.1 (как и в предыдущем примере, строки пронумерованы для удобства).

6: if [ -n "'grep -i GNOME /etc/sysconfig/desktop'" ] ; then

11: PREFERRED=AnotherLevel

14: if [ -n "$PKEFERRED" -a "$PREFERRED" i= "AnotherLevel" ] && \

69: }

Приведем описание файла (аналогичное описанию файла xinitrc).

1. Строки 4—13. Установка рабочей среды по умолчанию. Рабочую среду по умолчанию (см. гл. 11) вы можете установить с помощью переменной PREFERRED в строке 4. Если PREFERRED не определяет никакую оболочку, то Строки 5-12 проверяют, какая оболочка но умолчанию задана в файле /etc/sysconf ig/desktop: GNOME, KDE или Another Level.

2. Строки 14—18. He является ли заданная в PREFERRED оболочка AnotherLevel.

3. Строки 21— 32. Если PREFERRED не задает оболочку, предпринимается попытка использовать GNOME. Если GNOME не установлена, то проверяется KDE.

4. Строки 35—36. Выполняется очистка путем удаления временных файлов, которые могли остаться после предыдущего сеанса работы X Windows.

5. Строки 38—54. Проверка стиля диспетчера окон AnotherLevel, запуск диспетчера с этим стилем и завершение работы сценария.

6. Строки 56—69. Попытка запустить AnotherLevel со стилем Fvwm95. В случае неудачи запускаются xclock, xterm и Netscape, затем предпринимается попытка запустить fvwm. Если fvwm отсутствует, запускается twm.

Чтобы установить собственный клиент, запускаемый автоматически при запуске X Windows, можно скопировать глобальный файл Xclients в файл . Xclients вашего исходного каталога (копирование файлов рассмотрено в гл. 14) и отредактировать его, введя команды запуска нужных программ перед разделом, в котором указан запуск диспетчера окон. Такой порядок запуска вызван тем, что после запуска диспетчера окон команда exec завершает выполнение сценария.

 

14. Х-ресурсы

 

Х-ресурсы

База данных Х-ресурсов снабжает программы значениями параметров, определяющих, среди прочего, цвета и шрифты. Х-ресурсы используются в большинстве программ X Windows для определения всеми опциями, управляемыми флажками командной строки. В базе данных Х-ресурсов можно записать набор параметров программы по умолчанию, который будет удобнее ее собственного.

 

15. Как работают Х-ресурсы

 

Как работают Х-ресурсы

Всякий раз при запуске X Window в базу данных Х-ресурсов загружаются необходимые сведения. По умолчанию они берутся из файлов, перечислявшихся выше при рассмотрении xinitrc. Загруженные сведения модифицируются данными из файла .Xdefaults вашего исходного каталога. Структура этих данных достаточно сложна.

Х-ресурсы упорядочиваются так, чтобы они воздействовать только на определенные программы. Для этого последние пришлось классифицировать, причем большинство классов программ состоит из единственной программы. В документации на программу указана ее

принадлежность определенному классу. Например, программа xload принадлежит классу XLoaci xterm - классу XTerm. Программы одного назначения входят, как правило, в один класс (ос lock и xclock принадлежат классу Clock).

Примечание

Обратите внимание на использование прописных/строчных букв в названиях приложений и классов. Например, xterm представляет собой стандартное консольное приложение X Window, a XTerm - класс, которому оно принадлежит.

Стандартный набор ресурсов для каждого класса позволяет устанавливать цвета изображения (foreground) и фона (background), размеры и расположение окон (geometry) и шрифт по умолчанию (font). В некоторых классах ресурсов сгруппированы родственные ресурсы. Например, в класс ресурсов Foreground входят ресурсы фона (foreground) и любые дополнительные программные ресурсы, имеющие некоторое отношение к фону. Заниматься отдельными ресурсами, как правило, нет надобности: достаточно работать на уровне классов ресурсов.

 

16. РегулированиеХ-ресурсов в файле.xdefaults

 

РегулированиеХ-ресурсов в файле .xdefaults

Редактирование Х-ресурсов связано с внесением записей в базу данных Х-ресурсов. Эти записи имеют следующий формат.

<КлассПрограммы>|<ИмяПрограммы>|<КлассРесурса>| <ИмяРесурса> : <значение>

В руководстве Linux и прочей документации вертикальная черта (|) обычно означает условие "или". Следовательно, в приведенном примере первое поле записи содержит класс или имя программы, второе - класс или имя ресурса.

Обычно эти данные помещаются в файл .Xdefaults, предназначенный для конкретного пользователя. Рассмотрим пример такого файла.

xclock*Geometry: 100x100+100+100 xclock*

Foreground: purple xclock*Background: mauve

В этом файле установлены ресурсы для класса программ XTerm и программы xclock. Для класса XTerm определены цвета, параметры окон (например, наличие полосы прокрутки) и т.д. Для программы xclock - цвета и геометрия. Значения, присваиваемые этим ресурсам, совпадают с теми, которые были бы указаны в командной строке при флажках -f g и -geometry.

 

17. База данных Х-ресурсов

 

База данных Х-ресурсов

Источником Х-ресурсов служат файлы app-defaults. Существуют версии файлов app-defaults для большинства Х- и KDE-приложений. Содержимое этих файлов можно использовать как образец для создания собственного файла . Xdef aults. В Red Hat Linux 7.1 эти файлы расположены в каталоге /usr/X11R6/lib/Xll/app-defaults/. KDE-приложения располагают собственными файлами app-defaults, хранящимися в каталоге /usr/share/apps/kdisplay/app-defaults/.

 

18. Команда xrdb для записи Х-ресурсов

 

Команда xrdb для записи Х-ресурсов

Обычно файл .Xdefaults загружается при запуске X Windows в файле .xinitrc. Однако можно выполнять запись новых значений в базу данных после загрузки X Windows, для чего применяется команда xrdb. Этот способ особенно удобен при подборе параметров.

Если установленные значения были сохранены в файле experiment, то их можно загрузить в базу данных с помощью команды

$ xrdb -merge experiment

Проверив выполненные установки на практике, можете включить их в состав базы для будущих сеансов X Window, добавив содержимое файла experiment к файлу . Xdef aults.

 

19. Что дальше

 

Что дальше

Эта глава посвящена X Windows, а следующая - среде командной строки, без которой нельзя изучить систему Linux.

В последующих главах рассмотрена основа системы команд Linux - команды операций с дисковыми файлами и каталогами. Вы узнаете, что такое оболочка (shell) и научитесь работать с панелью управления Red Hat, упрощающей наиболее сложные аспекты конфигурирования системы Linux.