Назад к MIDI Mapper

Решение проблем в Linux

В Linux есть два протокола дисплейного сервера — Wayland и X11, — и для эмуляции ввода с клавиатуры каждому нужны свои инструменты. Это руководство поможет вам всё настроить.

Большинство современных дистрибутивов (Fedora 40+, Ubuntu 24.04+, GNOME 46+) по умолчанию используют Wayland. Более старые системы или системы с некоторыми драйверами NVIDIA могут по-прежнему работать на X11.

?

Как узнать, у меня Wayland или X11?

1

Проверьте дисплейный сервер

Откройте терминал и выполните команду:

Терминал
$ echo $XDG_SESSION_TYPE
# Выведет «wayland» или «x11»

Если вывод пустой, скорее всего, у вас X11. Некоторые менеджеры дисплея не задают эту переменную.

A

Настройка для Wayland

Для Fedora, Ubuntu, Arch и других современных дистрибутивов

Для Wayland нужен ydotool — эмулятор ввода, не зависящий от дисплейного сервера и работающий напрямую с ядром. Ему требуются фоновый демон и право записи в /dev/uinput.

Fedora / Fedora Atomic

1

Установите ydotool

Для обычной Fedora:

Терминал
$ sudo dnf install ydotool

В атомарных вариантах Fedora (Silverblue, Kinoite, Universal Blue) используйте вместо этого rpm-ostree install ydotool && systemctl reboot.

2

Включите демон

Запустите ydotoold сейчас и настройте его автозапуск при каждой загрузке:

Терминал
$ sudo systemctl enable --now ydotoold
# Запускает ydotoold сейчас и при каждой загрузке
3

Добавьте пользователя в группу input

Дайте своему пользователю право использовать виртуальное устройство ввода:

Терминал
$ sudo usermod -aG input $USER
# Выйдите из системы и войдите снова, чтобы изменения вступили в силу

Чтобы изменение группы вступило в силу, нужно выйти из системы и войти снова (или перезагрузиться).

4

Проверьте, что всё работает

Убедитесь, что ydotool может эмулировать нажатия клавиш:

Терминал
$ ydotool key 28:1 28:0
# Эмулирует нажатие Enter
другие дистрибутивы

Ubuntu / Debian

1

Установите ydotool

Терминал
$ sudo apt install ydotool
2

Включите демон, добавьте пользователя в группу input и проверьте

Те же шаги, что и для Fedora выше:

Терминал
$ sudo systemctl enable --now ydotoold
$ sudo usermod -aG input $USER
# Выйдите из системы, войдите снова и проверьте:
$ ydotool key 28:1 28:0

Arch Linux

1

Установите ydotool

Терминал
$ sudo pacman -S ydotool
2

Включите демон, добавьте пользователя в группу input и проверьте

Те же шаги, что и для Fedora выше:

Терминал
$ sudo systemctl enable --now ydotoold
$ sudo usermod -aG input $USER
# Выйдите из системы, войдите снова и проверьте:
$ ydotool key 28:1 28:0
или
B

Настройка для X11

Для более старых или традиционных дистрибутивов

X11 использует xdotool, и с ним проще — демон не нужен, и обычно всё работает сразу после установки.

1

Установите xdotool

Выберите команду для своего дистрибутива:

Терминал
$ sudo apt install xdotool
# Ubuntu / Debian
Терминал
$ sudo dnf install xdotool
# Fedora
Терминал
$ sudo pacman -S xdotool
# Arch Linux
2

Готово

xdotool работает сразу после установки. Ни демон, ни изменение групп не требуются.

Ввод текста в Wayland

Если вы используете действие Ввод текста в Wayland, для ввода символов MIDI Mapper нужен wtype.

Терминал
$ sudo apt install wtype
# Ubuntu / Debian
Терминал
$ sudo dnf install wtype
# Fedora
Терминал
$ sudo pacman -S wtype
# Arch Linux

wtype нужен только для ввода текста. Для эмуляции сочетаний клавиш используется ydotool.

Частые проблемы

!

«ydotool: command not found»

ydotool не установлен. Выполните шаги настройки для Wayland выше для своего дистрибутива.

!

Клавиши срабатывают, но ничего не происходит

Вероятно, демон ydotoold не запущен. Проверьте его состояние и перезапустите:

Терминал
$ sudo systemctl status ydotoold
Терминал
$ sudo systemctl restart ydotoold
!

«Permission denied» или «Failed to open /dev/uinput»

Ваш пользователь не состоит в группе input. Добавьте себя в неё и перезайдите в систему:

Терминал
$ sudo usermod -aG input $USER

Не забудьте выйти из системы и войти снова после выполнения этой команды.

!

Приложение не захватывает сочетания клавиш

Композитор рабочего стола (GNOME, KDE, Cosmic) может перехватывать некоторые сочетания, прежде чем они дойдут до приложения. Проверьте системные настройки сочетаний клавиш и отключите конфликтующие — или введите сочетание вручную в текстовое поле MIDI Mapper вместо кнопки захвата.

!

SELinux блокирует ydotool (Fedora)

В Fedora SELinux может блокировать доступ ydotool к /dev/uinput. Проверьте, есть ли запреты:

Терминал
$ sudo ausearch -m avc | grep ydotool

Если запреты есть, создайте локальное исключение в политике SELinux. Это продвинутый шаг — подробности см. в документации Fedora по SELinux.

Всё готово!

Ваша система Linux настроена для сочетаний клавиш и ввода текста в MIDI Mapper.

← Назад к загрузкам