Depth 15
EndSubSection
SubSection 'Display'
Depth 16
EndSubSection
SubSection 'Display'
Depth 24
EndSubSection
EndSection
Section 'DRI'
EndSection
Как видите, файл XF86Config состоит из нескольких секций, имеющих следующую структуру:
Section 'Название_секции'
Identifier 'Name'
SectionEntry
…
EndSection
Строки, начинающиеся символом ‘#’, являются комментариями. Секции могут быть расположены в файле в произвольном порядке. Могут присутствовать следующие секции:
• ServerLayout – общие установки;
• InputDevice – описания устройств ввода;
• Screen – конфигурация экрана;
• Device – описания графических карт;
• Monitor – описания монитора;
• Modes – описания видеорежимов;
• Files – пути к файлам;
• ServerFlags – опции сервера;
• VideoAdaptor – описание адаптера Xv (как сказано в интерактивном руководстве man, никто не говорит, что это такое, даже если знает!);
• Module – динамически загружаемые модули;
• DRI – конфигурация DRI;
• Vendor – установки для оборудования конкретных поставщиков (Vendor-specific configuration).
причем наличие всех секций не обязательно, но могут существовать несколько разных секций одного типа (только они должны иметь уникальные идентификаторы).
Секция ServerLayout имеет наивысший приоритет, т. е. именно с нее начинается анализ файла XF86Config при загрузке X-сервера. Эта секция определяет, какие устройства ввода/вывода будут использоваться в X-сессии. Устройства ввода – это клавиатура и мышь, которые задаются в секциях InputDevice (такие секции создаются отдельно для каждого устройства). Устройства вывода обычно состоят из нескольких независимых компонентов (графический адаптер и монитор), которые связываются воедино в секции Screen, на которую указывает ссылка в секции ServerLayout. Таким образом, секция ServerLayout должна содержать, как минимум, следующие строки:
Section 'ServerLayout'
Identifier 'MainSection'
Screen 0 'Screen0' 0 0
InputDevice 'Mouse0' 'CorePointer'
InputDevice 'Keyboard0' 'CoreKeyboard'
EndSection
Секция Screen определяет используемые монитор и видеоадаптер и задает режимы работы экрана. Она может иметь примерно такой вид:
Section ' Screen'
Identifier 'Screen0'
Device 'Trident 3DImage985 (generic)'
Monitor 'ViewSonic|ViewSonic G771'
DefaultColorDepth 24
Subsection 'Display'
Depth 8
Modes '1024x768' '800x600' '640x400'
ViewPort 0 0
EndSubsection
Subsection 'Display'
Depth 16
Modes '1024x768' '800x600' '640x480'
ViewPort 0 0
EndSubsection
Subsection 'Display'
Depth 24
Modes '1024x768' '800x600' '640x480'
ViewPort 0 0
EndSubsection
Subsection 'Display'
Depth 32
Modes '1024x768' '800x600' '640x480'
ViewPort 0 0
EndSubsection
EndSection
Как видите, она содержит указания на используемый графический адаптер (задается в секции Device с идентификатором ‘Matrox Millenium G200’) и монитор (задается в секции Monitor с идентификатором ‘Monitor0’).
Cекция Screen может содержать несколько подсекций (Subsection) Display, по одной такой подсекции на каждую глубину цвета. В каждой такой подсекции вы должны прописать те режимы монитора, которые будете использовать. Режимы задаются в строке Modes. Они указываются путем перечисления их наименований, взятых из секции Monitor (в точности в том виде, как эти названия указаны после слова Modeline). В одной строке можно перечислить любое число таких имен режимов. Первый из указанных режимов будет запускаться по умолчанию, в остальные можно будет переключаться (циклически), нажимая комбинацию клавиш ‹Ctrl›+‹Alt›+‹+› или ‹Ctrl›+‹Alt›+‹-› (используются клавиши ‹+› и ‹-› на цифровой клавиатуре).
В этой подсекции указывается также размер виртуального экрана, который будет использоваться сервером. Соответствующая строка имеет вид ‘Virtual xdim ydim’, где xdim и ydim – размерности виртуального экрана. Например, вы можете иметь дисплей с разрешением 800* 600, а размер виртуального экрана задать равным 1024* 768. Тогда в каждый момент времени вы будете видеть на дисплее только часть полного изображения. Надо, однако, учитывать, что видеопамять должна хранить изображение, равное по размеру виртуальному экрану, а также то, что нежелательно занимать всю память хранением виртуального экрана, поскольку в этом случае не остается резерва на кэширование, что может повлечь потерю 30-40% производительности сервера.
Секция Monitor обычно начинается тремя строками, в которых указывается производитель монитора и его модель, однако если у вас только одна секция Monitor, то эти строки вполне могут иметь вид:
Identifier 'Unknown'
VendorName 'Unknown'
ModelName 'Unknown'