Рассмотрим первую секцию конфига:
Section "Module"
Load "dri"
Load "glx"
EndSection
Section "dri"
Group "video"
Mode 0666
EndSection
Мы включаем два модуля: dri и glx.
Direct Rendering Infrastructure (http://dri.freedesktop.org/wiki/), также известная как DRI, это платформа для предоставления прямого доступа к графическому оборудованию безопасным и эффективным методом. Она также включает модификации для X-сервера, для многих клиентских библиотек и для ядра. Основная же цель DRI - создание эффективной реализации OpenGL.
GLX («OpenGL Extension для системы X Window»), предоставляет интерфейс подключения OpenGL в системе X Window: он позволяет программам использовать OpenGL в любом окне X-сервера.
Также позволяем пользователям из группы video пользоваться включенным модулем dri.
Следующая секция включает клавиатуру.
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbModel" "pc105"
Option "XkbLayout" "en,ru"
Option "XkbOptions" "grp:switch,grp:alt_shift_toggle,grp_led:caps"
EndSection
Мы задаем две раскладки для нашей клавиатуры: русскую и английскую.
Ниже задаем опции переключения: клавишами Alt+Shift. При переключении на русский язык загорается CapsLock.
Ниже указаны настройки тачпада.
Section "InputClass"
Identifier "Touchpad"
Driver "synaptics"
MatchIsTouchpad "yes"
Option "MinSpeed" "0.5"
Option "MaxSpeed" "0.75"
Option "AccelFactor" "0.075"
Option "TapButton1" "1"
Option "TapButton2" "2" # multitouch
Option "TapButton3" "3" # right mouse button
Option "VertTwoFingerScroll" "1" # multitouch
Option "HorizTwoFingerScroll" "1" # multitouch
Option "CoastingSpeed" "8"
Option "CornerCoasting" "1"
Option "EdgeMotionUseAlways" "1"
Option "PalmDetect" "1"
EndSection
Производитель тачпада, как видно из конфига, Synaptics (Toshiba Satellite L650D).
Кстати, тачпад еще то говно: маленький, неудобный, плохо реагирует на касания.
Здесь, впринципе, понятно что выполняет каждая из опций по её названию, остановлюсь лишь на опциях TapButton#.
- TapButton1 отвечает за клик одним пальцем, и ей присвоено значение 1, что является аналогом клика левой кнопки мыши.
- TapButton2 отвечает за одновременный клик двумя пальцами, опция 2 — аналог нажатия колесика.
- TapButton3 — 3 одновременных касания, аналог нажатия правой кнопки мыши.
Теперь — самое интересное: конфигурация двух мониторов.
Имеется родной ноутбучный монитор с диагональю 15,6’ и разрешением 1366x768 и внешний монитор Acer с диагональю 19’ и разрешением 1600x900.
Задача была в возможности настройки таким способом, чтоб можно было выводить картинку или на ноутбучный монитор, далее именуемый LVDS, или на оба в режиме «растянутый» рабочий стол.
Поясню про этот режим.
Окно может находиться как на одном экране, так и на втором в рамках одного виртуального рабочего стола. Также имеется возможность расположить часть окна на одном экране, а часть вылезет на другой. Окна можно перетаскивать между экранами.
Вот сама конфигурация:
Section "Monitor"
Identifier "0-LVDS"
Option "PreferredMode" "1366x768"
Option "TargetRefresh" "60"
Option "Rotate" "normal"
Option "Disable" "false"
Option "RightOf" "0-VGA-0"
EndSection
Section "Monitor"
Identifier "0-VGA-0"
Option "PreferredMode" "1600x900"
Option "TargetRefresh" "60"
Option "Rotate" "normal"
Option "Disable" "false"
Option "Primary" "false"
Option "LeftOf" "0-LVDS"
EndSection
Section "Device"
Identifier "Device-0"
Driver "radeon"
Option "Monitor-LVDS" "0-LVDS"
Option "Monitor-VGA-0" "0-VGA-0"
BusID "PCI:1:0:0"
Option "AccelMethod" "EXA"
EndSection
Section "Device"
Identifier "Device-1"
Driver "radeon"
Option "Monitor-LVDS" "0-LVDS"
BusID "PCI:1:0:0"
Screen 1
Option "AccelMethod" "EXA"
EndSection
Section "Screen"
Identifier "Screen-0"
Device "Device-0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Virtual 2968 2968
Depth 24
EndSubSection
EndSection
Section "Screen"
Identifier "Screen-1"
Device "Device-1"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection
Если включить ноутбук без подключенного монитора, то LVDS будет работать по-умолчанию в своей максимальной конфигурации(1366x768), чтоб задействовать второй монитор, нужно подключить его в разъем VGA и выполнить команду:
xrandr --output LVDS --primary --auto --right-of VGA-0
Когда нужно вернуться в режим одного монитора, отключаем внешний и выполняем:
xrandr --auto
Решение не самое простое и элегантное, но работает безотказно.