среда, 17 октября 2012 г.

Настройка переключателя раскладок через Иксы в Debian Wheezy

Когда-то в стародавние времена, когда всяческие Гномы и KDE не умели сами менять переключатель раскладок, приходилось добавлять в файл /etc/X11/xorg.conf строку «Option      "XkbOptions" "grp:caps_toggle,grp:shifts_toggle,lv3:ralt_switch,grp_led:scroll,altwin:meta_win"» в секции настройки клавиатуры.

Переехав на awesome, я вспомнил о необходимости иногда редактировать конфиги Иксов, однако, к моему великому удивлению, при указанной конфигурации у меня работает только переключение по нажатию двух шифтов. Судя по логу /var/log/Xorg.0.log Иксы берут настройки клавиатуры из какого-то другого файла.

Не помню, в каких недрах Интернета нашёл я указание на то, что драйвер evdev заменят настройки на свои. Неясно только мне, почему всё-таки подключается grp:shifts_toggle - это теперь дефолтный переключатель или я где-то всё-таки его прописал? Один из способов решения - отключить драйвер evdev. Другой способ решения приведу здесь:

  1. Открываем файл /usr/share/X11/xorg.conf.d/10-evdev.conf
  2. Находим секцию настройки клавиатуры evdev
    Section "InputClass"
            Identifier "evdev keyboard catchall"
            MatchIsKeyboard "on"
            MatchDevicePath "/dev/input/event*"
            Driver "evdev"
    EndSection
  3. Добавляем туда уже упомянутую вначале строку XkbOptions:
    Section "InputClass"
            Identifier "evdev keyboard catchall"
            MatchIsKeyboard "on"
            MatchDevicePath "/dev/input/event*"
            Driver "evdev"
            Option      "XkbOptions" "grp:caps_toggle,grp:shifts_toggle,lv3:ralt_switch,grp_led:scroll,altwin:meta_win"
    EndSection
Кажется логичным прописать XkbOptions  в файле /etc/default/keyboard, но почему-то на моей системе это не помогает.