Xorg 1.8, клавиатура и другие устройства ввода

Ныне (с версии 1.8) xorg в linux использует udev вместо hal, а сие значит что если вы использвали hal для смены раскладки клавиатуры, то перенастраивать придется вновь...
xorg
Погуглив можно найти способы настройки xorg через udev. Например, тут достаточно подробное описание настройки udev для устройств ввода на русском, а тут на арчефоруме, помимо настройки, можно почерпнуть немало полезной (и безполезной) информации...
Но это не наш метод, ибо настройка через xorg.conf до сих пор оставлена для совместимости, а так же помимо перехода на udev, добавлена новая возможность создание файлов конфигурации для отдельных устройств — файлы в /etc/X11/xorg.conf.d.

Для привязки к заданному устройству, может быть использована идентификация по имени продукта (MatchProduct), имени производителя (MatchVendor), пути к устройству (MatchDevicePath) или его типу (MatchIsKeyboard, MatchIsTouchpad, MatchIsPointer, MatchIsJoystick, MatchIsTablet, MatchIsTouchscreen). Сие вместе с тем что файлы эти используются только при подключинии соответсвующих девайсов (InputAttributes и InputClass) должно упростить автоматизацию настройки X-сервера сторонними приложениями (вместо парсинга и генерации xorg.conf можно тупо кинуть готовые файлы в /etc/X11/xorg.conf.d).
К примеру для тачпада нужен файлик /etc/X11/xorg.conf.d/10-synaptics.conf (имя не критично) с содержимым вида
Section "InputClass"
	Identifier "touchpad"
	Driver "synaptics"
	MatchIsTouchpad "on"
	Option "TapButton1" "1"
	Option "TapButton2" "2"
	Option "TapButton3" "3"
	Option "VertEdgeScroll" "1"
	Option "VertTwoFingerScroll" "1"
	Option "HorizEdgeScroll" "1"
	Option "HorizTwoFingerScroll" "1"
	Option "CircularScrolling" "1"
	Option "CircScrollTrigger" "2"
EndSection

А для клавиатуры файлик /etc/X11/xorg.conf.d/20-keybord.conf с содержимым
Section "InputClass"
	Identifier "Keyboard Defaults"
	MatchIsKeyboard "yes"
	Option      "XkbLayout" "us,ru(winkeys)"
	Option      "XkbOptions" "grp:caps_toggle,grp_led:scroll"
EndSection
(Все эти опции так же могут быть переданы через udev)

Напомню что в ArchLinux xorg 1.8 ещё не пришел, но особо жаждущие могут его поставить из [xorg18] с дефолтным mirrorlist — добавьте в /etc/pacman.conf
[xorg18]
Include = /etc/pacman.d/mirrorlist

В общем, вроде и страшного с выходом 1.8 ничего не произошло, но судя по жуйке да форумам люди боятся перехода из-за возможных проблем с клавиатурой (мышкой, и прочими устройстывами ввода) как это было в 1.6 когда появился hal. Не спорю, переход достаточно наоднозначный, однако не такой уж и страшный ибо "не так страшен чёрт как дитя без глазу как его малюют".
Я для теста перешел, доволен некоторым ускорением, не замерял - но на глаз xorg стал чуть шустрее(или это плацебо эфект?)

Правда, хоть убейте, мне надоели метания xorg и я уже достаточно давно делаю всё по старинке через setxkbmap
setxkbmap -layout us,ru -variant ,winkeys -option grp:caps_toggle,grp_led:scroll,terminate:ctrl_alt_bksp,compose:ralt
благо сей метод пока ещё замечательно работает, и работать видимо будет долго(хотя для нескольких клавиатур великолепно подойдут методы используемые в новом xorg), правда тачпад пришлось настраивать так как описано выше...
anonymous 10-04-2010
+100500 к setxkbmap, ибо
а)не нужно зависеть от метаний разрабов
б)не нужно делать пользовательские настройки в системе
alg 10-04-2010
Превая ссылка "тут" не работает
muhas 10-04-2010
@alg поправил, спасибо
Гость 10-04-2010
первая ссылка на "тут" не работает
muhas 10-04-2010
уже работает =) поправил в 12:06
cf8 10-04-2010
>готовый файлы
>упрастить

