Решение проблем в Linux
В Linux есть два протокола дисплейного сервера — Wayland и X11, — и для эмуляции ввода с клавиатуры каждому нужны свои инструменты. Это руководство поможет вам всё настроить.
Большинство современных дистрибутивов (Fedora 40+, Ubuntu 24.04+, GNOME 46+) по умолчанию используют Wayland. Более старые системы или системы с некоторыми драйверами NVIDIA могут по-прежнему работать на X11.
Как узнать, у меня Wayland или X11?
Проверьте дисплейный сервер
Откройте терминал и выполните команду:
Если вывод пустой, скорее всего, у вас X11. Некоторые менеджеры дисплея не задают эту переменную.
Настройка для Wayland
Для Fedora, Ubuntu, Arch и других современных дистрибутивов
Для Wayland нужен ydotool — эмулятор ввода, не зависящий от дисплейного сервера и работающий напрямую с ядром. Ему требуются фоновый демон и право записи в /dev/uinput.
Fedora / Fedora Atomic
Установите ydotool
Для обычной Fedora:
В атомарных вариантах Fedora (Silverblue, Kinoite, Universal Blue) используйте вместо этого rpm-ostree install ydotool && systemctl reboot.
Включите демон
Запустите ydotoold сейчас и настройте его автозапуск при каждой загрузке:
Добавьте пользователя в группу input
Дайте своему пользователю право использовать виртуальное устройство ввода:
Чтобы изменение группы вступило в силу, нужно выйти из системы и войти снова (или перезагрузиться).
Проверьте, что всё работает
Убедитесь, что ydotool может эмулировать нажатия клавиш:
Ubuntu / Debian
Установите ydotool
Включите демон, добавьте пользователя в группу input и проверьте
Те же шаги, что и для Fedora выше:
Arch Linux
Установите ydotool
Включите демон, добавьте пользователя в группу input и проверьте
Те же шаги, что и для Fedora выше:
Настройка для X11
Для более старых или традиционных дистрибутивовX11 использует xdotool, и с ним проще — демон не нужен, и обычно всё работает сразу после установки.
Установите xdotool
Выберите команду для своего дистрибутива:
Готово
xdotool работает сразу после установки. Ни демон, ни изменение групп не требуются.
Ввод текста в Wayland
Если вы используете действие Ввод текста в Wayland, для ввода символов MIDI Mapper нужен wtype.
wtype нужен только для ввода текста. Для эмуляции сочетаний клавиш используется ydotool.
Частые проблемы
«ydotool: command not found»
ydotool не установлен. Выполните шаги настройки для Wayland выше для своего дистрибутива.
Клавиши срабатывают, но ничего не происходит
Вероятно, демон ydotoold не запущен. Проверьте его состояние и перезапустите:
«Permission denied» или «Failed to open /dev/uinput»
Ваш пользователь не состоит в группе input. Добавьте себя в неё и перезайдите в систему:
Не забудьте выйти из системы и войти снова после выполнения этой команды.
Приложение не захватывает сочетания клавиш
Композитор рабочего стола (GNOME, KDE, Cosmic) может перехватывать некоторые сочетания, прежде чем они дойдут до приложения. Проверьте системные настройки сочетаний клавиш и отключите конфликтующие — или введите сочетание вручную в текстовое поле MIDI Mapper вместо кнопки захвата.
SELinux блокирует ydotool (Fedora)
В Fedora SELinux может блокировать доступ ydotool к /dev/uinput. Проверьте, есть ли запреты:
Если запреты есть, создайте локальное исключение в политике SELinux. Это продвинутый шаг — подробности см. в документации Fedora по SELinux.
Всё готово!
Ваша система Linux настроена для сочетаний клавиш и ввода текста в MIDI Mapper.