Изменение раскладки клавиатуры Xfce Ctrl+Пробел

Изменение раскладки клавиатуры Xfce Ctrl+Пробел

Я гуглил это почти неделю, но безрезультатно. Когда я открываю панель настроек клавиатуры, опции (те, в которых есть «Пробел») ограничены только Alt+ Space и Super+ Space– нет Ctrl+ Space.

Я нашел несколько ответов, но ни один из них не работает.

Первый способ — установить xfce4-xkb-plugin (который у меня уже был установлен), затем установить флаг «использовать системные настройки по умолчанию» на панели настроек клавиатуры, после чего использовать свойства плагина для установки языков и сочетаний клавиш. Это не работает — на панели свойств есть только параметры внешнего вида элемента панели... и все.

Номер два — это эта строка:

-option grp:ctrl_space_toggle,grp_led:scroll en,ru

Тоже не работает. Если я вставляю это в свой .Xmodmapфайл, возникает ошибка и файл больше не анализируется.

Я отказался от поиска, но мне это действительно нужно, так как это рефлекс на долгое время. Пожалуйста, помогите мне установить Ctrl+ Space как сочетание клавиш для смены раскладки. (Я использую Arch Linux.)

решение1

Вот оченьподробный ответэто мне помогло.

Что я сделал, чтобы активировать Ctrl + Spaceселектор раскладки клавиатуры →

  1. Добавьте новую grp:lctrl_space_toggleстроку селектора в /usr/share/X11/xkb/rules/evdev.lst:
! option
  grp                  Switching to another layout
  grp:switch           Right Alt (while pressed)
  grp:lswitch          Left Alt (while pressed)
  ...
  grp:lctrl_space_toggle Ctrl+Space (Custom layout selector)
  ...
  1. Добавить новую grp:lctrl_space_toggleстроку селектора в /usr/share/X11/xkb/rules/evdev:
! option        =       symbols
  grp:shift_toggle      =       +group(shifts_toggle)
  altwin:menu           =       +altwin(menu)
  altwin:menu_win       =       +altwin(menu_win)
  ...
  grp:lctrl_space_toggle =      +group(lctrl_space_toggle)
  ...
  1. Добавьте групповой блок в /usr/share/X11/xkb/symbols/group:
partial modifier_keys
xkb_symbols "lctrl_space_toggle" {
    key <SPCE> {
        type[Group1]="PC_CONTROL_LEVEL2",
        symbols[Group1] = [ space, ISO_Next_Group ]
    };
};

* Я добавил этот блок между другими grp:группами

  1. Получить текущие параметры клавиатуры:
setxkbmap -print -verbose 10 | grep options:

Вывод (в моем случае):

options:    ctrl:nocaps,grp:win_space_toggle
  1. Здесь значение по умолчанию grp:win_space_toggleпереопределит наш параметр, поэтому сначала нам следует очистить все параметры:
setxkbmap -option
  1. Добавить новую опцию выбора макета + другие опции, которые были установлены ранее (кроме grp:...одной):
setxkbmap -option grp:lctrl_space_toggle,ctrl:nocaps
  1. Выгода

P.S. Возможно, что некоторые инструменты GUI могут переопределять это поведение при перезагрузке ( в моем случае это делала функция SystemKeyboardAdvancedв KDE), поэтому нам придется отключить все настройки сочетаний клавиш, чтобы избежать этого. Также может быть полезно добавить наши пользовательские параметры в /etc/default/keyboard:

...
XKBOPTIONS="grp:lctrl_space_toggle,ctrl:nocaps"
...

Связанный контент