по теме: nvidia ругается на "version mismatch" =(
muhas 10-04-2010
@cf8 fixed. мнее повезло, у меня intel - а то кактусы есть надоело =)
cray 10-04-2010
А как setxkbmap настроить так чтобы переключало согласно окна, а не глобально?
cf8 10-04-2010
@cray можно использовать xxkb, если я правильно понял
muhas 10-04-2010
@cray serxkbmap для этого не предназначен. xxkb либо управлялка/индикатор раскладкок из де или сторонняя
для xxkb надо в конфиге что-то вроде
XXkb.controls.add_when_start: yes
XXkb.controls.two_state: no
добавить
kuyantus 10-04-2010
как поставить xorg из xorg18? добавил нужные строки в pacman.conf, и в extra xorg-server, и в xorg18 пакет называется xorg-server. при обычном pacman -S xorg-server ставит из extra.
muhas 10-04-2010
@kuyantus либо репу выше чем extra укажи в pacman.conf и pacman -Syu
либо pacman -S xorg18/xorg-server
советую первый путь что-бы что-то по зависимостями не забыть
avr 10-04-2010
Ох, как уже они утомили с этими переходами...
Я понимаю оптимизация, уменьшение кода, и т.п.
Но ведь какой-то стандарт нужно оставлять всегда и не трогать
Опять все форумы и чаты будут пестрить темами: "черный экран"
muhas 10-04-2010
> Опять все форумы и чаты будут пестрить темами: "черный экран"

господи у мну уже год или больше всё даже без xorg.conf работает, а вы всё с черными экранами =)
стандарт-то есть xkb, dri, dri2, etc...
dr4g0n 10-04-2010
чтобы не ругалось на ABI, нужно прописать Option "ignoreABI" " on" в "ServerLayout" в xorg.conf
vovans 10-04-2010
чего панику (в комментариях) поднимать? Что там такое меняется, что пользователю прям страдать придётся? Много последнее время в иксах настраивать надо? Я максимум только драйвер видюхи указываю.

Прям такие проблемы, такие проблемы ))

А избавление от hal... Вы Убунту 10.4 пробовали? Блин, меня просто поразила скорость загрузки/перезагрузки, да и засыпание/просыпание. Так что ну его, этот hal.

Короче, ждём ебилдов. Жаль, что в дебе, думаю, не скоро появятся последние иксы :(
muhas 10-04-2010
> Вы Убунту 10.4 пробовали?

а пробовал убунту без гнома/кед/хфце? ;)
вот там бы и понастраивал раскладку клавиатуры... да и панику никто не разводит, хотя ученые горьким опытом xorg 1.6 несколько волнуются - хотя я благодоря тому же халу уже давно без xorg.conf живу - теперь без хала тоже самое =)
vovans 10-04-2010
Те, кто не используют Гном, ХФЦЕ и Кеды, вопросы такие и возмущения постеснялся бы высказывать. Ибо ничего такого сложного в настройке иксов нет. Тем более, что есть способы настройки раскладки и без халов, да удевов. Что справедливо отмечалось выше.

