Много лет я использовал в Linux клавишу Caps Lock для переключения раскладки. И с этим не было проблем, пока я не решил обновиться до новой Ubuntu 19.04, заодно сменив дефолтную оболочку. Здесь назначить Caps Lock — задача нетривиальная. Насколько я знаю, в Ubuntu 18.04 — тоже. То есть статья пригодится пользователям Ubuntu 18.04 и новее.
Я использую в качестве графической оболочки Budgie, но в Gnome Shell наблюдается та же проблема. Вообще, настройки горячих клавиш в обоих системах одинаковые, даже диалоговое окно используется одно и то же, так что статья актуальна для обоих оболочек.
Первая мысль — попробовать использовать для смены стандартное диалоговое окно.
К сожалению, здесь ничего не выходит. Ну да ничего, мы ведь знаем о существовании «dconf-editor». Если он не установлен, то это можно исправить командой в консоли:
sudo apt install dconf-editor
Запускаем программу после установки и переходим в раздел / org / gnome / desktop / wm / keybindings, в котором задаем нужные значения для параметров switch-input-source и switch-input-source-backward:
Как видно на скриншоте выше, я задал этим двум параметрам соответственно следующие значения:
['Caps_Lock', '<Super>space', 'XF86Keyboard']
…и
['<Shift>Caps_Lock', '<Shift><Super>space', '<Shift>XF86Keyboard']
Я приписал новые значения к дефолтным, но вы можете оставить только новые, удалив дефолтные, то есть так:
['Caps_Lock']
…и так:
['<Shift>Caps_Lock']
И даже в стандартном диалоговом окне теперь отображаются правильные комбинации:
Казалось бы, все должно быть хорошо, но нет. Вернее, переключение раскладки теперь работает, с этим все в порядке. Но одновременно, вместе с ним продолжает работать непосредственный функционал клавиши Caps Lock, то есть перевод символов в верхний регистр. Естественно, такое положение вещей нас не устраивает, будем исправлять.
Как это можно исправить? Есть варианты отключения клавиши Caps Lock или ее переназначение на другие клавиши, но эти варианты нас не устраивают, поскольку тогда наши комбинации для переключения раскладки вообще перестанут работать. Поэтому нужно постараться отключить функционал перевода в верхний регистр, при этом не отключая и не переназначая саму клавишу. Шел я к этому решению сквозь дебри англоязычных форумов и мануалов довольно долго, но в конце концов решение было найдено. Причем не в мануалах, а проверенным «методом тыка». Поможет нам консольная утилита «xmodmap» (вроде установлена в Ubuntu по дефолту, но если у вас ее нет — установите).
Итак, волшебная команда в консоли, которая делает то, что нам нужно (то есть отключает функционал капслока, при этом не отключая саму клавишу):
xmodmap -e 'keycode 66 = NoSymbol Caps_Lock'
Естественно, если вы просто введете эту команду в консоли, то она будет работать ровно до перезагрузки. Чтобы она работала всегда — нужно добавить ее в автозагрузку. Сделать это можно разными способами, я выбрал способ добавления этой строки в файл «.profile» в корне домашней папки пользователя (если такого файла нет — создайте его).
Собственно, на этом все. Надеюсь, эта заметка сильно сэкономит кому-то время на поиск решения.
Время идет, а проблема остается. В Ubuntu 19.10 все еще актуальны те же инструкции.
Супер! Именно этого не хватало!
Отлично!
А еще можно использовать gnome-tweaks, там в параметрах клавиатуры есть настройка раскладки.
это лучшее решение! Спасибо)))
А это правда у кого-то работает в Budgie?
У меня и в 19.10 изменение параметров клавиатуры ни на что не влияли (что в разделе изменения раскладки, что в разделе изменения поведения Caps Lock), и в 20.04 то же самое. Специально заглянул — у меня там перманентно галочки нужные стоят, только толку ноль от них.
Да, у меня все отлично заработало.
В Budgie, или в дефолтном Gnome Shell?
Автор статьи, спасибо тебе огромное! Твои инструкции очень помогли мне настроить всё так, как мне нужно.
Александра, пожалуйста. Рад, что смог помочь)
У меня в Xubuntu работает вариант добавление строки в ~/.bashrc
setxkbmap -option «grp:switch,grp:caps_toggle» -layout «us,ru,ua»
Если нужен капс Shift+Caps и он работает.
вариант для LXDE https://16rom.com/ru/blog/lxde-debian-7-keyboard-layout-ustanovka-yazyka
Даже в KDE neon заработало
Ну клево)
А я сам уже честно говоря сдался и перешел на дефолтную в Budgie комбинацию Super+Space. В качестве одного из преимуществ — эта универсальная комбинация работает сразу во всех трех популярных операционках, так что если приходится работать за чужим компьютером — там она тоже работает.
Друзья, есть способ намного проще — ставите gnome-tweak и там меняете
На 21.10 рецепт не работает: Caps продолжает работать как Caps. Кроме того, индикатор переключалки Wayland висит долго и убирается после нажатия Enter 🙁
gnome-tweaks (gnome-tweak-tool) всё делает как надо.