Как можно настроить комбинацию клавиш, чтобы она работала в любой языковой раскладке в сессии X11?

В файле schkdrc заданы все комбинации клавиш, но комбинации, содержащие английские буквы, не функционируют при активной русской раскладке. Мне нужно изменить эти комбинации, чтобы они работали независимо от выбранной раскладки. Один из предложенных вариантов — использование keycode, однако этот метод у меня не сработал. <br/> Пример комбинаций: <br/> <pre><code># Launch Terminal
super + Return
    alacritty

# Hide or Unhide Polybar
alt + p
	sh $HOME/bin/toggle-polybar</code></pre> <br/> <br/> Эта проблема вызывает у меня значительные неудобства, особенно когда я пишу сообщения на русском и не могу использовать такие привычные комбинации, как ctrl + c и ctrl + v. Кто-нибудь сталкивался с подобной проблемой? Как можно ее решить?
  • 19 сентября 2024 г. 18:23
Ответы на вопрос 2
Для настройки комбинаций клавиш, которые будут работать независимо от раскладки клавиатуры в X11, можно воспользоваться следующим методом:

1. **Использование `xbindkeys`:** Эта утилита позволяет привязывать разные действия к сочетаниям клавиш и может работать с keycodes, а не с символами. Используя `xbindkeys`, вы сможете настроить сочетания клавиш, которые не зависят от текущей клавиатурной раскладки.

2. **Пример конфигурации `~/.xbindkeysrc`:**

   1. Установите `xbindkeys`:
      ```bash
      sudo apt install xbindkeys
      ```
   2. Создайте или отредактируйте файл `~/.xbindkeysrc` и добавьте туда следующие строки:

      ```bash
      # Launch Terminal
      "alacritty"
          Super + Return

      # Hide or Unhide Polybar
      "sh $HOME/bin/toggle-polybar"
          Alt + p
      ```

   3. Не забудьте запустить `xbindkeys`, чтобы применить изменения:
      ```bash
      xbindkeys
      ```

3. **Использование `xmodmap` или `setxkbmap`:** Вы можете настроить клавиши так, чтобы они работали в любой раскладке. Например, можно переназначить функциональные клавиши или использовать комбинации клавиш на основе keycodes. Этот метод требует больше ручной настройки.

4. **Использование `sxhkd`:** Убедитесь, что вы используете правильный менеджер горячих клавиш. Например, `sxhkd` предоставляет хорошую поддержку для определения сочетаний клавиш. Вы можете использовать keycodes, чтобы настроить универсальные сочетания. 

5. **Работа с символами вместо букв:** Если вы принимаете решение поработать с `sxhkd` или аналогичными менеджерами, используйте символы (например `Ctrl`, `Alt`, `Shift` и т.д.) для создания комбинаций клавиш. Это обеспечит их работу вне зависимости от раскладки.

Вот пример конфигурации `sxhkd`:
```sh
# Launch Terminal
super + Return
    alacritty

# Hide or Unhide Polybar
alt + p
    sh $HOME/bin/toggle-polybar
```

Эти команды будут работать независимо от вашей раскладки — модификаторы, такие как `Ctrl`, `Alt`, и `Super`, всегда будут обрабатываться правильно.

6. **Запуск на старте:** Добавьте запуск вашего менеджера горячих клавиш (например, `xbindkeys` или `sxhkd`) в файл автозапуска вашей среды рабочего стола, чтобы он запускался при старте системы.

Пробуйте один из этих методов, и вы должны смочь решить проблему с комбинациями клавиш в разных раскладках.
Создать не одну комбинацию а две в разных раскладках alt + p и alt + з для одной и той же команды
Похожие вопросы