LINUX.ORG.RU

X, раскладка клавиатуры (чтобы не слетала при переподключении)

 ,


0

1

Сразу оговорю, что у меня не «реальная проблема», а скорее желание в будущем сделать красиво и вообще узнать, как правильно.

Делаю раскладку клавиатуры для xkb, загружаю её через xkbcomp (плюс добавляю это в .xsessionrc, например). Отключаю USB-клавиатуру, подключаю USB-клавиатуру — раскладку надо загружать заново. Как это правильным способом победить (сделать, чтобы загружалась сама)? Решения, предполагающие одну раскладку на всех пользователей, не интересуют (т.е. положить xkb от любимой раскладки на место системного и т.д.).

Подозреваю, что KDE и Gnome будут восстанавливать настройки клавиатуры, которые сделаны в них же. Это хорошо, но недостаточно.

Когда-то я навелосипедил штуку, которая ловит события xinput и при любом изменении в иерархии устройств запускает заданную команду. Она-то мне и переписывает xkb, не нуждаясь в правах рута и не требуя модификации системы. Есть ли более приличный способ?



Последнее исправление: LeninGad (всего исправлений: 1)

Ответ на: комментарий от val-amart

udev, ну а дальше?

В правилах udev посмотреть, кто залогинен на :0 и отдать параметры для его раскладки (как сейчас xorg-xkb.rules делает для системной)?

Вариант, но не сработает, если разные пользователи на :0 и :1 хотят разных раскладок. Хорошее решение для локальной проблемы, но в качестве best practice... подожду ещё вариантов.

LeninGad
() автор топика
Ответ на: комментарий от LeninGad

согласен, для многопользовательской системы не очень. но. на такой системе ты скорее всего заранее знаешь, какое устройство ввода соответствует каким иксам, и запускаешь оба экземпляра иксов по заранее созданным конфигам. а если нет, как ты вообще будешь знать, каким иксам эту новую клавиатуру отдать?

словом, я бы на твоем месте был готовым к тому что для multiseat ты лучшего решения не найдешь. off-beat path всегда со своими костыльными скриптами и никак иначе.

val-amart ★★★★★
()
Ответ на: комментарий от val-amart

Эээ, «отдать» это как раз про multiseat и прочие горынычи, а я скорее про Ctrl+Alt+F8, и вот та же самая клавиатура уже «принадлежит» другим иксам (не знаю, кстати, что в это время происходит с точки зрения xinput, может это как unplug оттуда и hotplug сюда — но udev-то этого никак вообще не увидит?).

В современных DM и DE такую ситуацию можно вообще получить без предварительной настройки: нажал «switch user» на заблокированном десктопе, и у тебя уже :1.

Интересно, что KDE делает, если оно эту задачу решает для своих раскладок — вдруг тамошней «решалке» подсунуть раскладку можно.

LeninGad
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.