Но 1.6 помню, да ))
muhas 10-04-2010
@vovans в lxde тоже проблемы с раскладкой такие же - однако в некоторых дистрах он основной и пользователи там отнють не гики которым не заподло в конфиги ползать...
кстати, поломанную переключалку при переподключении клавы мы не учитываем при setxkbmap?
много-ли доков было по началу по этому чудо халу, особливо на русском - нет :( вот я и решил по 1.8 восполнить такой пробле который с 1.6 был
mike 10-04-2010
Section "InputClass"
Identifier "Keyboard Defaults"
MatchIsKeyboard "yes"
Option "XkbLayout" "us,ru(winkeys)"
Option "XkbOptions" "grp:caps_toggle,grp_led:scroll"
EndSection

А разве тут не нужно "Driver evdev"
muhas 10-04-2010
вроде если не указывать то по дефолту evdev и используется (по меньшей мере так было при хале, но я не указывал в 1.8 всё работало)
cray 10-04-2010
Поставил - все заработало. У мня интеловская карта 945GME.
Кстати, тачпад таки настроил - раньше все никак руки не доходили - теперь скроллы работают. Круть!
muhas 10-04-2010
@cray в арче же вроде ещё нету 1.8 или ты из xorg18 ставил?
monsta 10-04-2010
На сколько я понял из
The order of inheritance is quite simple. If present, xorg.conf be loaded, then the xorg.conf.d/**.conf files will be parsed next, in ASCII alphabetical order (so numbers will be first).
отсюда: http://www.gentoo.org/proj/en/desktop/x/x11/xorg-server-1.8-upgrade-guide.xml
имя не всегда не критично, а конфиги парсятся в определнной последованости в зависимости от имени.
monsta 10-04-2010
а вобще можно сделать все в дефолтном конфиге, так проще:
cat /etc/X11/xorg.conf.d/10-evdev.conf
Section "InputClass"
Identifier "evdev pointer catchall"
MatchIsPointer "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection

Section "InputClass"
Identifier "evdev keyboard catchall"
MatchIsKeyboard "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
Option "XkbLayout" "us,ru(winkeys)"
Option "XkbOptions" "grp:ctrl_shift_toggle,grp_led:scroll,terminate:ctrl_alt_bksp"
EndSection
x-demon 10-04-2010
А у меня такой конфиг синаптика вообще отключает тачпад. А по дефолту он мечется с чудовищной скоростью и чувствительностью.
muhas 10-04-2010
@x-demon хватит юзать тестинг =)

попадет в extra в арче так посмотрю - у мну с тем что я описал работало, но это было уже почти месяц назад и на xorg 1.8 я не остался ибо всё же жду в репах
Zidane 10-05-2010
(Arch) Использую(и подруга моя) по инерции kbd, evdev - нафиг. Вот так, после очередного обновления на ноуте у моей подруги перестала работать смена языка. udev добавлял evdev-клаву для power button и прочую лабуду, при этом сносились нормальные настройки на kbd. Решение напросилось само - забекапить 10-evdev.conf и снести его из xorg.conf.d/ (теперь всё работает).

А, ну и да, setxkbmap -layout us,ru -variant ,winkeys .... вызывала глюки работы с клавой, и это в какой-то мере костыль %))
muhas 10-05-2010
setxkbmap как-раз напрямую настраивает X Keyboard Extension, т.е. вовсе не костыль а один из самых Ъ методов использующих Xorg input driver for keyboards (что и есть kbd)
а вот с evdev дровиной (которая как бы Generic Linux input driver) пока не всё так радужно, но уже близко к этому.
так что тут очень большой вопрос что из чего костыль =)


x+udev само собой юзает evdev - если он имеется то он и используется по умолчанию...
кстати вы там на тестингах-анстабле все что ли, или где в стабле-куренте иксы уже 1.8?
PoZiTPoH 10-05-2010
В стабле 1.7 до сих пор
wilful 10-06-2010
xorg 1.8 в extra, всем десктопщикам внимание =)

Моя клава заработала только с kbd driver
Переключение раскладки не заработало
(http://dpaste.com/209806/) с этими параметрами подхватилась клава, но переключение раскладки (Ctrl+Shift не заработало) менял через setxkbmap и работает только по Капсу =) Даже понравилось
muhas 10-06-2010
@wilful по дефолту вроде evdev
Driver "kbd"
я с setxkbmap вчера даже не заметил что xorg 1.8 пришли, только в рсс новость прочел смотрю а у мну уже стоит, пошел в жуйку выяснять - вроде у народа гладко прошли обновления...
wilful 10-06-2010
ок, я на форуме напишу если не поправлю свои косяки, я даже рад проблемам, год скучал =)
_IcE_ 10-08-2010
у меня работает, что так:
grep setx .xinitrc
setxkbmap us,ru\(winkeys\) variant grp:ctrl_shift_toggle,grp_led:scroll
setxkbmap us,ru\(winkeys\) variant grp:shift_ctrl_toggle,grp_led:scroll

что так:
grep XkbO /etc/X11/xorg.conf
Option "XkbOptions" "grp:ctrl_shift_toggle,grp_led:scroll"
Option "XkbOptions" "grp:shift_ctrl_toggle,grp_led:scroll"

а с терминате думаю как лучше. так:
setxkbmap -option terminate:ctrl_alt_bksp
или в xorg.conf?
muhas 10-08-2010
первое правило админа "Работет - не трож" так что пусть работает, главное что бы ты понимал почему оно работает
Гость 10-10-2010
Спасибо.
DiaWorD 11-02-2011
Вот еще интересный демон: https://aur.archlinux.org/packages.php?ID=43452
За твой рэтпойзон не скажу, но к эйвсому оно подключается так: https://awesome.naquadah.org/wiki/Keyboard_layouts_with_kbdd
muhas 11-02-2011
к ratpoison, так же как ко всему что может на входе текст принимать он подключается так же как и skb (который только выводит раскладку клавиатуры, не запоминает их для окон и не имеет возможности переключить раскладку)

а так kbdd путная вещь — как на хабре прочел, так поставил (хотя в 0.4 был косяк со слетанием запомнившейся раскладки, поэтому пользовал 0.3.2 до выхода 0.5) в замен xxkb

ps ратпоисон не пользую уже. openbox+pytyle хватает выше крыши