Как стать автором
Поиск
Написать публикацию
Обновить

Отдельный хоткей для каждой из раскладок в GNOME 3.8

Если у Вас больше двух раскладок клавиатуры, обычные (кольцевые) методы переключения вроде Alt+Shift покажутся не очень удобными. Гораздо лучше в такой ситуации назначить отдельный хоткей для каждой раскладки. Например: Ctrl+2 для английской, Ctrl+3 для русской и Ctrl+4 для немецкой. В KDE (как и в Windows) возможность сделать такое через GUI давно есть. А вот в GNOME 3.8, который мне нравится не меньше — до сих пор нет. Но мы не сдаёмся. Вот что у меня получилось после некоторой возни:
В этой статье я расскажу вам, как добится такого результата, используя DConf — низкоуровневую систему конфигурации GNOME, похожую на реестр Windows.

Находим ключ в DConf

После долгих поисков я обнаружил в ключ current в секции org.gnome.desktop.input-sources. Не знаю, почему я не заметил его раньше, ведь я неоднократно заглядывал в эту секцию. Этот ключ хранит номер текущей используемой раскладки, начиная с нуля.
Теперь, чтобы включить вторую раскладку, достаточно набрать в консоли:
gsettings set org.gnome.desktop.input-sources current 1

Используем метод D-Bus

Кроме DConf можно использовать D-Bus, систему межпроцессного взаимодействия, легко доступную из рызличных языков программирования. Доступ к D-Bus из консоли осущёствляется с помощью утилиты qdbus:
qdbus org.gnome.SettingsDaemon.Keyboard /org/gnome/SettingsDaemon/Keyboard org.gnome.SettingsDaemon.Keyboard.SetInputSource 1

Создаём хоткеи

Теперь повесим любую из двух команд на горячие клавиши:

Пожелание разработчикам GNOME 3

Ребята, сделайте, пожалуйста, так, чтобы таким методом переключения раскладок мог пользоваться любой, кто пожелает. В конце концов, не у всех есть время и возможность разбираться с DConf и D-Bus. Вот как это сделано в KDE:


На этом всё. Надеюсь, что моя статья кому-нибудь поможет.
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.