Как настроить плагин XFCE4 XKB для запоминания настроек при перезагрузке?

После этого ответа я установил xfce - xfce4-xkb-plugin для указания и переключения раскладок клавиатуры в XUbuntu. Но при каждой перезагрузке он сбрасывает все настройки (языки, которые я использую, и горячую клавишу переключения раскладок). Как заставить это вспомнить?

7 ответов

Решение

Это известная ошибка. Я использую Xfce в Arch Linux и что я делаю, это редактировать ~/.config/xfce4/panel/xkb-plugin-##.rc и добавить новую строку или что-то, и это работает для некоторых сессий. Может быть еще одно временное исправление #31 предполагает

1. Set the desired options in the plugin
2. Copy the ~/.config/xfce4/panel/xkb-plugin-##.rc to some other file e.g. ~/.config/xfce4/panel/goodxkb.rc
3. Add this command to a startup job:

     sh -c "cp ~/.config/xfce4/panel/goodxkb.rc ~/.config/xfce4/panel/xkb-plugin-##.rc && pkill xkb"
    (change the ## to your number)

Часть pkill имеет решающее значение для перезагрузки плагина и его конфигурации.

Поскольку лучший предыдущий ответ, как представляется, впоследствии комментируется пользователем как неработающий, я приведу здесь обновленную усовершенствованную версию довольно успешного обходного пути. Извините, что не смогу предоставить более научный, менее эмпирический подход, я не продвинутый пользователь, просто мне посчастливилось получить то, что я хочу в этом случае, и хочу поделиться этим, возможно, как временное пэчворк. Итак, голый со мной. Я использую Xubuntu, возможно, некоторые инструкции ограничены этим.

Мое решение таково (в моем случае английский-американский по умолчанию, второй французский, третий румынский стандарт - замените соответственно):

  1. Перейдите в " Диспетчер настроек"> "Клавиатура"> "Макет" и установите языки в предпочтительном порядке (удалите их и добавьте их, чтобы добиться этого). Перейдите к свойствам плагина xkb и сделайте те же настройки в том же порядке с тем же языком по умолчанию.

  2. Открыть файл$HOME/.config/xfce4/xfconf/xfce-perchannel-xml/keyboard-layout.xmlОтредактируйте его, чтобы он выглядел примерно так.

  3. Открыть файл$HOME/.config/xfce4/panel/xkb-plugin-##.rc(замените ## на соответствующий номер). Отредактируйте его, чтобы он выглядел примерно так.

  4. Открыть файл/etc/default/keyboard(как корень)

Отредактируйте это соответственно:

XKBMODEL="pc105"
XKBLAYOUT="us,fr,ro"
XKBVARIANT=",,std"
XKBOPTIONS="grp:alt_shift_toggle"

Может быть, не все это необходимо, чтобы это работало, но на всякий случай...

Просто отредактируйте свой /etc/default/keyboard так, как вы хотите. В этом случае индикатор языка Xfce будет работать правильно, и настройки не будут забыты.

  1. Перейдите в Xfce Settings Manager => Клавиатура => Макет. Здесь вы должны убедиться, что рядом с "Использовать системные значения по умолчанию" стоит галочка. Если вы не отметите это, то убедитесь, что выбранные здесь языки точно такие же, и в том же порядке, что и в /etc/default/keyboard и индикатор языка Xfce.
  2. sudo nano /etc/default/keyboard
  3. Например, если вы хотите переключаться между английским, эсперанто, немецким и русским языком, сделайте следующие изменения (оставьте все как есть):

    XKBLAYOUT="gb,epo,de,ru"
    XKBVARIANT=",,,phonetic"
    XKBOPTIONS="grp:alt_caps_toggle"
    

    в XKBLAYOUT убедитесь, что вы не вводите пробелы между языками, в противном случае текст не будет правильно отображаться в индикаторе языка на панели Xfce.

    В приведенном выше примере используется фонетическая версия русской клавиатуры, которая определяется XKBVARIANT, Три запятые находятся перед словом "фонетический", поскольку они говорят системе, что для трех других предыдущих языков не требуется никакого варианта.

    XKBOPTIONS определяет ярлык для переключения между языками. В данном случае это Alt + Caps Lock.

  4. Сохраните изменения. В Nano вы делаете это, нажимая Ctl + x, затем y и затем нажимая Enter.

  5. Перезагрузите компьютер, чтобы изменения вступили в силу.

Для получения информации о том, какие другие переменные могут быть помещены в файл /etc/default/keyboardвведите в терминале следующее: cat /usr/share/X11/xkb/rules/xorg.lst, Здесь вы можете увидеть коды языков, типы вариантов, а также ярлыки, которые можно использовать.

Вики Debian также содержит информацию о настройке клавиатуры, и руководство по настройке XKB также очень полезно (оно содержит несколько отличных примеров).

Другое решение - использовать встроенные инструменты Debian:

  1. Настройки -> Переключатель метода ввода -> Установить по умолчанию
  2. Удалите xfce4-xkb-плагин с панели
  3. Запустите команду: sudo dpkg-reconfigure keyboard-configuration и выберите нужную раскладку клавиатуры и горячую клавишу для переключения
  4. перезагружать
  5. Добавьте xfce4-xkb-plugin на панель, если хотите

Добавьте это в автозапуск (можете настроить, пример настроек из моих точечных файлов):

xfconf-query -c keyboard-layout -pn /Default/XkbDisable -t 'bool' -s false
xfconf-query -c keyboard-layout -pn /Default/XkbOptions/Group -t 'string' -s "grp:alt_shift_toggle"
xfconf-query -c keyboard-layout -pn /Default/XkbModel -t 'string' -s "chromebook_m_ralt"
xfconf-query -c keyboard-layout -pn /Default/XkbLayout -t 'string' -s "us,ua,ru"
xfconf-query -c keyboard-layout -pn /Default/XkbVariant -t 'string' -s ",,"

Xubuntu 12.04. Я мог запомнить ярлык, используя следующие действия:

  1. "Настройки> Диспетчер настроек> Клавиатура> Макет" и снимите флажок "Использовать системные настройки по умолчанию" для добавления новых макетов;

  2. Перейдите в свойства xfce4-xkb-plugin и установите ярлык (я использую Ctrl+Shift);

  3. Вернитесь в "Настройки> Диспетчер настроек> Клавиатура> Раскладка" и отметьте "Использовать системные настройки по умолчанию" (не беспокойтесь, добавленные клавиатуры будут сохранены).

Это пережило 2 выхода / входа и одну перезагрузку, пока.

Меню -> Настройки -> Диспетчер настроек

Сессия и запуск

Проверка: автоматическое сохранение сеанса при выходе

Я решил эту проблему, добавив в мой файл.bashrc следующую строку:

setxkbmap -option grp:ctrl_shift_toggle

Теперь все работает хорошо.

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