В табл. 5.1 приведены далеко не все флаги Х-сервера, но остальные очень редко используются на практике.
5.2.1.3. Секция InputDeviсe. Windows-раскладка клавиатуры
Секция InputDevice используется для описания клавиатуры и мыши (листинг 5.3).
Листинг 5.3. Описание клавиатуры и мыши
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbModel" "pc105"
Option: "XkbLayout" "us,ru"
Option "XkbOptions" "grp:shiftis_toggle,grp_led:scroll"
EndSection
Section "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "Buttons" "5"
Option "Device" "/dev/input/mice"
Option "Name" "ImPS/2 Generic Wheel Mouse"
Option "Protocol" "еxрlоrеrps/2"
Option "ZAxisMapping" "4 5"
EndSection
Обратите внимание: клавиатура и мышь описываются в разных секциях InputDevice, а секция InputDevice для мыши может вовсе отсутствовать, причем будут работать обе кнопки мыши и колесико (если оно есть). Обычно описание мыши отсутствует, если мышь стандартная и для нее не нужен какой-либо специальный драйвер или нe нужно указывать какие-либо специальные параметры. В моем конфигурационном файле сейчас вообще отсутствует описание мыши и, нем не менее, она работает.
Наверное, вы обратили внимание на то, что в Fedora 8 русская раскладка клавиатуры не совсем такая, как в Windows, к которой вы привыкли. Например, для того, чтобы ввести точку (.), нужно нажать ‹Shilt+7›, а для ввода запятой - ‹Shift+8›. Да и с другими знаками пунктуации не все в порядке.
Чтобы исправить данную проблему, нужно в секцию Input-Device клавиатуры добавить опцию Option "XkbVariant" ", winkeys".
Измененная секция InputDevice представлена в листинге 5.4.
Листинг 5.4. Задание Windows-раскладки клавиатуры
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbModel" "pcl05"
Option "XkbLayout" "us,ru"
Option "XkbOptions" "grp:shifts_toggle,grp_led:scroll"
Option "XkbVariant" ",winkeys"
EndSection
Секция Module используется для загрузки различных модулей. Загрузка модуля осуществляется директивой Load (листинг 5.5).
Листинг 5.5. Пример секции Module
Section "Module"
Load "dbe"
Load "type1"
Load "freettype"
Load "extmod"
EndSection
Секция Module может отсутствовать, если не загружаются никакие дополнительные модули.
5.2.1.5. Секции Monitor и Modes
В данной секции описывается монитор. Обратите внимание на параметр Identifier, задающий идентификатор монитора (листинг 5.6). В вашем файле конфигурации может быть описано несколько мониторов, но к секции Screen будет определен только один монитор. Чтобы указать, какой монитор вы хотите использовать, нужно указать его идентификатор.
Листинг 5.6. Пример секции Monitor
Section "Monitor"
Identifier "Monitor0"
ModelName "LCD Panel 1280x1024"
HorizSync 31.5 - 64.0
VertRefresh 56.0 - 65.0
Option "dpms"
EndSection
Параметр ModelName задает имя монитора. Также может быть указан параметр VendorName, определяющий производителя монитора, например:
VendorName "ACR" ModelName "AL1916"
Параметры HorizSync и VertRefresh задают допустимую частоту горизонтальной (в кГц) и вертикальной развертки соответственно. Значения для данных параметров можно взять из руководства по вашему монитору или найти в Интернете - на сайте производителя монитора.
Обратите внимание на опцию dpms. DPMS (Display Power Management Signaling) - это сигналы управления питанием монитора. Без опции dpms невозможно управление питанием монитора.
Необязательный параметр UseModes может задавать имя секции описания режимов работы монитора (обычно в ней описывается разрешение монитора): UseModes "Modes0"
Пример секции Modes приведен в листинге 5.7.
Листинг 5.7. Пример секции Modes
Section "Modes"
Identifier "Modes0"
ModeLine "1280x1024" 100.0 1280 1328 1440 1688 1024 l025 1028 1066 +hsync +vsync
EndSection
Режим работы монитора описывается с помощью директивы ModeLine. Формат ModeLine следующий:
Modeline "имя_режима" D H1 Н2 H3 Н4 V1 V2 V3 V4 Flags
Здесь:
• имя_режима - текстовое описание режима, можно написать все, что угодно, но обычно записывается разрешение работы монитора, например, "1024x786", но с тем же успехом вмести "1024x768" можно написать "my_mode" (данный параметр предназначен для пользователя и никак не влияет на работу монитора);
• D - частота выдачи точек на монитор, частота задается в мегагерцах;
• Н1-Н4 - значения горизонтальной развертки (строчной синхронизации);
• V1-V4 - значения вертикальной развертки (кадровой синхронизации);
• Flags - флаги, обычно относящиеся к развертке (обычно используются флаги +hsync и +vsync, лучше не изменять этот параметр).
Обычно режимы работы монитора устанавливаются автоматически - конфигуратором. Но если нам хочется поэкспериментировать, тогда используйте программу xvidtune, позволяющую создать особые режимы работы монитора, например, компенсировать недостаток строк, задать синхронизацию по определенному каналу.
Сразу предупреждаю: используйте данную программу на свой страх и риск. Ни я, ни разработчики данной программы не несут ответственности за возможные последствия применения сгенерированных программой режимов!
В данной секции описывается видеокарта (листинг 5.8).
Листинг 5.8. Пример описания видеокарты
Section "Device"
Identifier "Videocard0"
Driver "nvidia"
Option "AddARGBGLXVisuals" "True"
EndSection
Самое главное в данной секции - это параметр Driver, задающий драйвер для видеокарты, В данном случае используется драйвер производителя - nvidia. Стандартный драйвер nVidia, входящий в состав Fedora 8, называется nv.
При описании видеокарты могут указываться дополнительные унции, которые зависят от самой видеокарты и от используемого драйвера.
Если в системе установлена всего одна видеокарта, тогда параметр BusID, описывающий, в каком именно слоте установлена видеокарта, может отсутствовать. Если же в системе две видеокарты, то параметр BusID обязателен для каждой видеокарты, например: BusID "1:0:0"
Остальные параметры, которые могут встречаться в этой секции, например, VideoRam, задающий размер видеопамяти, или Ramdac, задающий тип RAMDАС видеокарты, попросту не нужны, поскольку современный Х-сервер автоматически определяет параметры видеокарты.
Секция Sсrееn описывает экран. Как уже отмечалось, здесь нужно указать идентификаторы монитора и видеокарты (листинг 5.9).
Листинг 5.9. Пример секции Screen
Section "Screen"
Identifier "Screen0"
Device "Videocard0"
Monitor "Monitor0"
DefaultDepth 24
Subsection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection
Обратите внимание на следующие параметры:
• Identifier - задает идентификатор экрана (понадобится в секции ServerLayout);
• Device - задает используемую видеокарту;
• Monitor - позволяет указать, какой монитор нужно использовать;
• DefaultDepth - задает глубину цвета по умолчанию.
В секции Screen может быть несколько подсекций Display. Каждая подсекция может описать особый режим работы монитора, например, задать необходимую глубину цвета и поддерживаемые разрешения (режимы работы монитора):
Subsection "Display"
Depth 16
Modes "1280x1024" "1024x768" "800x600"
EndSubSection
SubSection "Display"
Depth 24
Modes "1280x1024" "1024x768" "800x600"
EndSubsection
5.2.1.8. Секция ServerLayout
Данная секция задает используемые устройства ввода и объект Screen (листинг 5.10).
Листинг 5.10. Пример секции ServerLayout
Identifier "single head configuration"
Screen 0 "Screen0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse1" "CorePointer"
EndSection
В данной секции сказано, что будет использоваться экран с идентификатором Screen0, клавиатура с идентификатором Kеуboard0 и мышь Моuse1. Параметры CoreKeyboard и CorePointer означают, что данные устройства являются соответственно главной клавиатурой и главным указательным устройством (pointer).
5.2.1.9. Секция Extensions
Здесь описываются различные расширения. Секция Extensions может отсутствовать, если дополнительные расширения не используются. Так, для работы Compiz (трехмерного рабочего стола) нужно подключить расширение Composite (листинг 5.11).
Листинг 5.11. Подключаемые расширения
Section "Extensions"
Option "Composite" "Enable"
EndSection
5.2.1.10. Полный листинг конфигурационного файла xorg.conf
В листинге 5.12 представлен полный вариант главного конфигурационного файла /etc/X11/xorg.conf.
Листинг 5.12. Файл xorg.conf
# Xorg configuration created by livna-cоnfig-display
Section "ServerLayout"
Identifier "single head configuration"
Screen 0 "Screen0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mousel" "CorePointer"
EndSection
Section "Files"
ModulePath "/usr/lib/xorg/modules/extensions/nvidia"