В моем дистрибутиве (Slackware 13.37) раскладка клавиатуры консоли выбирается из числа доступных в /usr/share/kbd/keymaps
подкаталогах, взятых из пакета kbd.
В X вместо этого раскладка клавиатуры выбирается из списка «раскладок», включенного в файл /etc/X11/xkb/rules/evdev.lst
.
Кто-нибудь знает, как, имея раскладку клавиатуры консоли, сопоставить ее с раскладкой клавиатуры X, чтобы соответствующим образом настроить параметр «XkbLayout» в файле конфигурации X?
Мне особенно интересно узнать, как другие дистрибутивы, помимо Slackware, справляются с этой задачей при первоначальной настройке.
решение1
Насколько я понимаю, в Debian /etc/default/keyboard
вы задаете переменным XKB{MODEL,LAYOUT,VARIANT,OPTIONS}
значения, которые будете использовать для XKB.
Затем при загрузке setupcon(1)
считывает эти переменные и вызывает ckbcomp(1)
, который, как сказано в его странице руководства, «компилирует описание клавиатуры XKB в раскладку, подходящую для loadkeys
или kbdcontrol
».
Наконец, loadkeys(1)
вызывается для скомпилированного файла.
НТН.
(Или, может быть, вы имели в виду обратное. Я сейчас не совсем уверен...)
решение2
Никакого волшебства нет, дистрибутивы просто должны поддерживать массив триплетов: «текстовое описание раскладки клавиатуры», «параметры раскладки клавиатуры консоли», «параметры раскладки клавиатуры X11» и предоставлять инструмент для выбора и настройки раскладок.
Если дистрибутив этого не делает, то пользователю придется вручную настроить консоль и клавиатуру X11, а значит, и сделать их согласованными друг с другом.