Linux
Голосовой ввод в Linux: X11, Wayland и рабочий процесс
Почему голосовой ввод в Linux устроен сложнее, чем кажется: чем отличаются X11 и Wayland для диктовки, как работает автовставка текста и как выстроить удобный desktop-процесс.
С распознаванием речи в Linux выходит забавный парадокс. Сам движок распознавания давно не проблема, локальные решения работают отлично. А вот «просто продиктовать текст в любое окно» оказывается неожиданно муторной задачей. И дело не в качестве распознавания, а в том, как вообще устроен рабочий стол Linux.
Разберёмся, почему так, чем для диктовки отличаются X11 и Wayland и как выстроить процесс, который реально экономит время.
Почему голосовой ввод в Linux это отдельная история
В Windows и macOS вставить текст в активное приложение можно через единый системный API, вопрос давно закрыт. В Linux рабочий стол фрагментирован. Тут две оконные системы (старый X11 и новый Wayland), несколько окружений (GNOME, KDE, Sway, Hyprland и другие), и каждое решает «эмуляцию ввода» по-своему.
Для голосового ввода это значит, что задача распадается на две независимые части.
Первая часть, распознать речь, превратить голос в текст. Она локальна и от оконной системы не зависит. Вторая, доставить готовый текст в нужное окно, вставить его туда, где стоит курсор. Вот тут и начинаются различия между X11 и Wayland.
Первая часть в Speech Dock полностью офлайн, голос не покидает устройство. А вот вторая зависит от вашего окружения, и её стоит понимать.
X11 и Wayland: в чём разница для диктовки

X11 это старая, но всё ещё распространённая оконная система. Устроена она либерально: одно приложение спокойно «нажимает клавиши» за пользователя и видит, какое окно сейчас активно. Для голосового ввода это подарок. Автовставка текста и определение активного окна работают без всяких дополнительных настроек.
Wayland это современная замена X11, спроектированная с упором на безопасность и изоляцию приложений. Ровно эти принципы и усложняют автовставку. По умолчанию приложение не может просто так эмулировать клавиатуру в чужом окне или подсмотреть, какое окно активно. Это не баг, а сознательное архитектурное решение: окно не должно знать, что творится у соседа.
Поэтому на Wayland часть удобных мелочей придётся настроить руками, об этом ниже. Зато взамен вы получаете куда более строгую модель безопасности всего рабочего стола.
Автовставка текста: как это работает
Автовставка это когда распознанный текст сразу появляется там, где стоит курсор, без ручного Ctrl+V. Как именно это сделано, зависит от оконной системы.
На X11 всё работает сразу после установки. Надиктовали, текст возник в активном поле, конец истории.
На Wayland понадобится системный сервис ydotool с запущенным демоном ydotoold. Он даёт приложению канал для эмуляции ввода через /dev/uinput. Настройка разовая, один раз и забыли:
# включить и запустить демон автовставки
systemctl --user enable --now ydotoold
Вдобавок у пользователя должен быть доступ к /dev/uinput. Обычно его дают добавлением в группу input.
А если демон не настроен? Ничего страшного не происходит. Распознанный текст автоматически уходит в буфер обмена, и вы вставляете его вручную привычным сочетанием клавиш. Диктовка работает в любом случае, автоматизируется только самый последний шаг.
Есть и ещё один нюанс Wayland: в нём нет открытого способа узнать, какое окно сейчас активно. Так что перед диктовкой достаточно один раз убедиться, что нужное приложение в фокусе, и дальше текст пойдёт именно туда.
Экранная индикация записи
Когда диктуешь, полезно видеть, что запись правда идёт. Speech Dock показывает компактную плашку-индикатор. Её поведение, как вы уже догадались, тоже зависит от окружения.
В Sway, Hyprland и свежих версиях KDE Plasma это полноценная плавающая индикация поверх окон. А вот GNOME не реализует нужный оконный протокол, поэтому там плашка упрощается. На саму диктовку и вставку текста это никак не влияет, страдает только красота.
Хороший пример того, как одна и та же функция ведёт себя на разных рабочих столах Linux совершенно по-разному. И заодно объяснение, почему готовое приложение, которое все эти различия уже разрулило, экономит вам кучу времени.
Практический рабочий процесс
Вот как выглядит удобная диктовка в повседневной работе:
- Назначаете глобальную горячую клавишу, которая запускает и останавливает запись из любого приложения. Переключаться в отдельное окно не нужно.
- Ставите курсор туда, куда хотите вставить текст. На Wayland заодно убеждаетесь, что нужное окно в фокусе.
- Диктуете. Говорите естественно, приложение распознаёт речь локально и само оформляет текст.
- Текст оказывается на месте. На X11 и на настроенном Wayland он вставляется сам, иначе уже ждёт вас в буфере обмена.
Этот процесс одинаково хорош и для быстрого сообщения в мессенджере, и для длинной заметки или черновика письма. Разница только в том, сколько вы наговорили.
Что проверить перед стартом
- Стоит ли актуальная сборка для вашей системы. Пошаговая инструкция по установке на Linux покрывает .deb, AppImage и популярные дистрибутивы.
- Какая у вас оконная система, X11 или Wayland. Это влияет только на автовставку, не на распознавание.
- Если хотите автоматическую вставку на Wayland: настроен ли
ydotooldи есть ли доступ к/dev/uinput. - Назначена ли удобная горячая клавиша для старта и остановки записи.
Коротко
Вся хитрость голосового ввода в Linux в том, что речь распознаётся одинаково везде, а вот текст до нужного окна доходит по-разному. На X11 он вставляется сам, без единой настройки. На Wayland разок придётся подружить систему с ydotool, а если поленитесь, текст всё равно не пропадёт, он будет ждать в буфере обмена.
Так что страшилки про «голосовой ввод на Linux не работает» можно смело пропускать. Работает. Просто стоит один раз понять, на какой оконной системе вы сидите, и подкрутить под неё пару мелочей. Дальше уже диктуете и не думаете.