Как заставить xcape правильно работать в Ubuntu 22.04?

Я пользователь vim/nvim, и xcape стал для меня ключевой функцией в последние годы.
Я использую его в сочетании с gnome-tweaks (новое имя пакета, в предыдущей версии было gnome-tweak-tool), чтобы:

  • использовать в качестве Ctrlв сочетании с другим ключом
  • использовать CapsLockкак Escкогда я использую его один.

Команда xcape, которую я использую:

      xcape -e 'Caps_Lock=Escape'

после того, как я перешел с Ubuntu 20.04 на Ubuntu 22.04 , эта команда больше не работает, как ожидалось.

Когда я бегу, я заметил, что:

  • Ubuntu 20.04 перехватывает каждое ключевое событие независимо от того, в каких окнах я нахожусь.
  • Ключевое событие Ubuntu 22.04 из терминала/текстового редактора/файлов не перехватывается, но когда я нахожусь в Chrome, они перехватываются.

Кто-нибудь знает причину такого поведения? Это очень раздражает!

Заранее спасибо за помощь!

Изменить:
ответ @vanadium помог мне получить xcape -dснова работать.
К сожалению, служба автозапуска, которую я использовал, больше не работает:

      [Desktop Entry]
Type=Application
Exec=xcape -e 'Caps_Lock=Escape'
Name=Keyboard Setup
Comment=Custom keyboard setup

После некоторых исследований и попыток я, наконец, заставил его работать, просто обновив запись следующим образом:

      [Desktop Entry]
Type=Application
Exec=xcape -d
Terminal=false
Name=Keyboard Setup
Comment=Custom keyboard setup
X-GNOME-Autostart-enabled=true

В начале я пытался разветвить процесс с помощью nohup xcape -d &и создать системную службу без особого успеха.

1 ответ

Причиной такого поведения будет то, что теперь вы используете Wayland вместо Xorg. Оба пользователя, которые выполняют новую установку в качестве пользователей, выполняющих обновление, будут перемещены в Wayland.

Wayland реализует меры безопасности вплоть до взлома функций. Одним из них является то, что программы больше не могут перехватывать нажатия клавиш.

Терминал/Текстовый редактор/Файлы — это родные программы Wayland. Однако Google Chrome работает на xwayland, слое эмуляции в Wayland, который позволяет запускать программы, требующие Xorg. будет работать во всех программах, работающих на xwayland.

Есть две возможности:

  1. Перейдите в Xorg. Выйдите из системы, прежде чем вводить пароль, нажмите на шестеренку, чтобы перейти к сеансу «Ubuntu на Xorg».

  2. Оставайтесь на Wayland и добейтесь эффекта, довольно близкого к тому, что у вас было с xcape: в Gnome Tweaks перейдите на вкладку «Клавиатура и мышь». В «Дополнительных параметрах макета» есть возможность сделать CapsLockдополнительный Ctrl. Тогда вы только потеряете возможность использовать этот ключ отдельно как Esc.

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