Отключение виртуальной клавиатуры в Linux: полное руководство

Виртуальная (экранная) клавиатура в Linux часто появляется автоматически при подключении к устройству через RDP, использовании планшетного режима или в системах с сенсорными экранами. Для большинства пользователей она становится ненужным элементом, занимающим место на экране и случайно активирующимся при нажатии на панель задач. Особенно это раздражает в серверных окружениях, где физическая клавиатура всегда подключена, или на Ultrabook-ах с ограниченным пространством дисплея.

Проблема усложняется тем, что в разных дистрибутивах и графических оболочках (GNOME, KDE Plasma, XFCE) механизмы управления виртуальной клавиатурой отличаются. Где-то достаточно отключить службу через systemd, а где-то требуется редактировать конфигурационные файлы или даже пересобирать пакеты. В этой статье мы разберём все актуальные способы — от простых кликов в GUI до ручного удаления компонентов для опытных пользователей.

1. Проверка активной виртуальной клавиатуры

Прежде чем отключать клавиатуру, убедитесь, что она действительно запущена как отдельный процесс. В большинстве дистрибутивов за экранную клавиатуру отвечают следующие программы:

  • 🔹 Onboard — стандартная клавиатура для GNOME (Ubuntu, Fedora, Debian)
  • 🔹 Florence — альтернатива для KDE Plasma и XFCE
  • 🔹 Matchbox-keyboard — лёгкая клавиатура для встраиваемых систем
  • 🔹 Caribou — используется в GNOME Shell для планшетного режима

Чтобы проверить, какой процесс отвечает за виртуальную клавиатуру на вашем устройстве, выполните команду:

ps aux | grep -E 'onboard|florence|matchbox|caribou'

Если команда вернула пустой результат, но клавиатура всё равно появляется, возможно, она встроена в составную службу (например, gnome-shell или plasmashell). В этом случае потребуются более глубокие настройки.

📊 Какую графическую оболочку вы используете?
GNOME (Ubuntu, Fedora)
KDE Plasma
XFCE
Другую
Не знаю

2. Отключение через графический интерфейс (GUI)

Самый простой способ — использовать встроенные настройки системы. Рассмотрим процесс для популярных окружений:

2.1. GNOME (Ubuntu, Fedora, Debian)

В GNOME виртуальная клавиатура обычно управляется через Универсальный доступ:

  1. Откройте Настройки → Универсальный доступ.
  2. Перейдите на вкладку Клавиатура.
  3. Отключите опцию Экранная клавиатура (или Onboard).
  4. Если опция отсутствует, проверьте раздел Планшетный режим — там может быть отдельный переключатель для Caribou.

Закройте все приложения, использующие клавиатуру|

Проверьте, не активен ли планшетный режим|

Сохраните открытые документы|

Перезагрузите сессию после изменений-->

Если переключателя нет, возможно, клавиатура запускается автоматически при старте системы. Проверьте автозагрузку:

gnome-session-properties

В открывшемся окне найдите Onboard или Caribou и снимите галочку.

2.2. KDE Plasma

В KDE Plasma экранная клавиатура (Florence или Kvkbd) управляется через:

  1. Настройки системы → Рабочее пространство → Автозапуск.
  2. Найдите Florence или Virtual Keyboard и отключите.
  3. Если клавиатура встроена в панель, кликните по ней правой кнопкой и выберите Удалить этот апплет.

В некоторых версиях KDE клавиатура может активироваться через KWin (композитный менеджер). Чтобы это проверить, выполните:

kwin --replace &

Если клавиатура исчезла — проблема в настройках KWin. Их можно сбросить через:

rm -rf ~/.config/kwinrc

3. Отключение через терминал (systemd)

Если виртуальная клавиатура запускается как служба, её можно отключить через systemd. Сначала проверьте активные сервисы:

systemctl --user list-units | grep -i keyboard

Типичные имена служб:

  • 🔹 onboard.service — для Onboard
  • 🔹 florence.service — для Florence
  • 🔹 caribou.service — для Caribou в GNOME

Чтобы отключить службу и запретить её автозапуск, выполните:

systemctl --user stop onboard.service

systemctl --user disable onboard.service

Если служба системная (не пользовательская), удалите флаг --user. После отключения перезагрузите сессию:

loginctl terminate-user $USER
Что делать, если служба отсутствует в systemd?

Если команда systemctl не находит службу, но клавиатура всё равно запускается, проверьте:

1. Autostart-файлы в ~/.config/autostart/ — удалите файлы с названиями onboard.desktop, florence.desktop.

2. Скрипты в /etc/xdg/autostart/ — требуются права root для редактирования.

3. Настройки дисплейного менеджера (например, lightdm или gdm3) — иногда клавиатура запускается на этапе входа в систему.

4. Удаление пакетов виртуальной клавиатуры

Если вы уверены, что экранная клавиатура вам не нужна, самый радикальный способ — удалить её полностью. Список пакетов для популярных дистрибутивов:

