Патрег конечно не врет что если накатывать слаку оптом то справится даже моя бабушка. Но хотелось немножко спорта и я его нажил себе на корму; немножко даже больше чем хотелось.
Дано: slackware 14.1 голая базовая система; ядро и консольная обвязка. Задача: напильником, ломом и молитвами о душе проматери получить легкую графическую среду, вышибая из процесса максимум опыта.
Краткое содержание предыдущих серий: Иксы условно поднялись. Без dm, запускаются через xinit или startx. Но в них не работали мышь и клавиатура. Гугление навело на два варианта решения. Один — очевидно костыльно-гнездовой, зато уже работает, в данный момент. Однако он не устраивает, по скольку есть подозрение что именно это подкостыливание и вызвало девиантное поведение i3, суть которого в следующем: некоторые сочетания клавиш, жизненно необходимые для навигации, не перехватываются WM а реализуются окном находящимся в фокусе, например при нажатии mod+Shift+L окно должно прыгать вверх, вместо этого вижу букву L в терминале. Конфиг i3 проверял. Там все по умолчанию.
Второе решение выглядит здравым и технологичным, интуиция подсказывает что именно оно верно, однако оно у меня не срабатывает. Вот как заставить его работать — я желал бы услышать советов мудрых. Верую что его правильная реализация решит мою проблему.
Исходная проблема: клава и мышь не действовали в иксах. /var/log/Xorg.0.conf рапортовал
hotplug is on, devices using drivers 'kbd', 'mouse' will be disabled
Нагугленый костыль заключается в следующем: запрещаем автоопределение оборудования ввода-вывода иксами, исклюаем evdev из этого процесса, настаивая на использовании ручного конфигурирования. Ключевые места /etc/xorg.conf реализующие этот механизм:
Section "ServerFlags"
Option "AllowEmptyInput" "no"
Option "AutoAddDevices" "no"
Option "AutoEnableDevices" "no"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbModel" "pc105"
Option "XkbOptions" "grp:rctrl_toggle,terminate:ctrl_alt_bksp,grp_led:scroll,compose:rwin"
Option "XkbLayout" "us,ru"
EndSection
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/input/mice"
Option "ZAxisMappint" "4 5 6 7"
EndSection
Однако не сомневаюсь, что расово верным, идеологически выдержаным и богоугодным является другое решение:
Section "ServerLayout"
Identifier "X.org Configured"
Screen 0 "Screen0" 0 0
Screen 1 "Screen1" RightOf "Screen0"
Screen 2 "Screen2" RightOf "Screen1"
Screen 3 "Screen3" RightOf "Screen2"
#исключаем упоминания о девайсах из ServerLayout
# InputDevice "Mouse0" "CorePointer"
# InputDevice "Keyboard0" "CoreKeyboard"
EndSection
Section "Module"
Load "glx"
#вопрос знатокам, не в суе ли здесь будет упоминание kbd?
#Интуитивно его поставил.
#Но не работает что с ним что без него.
Load "kbd"
EndSection
#ересь коментим
#Section "ServerFlags"
# Option "AllowEmptyInput" "no"
# Option "AutoAddDevices" "no"
# Option "AutoEnableDevices" "no"
#EndSection
#и доверяем таки evdev его кухню,
#все по советам гугла.
#У людей работает.
Section "InputClass"
Identifier "keyboard-all"
Driver "evdev"
Option "XkbModel" "pc105"
Option "XkbOptions" "grp:rctrl_toggle,terminate:ctrl_alt_bksp,grp_led:scroll,compose:rwin"
MatchIsKeyboard "1"
Option "XkbLayout" "us,ru"
EndSection
Section "InputClass"
Identifier "Mouse"
MatchIsPointer "1"
Option "Protocol" "auto"
Option "Device" "/dev/input/mice"
Option "ZAxisMapping" "4 5 6 7"
EndSection
Но у меня это не работает.
Вопросы:
1) действительно ли текущая проблема (не срабатывание хоткеев) связана со способом подключения устройств? Может дело вовсе не в этом? Может просто кривовато поставил i3? Или может необходимо логиниться непременно через DM чтобы все было ровно?
2) правильно ли оформлен xorg.conf, во втором варианте? Может дело всего лишь в нем? А если правильно, и дело не в нем, то как проверить корректность определения устройств этим evdev? Может каких драйверов/пакетов не хватает (я все ставил ручками, может чего забыл?) А что с udev и его правилами?
Я в общем пока погуглю, но уже устал превозмогать самостоятельно, на текущий момент пресыщен спортивным гуглением. Буду признателен за спойлеры.