Переключение раскладки клавиатуры отключает настройки setxkbmap

Я использую эту команду: setxkbmap -option "lv3:caps_switch" настроить сочетания клавиш (стрелки домой, конец, влево и вправо).

Конфигурация находится в /usr/share/X11/xkb/symbols/us файл. Все работает нормально, кроме тех случаев, когда я переключаю раскладку клавиатуры, setxkbmap, перестань работать и не работать снова, даже если я вернусь к американскому макету. Я должен заново запустить setxkbmap -option "lv3:caps_switch" чтобы мои отображения снова заработали.

Есть ли способ это исправить? Моя версия Ubuntu 14.04

1 ответ

Решение

AFAIK с Ubuntu 13.10, Они изменили способ управления раскладкой Unity/Gnome. Таким образом, он поддерживает несколько механизмов ввода и перенес ярлык управления изменением макета на более высокий уровень (диспетчер окон / демон настроек).

setxkbmap работает с нижним уровнем XKB, демон настроек не запрашивает изменения на нижнем уровне. Он просто напрямую применяет настройки, хранящиеся в его базе данных.

Есть два варианта, которые могут помочь вам получить это:

  • Сохранить настройки XKB (рекомендуется)

    gsettings set org.gnome.desktop.input-sources xkb-options "['lv3:caps_switch']"
    

    Ссылка: Как включить Ctrl+Alt+Backspace?

  • Добавьте настройки уровня 3 непосредственно в us макет, как показано ниже:

        ...
        key <AB09> {        [    period,    greater         ]       };
        key <AB10> {        [     slash,    question        ]       };
    
        key <BKSL> {        [ backslash,         bar        ]       };
    
        include "level3(caps_switch)"
    };
    

    Тогда беги sudo dpkg-reconfigure xkb-data, переключитесь на другую раскладку и вернитесь назад.

Другие вопросы по тегам