Дистрибутив Пакет Команда удаления
Ubuntu/Debian onboard, caribou sudo apt purge onboard caribou
Fedora/RHEL onboard, florence sudo dnf remove onboard florence
Arch Linux onboard, matchbox-keyboard sudo pacman -Rns onboard matchbox-keyboard
OpenSUSE onboard, caribou sudo zypper remove onboard caribou

После удаления пакетов очистите зависимости:

sudo apt autoremove  # Для Debian/Ubuntu

sudo dnf autoremove # Для Fedora

⚠️ Внимание: Удаление пакетов может повлиять на работу планшетного режима или специальных возможностей. Если вы используете сенсорный экран, предварительно проверьте, не нарушится ли функциональность жестов.

5. Отключение для конкретных приложений

Иногда виртуальная клавиатура появляется только в определенных программах (например, в LibreOffice, GIMP или Wine). Это связано с настройками IM (Input Method) — системы ввода текста. Чтобы отключить её для конкретного приложения:

  1. Установите утилиту im-config:
    sudo apt install im-config  # Debian/Ubuntu
  2. Запустите настройку:
    im-config
  3. Выберите None или Default вместо IBus/Fcitx.
  4. Перезапустите приложение.

Для Wine может потребоваться дополнительная настройка. Создайте или отредактируйте файл ~/.config/wine/user.reg и добавьте:

[Software\\Wine\\X11 Driver]

"UseTakeFocus"="N"

Это предотвратит автоматическое появление виртуальной клавиатуры при активации полей ввода в Windows-приложениях.

6. Отключение в консольном режиме (без GUI)

Если вы работаете на сервере или в системе без графического интерфейса, но виртуальная клавиатура всё равно запускается (например, через framebuffer или DRM), проверьте следующие моменты:

  • 🔹 Служба getty — иногда в /etc/systemd/logind.conf включена опция NAutoVTs=6, которая может запускать ненужные терминалы. Замените её на NAutoVTs=1.
  • 🔹 Пакет fbset — если установлен, удалите его:
    sudo apt purge fbset
  • 🔹 Конфигурация ядра — проверьте параметры загрузки в /etc/default/grub. Убедитесь, что отсутствуют флаги vt.handoff=7 или fbcon=map:10.

Для полного отключения виртуальных терминалов (если они не нужны) добавьте в /etc/default/grub:

GRUB_CMDLINE_LINUX_DEFAULT="console=tty1"

Затем обновите конфигурацию GRUB:

sudo update-grub
⚠️ Внимание: Отключение виртуальных терминалов (tty2tty6) может усложнить восстановление системы при сбоях. Оставьте хотя бы один резервный терминал (tty2).

7. Решение проблем после отключения

После деактивации виртуальной клавиатуры могут возникнуть побочные эффекты. Рассмотрим типичные случаи и способы их устранения:

Проблема Причина Решение
Не работают горячие клавиши Конфликт с ibus или fcitx Переустановите пакет gnome-settings-daemon или сбросьте настройки через dconf reset -f /org/gnome/desktop/input-sources/
Исчезла панель задач Удалены зависимости GNOME или KDE Восстановите пакеты через sudo apt install --reinstall gnome-shell или plasmashell
Не работает сенсорный экран Удален пакет libinput или xserver-xorg-input-libinput Переустановите драйверы: sudo apt install xserver-xorg-input-libinput
Клавиатура появляется после обновления Пакет был установлен как зависимость Запретите автоматическую установку: sudo apt-mark hold onboard

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

dconf reset -f /  # Для GNOME

kbuildsycoca5 --noincremental # Для KDE

FAQ: Частые вопросы

Можно ли отключить виртуальную клавиатуру только для одного пользователя?

Да. Если клавиатура запускается через systemd --user, отключите службу только для своей сессии:

systemctl --user disable onboard.service

Для автозагрузки удалите файлы из ~/.config/autostart/ — они действуют только на текущего пользователя.

Почему клавиатура появляется при подключении по SSH?

Это связано с перенаправлением графического интерфейса (X11 Forwarding). Отключите его на стороне сервера в файле /etc/ssh/sshd_config:

X11Forwarding no

Затем перезапустите sshd:

sudo systemctl restart sshd

Как вернуть клавиатуру, если она понадобилась снова?

Установите пакет заново:

sudo apt install onboard

И включите службу:

systemctl --user enable --now onboard.service

Для GNOME может потребоваться перезагрузка или перелогиниться в системе.

Виртуальная клавиатура мешает в играх под Wine. Как отключить?

Добавьте в конфигурацию Wine (winecfg) параметр:

[Software\\Wine\\X11 Driver]

"UseTakeFocus"="N"

"Desktop"="800x600"

Также отключите IBus для конкретной игры через im-config.

Клавиатура появляется только в браузере. Почему?

Это особенность некоторых веб-приложений (например, Google Docs или Notion), которые пытаются определить тип устройства. Отключите её через настройки браузера:

  1. В Firefox: введите в адресной строке about:config, найдите widget.non-native-theme.enabled и установите false.
  2. В Chrome: запустите с флагом --disable-features=VirtualKeyboardAPI.