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

Экранная клавиатура на Linux — незаменимый инструмент для устройств с сенсорными экранами, планшетов под управлением дистрибутивов, а также для пользователей с ограниченными физическими возможностями. В отличие от Windows или macOS, где виртуальная клавиатура интегрирована в систему по умолчанию, в большинстве Linux-дистрибутивов её приходится устанавливать и настраивать отдельно. Это пугает новичков, но на практике процесс занимает не больше 10 минут при правильном подходе.

Основная сложность заключается в разнообразии дистрибутивов и графических сред (GNOME, KDE Plasma, XFCE и др.), каждая из которых может требовать своих решений. К примеру, в Ubuntu с оболочкой GNOME проще всего использовать Onboard, тогда как для KDE больше подходит Florence. Ещё одна ловушка — отсутствие автозапуска после перезагрузки, что решается редактированием конфигурационных файлов или добавлением в автозагрузку.

В этой статье мы разберём все актуальные способы включения виртуальной клавиатуры, от установки стандартных пакетов до ручной компиляции исходников для редких дистрибутивов. Особое внимание уделим настройке отображения при запуске системы, изменению языка раскладки и решению типичных проблем вроде «не отображаются символы» или «клавиатура пропадает после сна».

1. Стандартные способы включения виртуальной клавиатуры

Большинство современных дистрибутивов предлагают встроенные или быстро устанавливаемые решения для экранной клавиатуры. Их главное преимущество — минимальные требования к системе и совместимость с большинством графических сред. Рассмотрим три основных варианта.

Onboard — самое популярное решение для GNOME-based систем (Ubuntu, Debian, Fedora). Оно поддерживает мультитач, автоподсказки и темы оформления. Установить его можно одной командой:

sudo apt install onboard  # Для Debian/Ubuntu

sudo dnf install onboard # Для Fedora

Florence — альтернатива для KDE Plasma и других сред. Отличается компактным интерфейсом и поддержкой плагинов. Установка:

sudo apt install florence  # Debian/Ubuntu

sudo pacman -S florence # Arch Linux

GOK (GNOME Onscreen Keyboard) — устаревшее, но всё ещё рабочее решение для старых версий GNOME 2. Актуально для легковесных дистрибутивов вроде Lubuntu или Puppy Linux.

  • 🔹 Onboard: оптимален для Ubuntu и производных (Linux Mint, Pop!_OS)
  • 🔹 Florence: лучший выбор для KDE Neon, Kubuntu, OpenSUSE
  • 🔹 Matchbox-keyboard: минималистичная клавиатура для встраиваемых систем (Raspberry Pi)
  • 🔹 Caribou: альтернатива GOK для современных версий GNOME

После установки любого из пакетов клавиатура появится в меню приложений. Чтобы запустить её вручную, используйте команду onboard, florence или matchbox-keyboard в терминале. Для автозапуска потребуется дополнительная настройка (об этом — в разделе 4).

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

2. Установка виртуальной клавиатуры через терминал

Если графический интерфейс недоступен (например, на сервере с подключённым по VNC или на устройстве без физической клавиатуры), установку придётся выполнять через консоль. Процесс почти не отличается от стандартного, но требует знания нескольких команд.

Для начала обновите списки пакетов (актуально для Debian/Ubuntu):

sudo apt update && sudo apt upgrade -y

Затем установите выбранную клавиатуру. Примеры для разных дистрибутивов:

Дистрибутив Команда для Onboard Команда для Florence
Debian/Ubuntu sudo apt install onboard sudo apt install florence
Fedora/RHEL sudo dnf install onboard sudo dnf install florence
Arch Linux sudo pacman -S onboard sudo pacman -S florence
OpenSUSE sudo zypper install onboard sudo zypper install florence

После установки запустите клавиатуру командой (например, для Onboard):

onboard &

Символ & в конце позволяет запустить процесс в фоновом режиме, не блокируя терминал. Если клавиатура не появляется, проверьте зависимости:

sudo apt install --fix-missing  # Для Debian/Ubuntu
⚠️ Внимание: На некоторых дистрибутивах (например, Alpine Linux) может потребоваться ручная сборка из исходников. В этом случае следите за зависимостями в файле README репозитория проекта.

3. Настройка автозапуска виртуальной клавиатуры

По умолчанию экранная клавиатура не запускается автоматически при старте системы. Чтобы исправить это, нужно добавить её в автозагрузку. Способ зависит от графической среды.

Для GNOME (Ubuntu, Fedora):

  1. Откройте Настройки → Приложения при запуске.
  2. Нажмите «Добавить» и укажите команду запуска (например, onboard).
  3. Сохраните изменения и перезагрузите систему.

Для KDE Plasma:

  1. Перейдите в Настройки системы → Автозапуск.
  2. Нажмите «Добавить программу» и выберите Florence из списка.
  3. Установите флажок «Запускать при входе в систему».

Для XFCE (Xubuntu):

  1. Откройте Настройки → Сеанс и запуск.
  2. Во вкладке «Автозапуск приложений» добавьте новую запись с командой onboard.

Альтернативный способ (работает для всех сред) — добавить команду в файл ~/.config/autostart/onboard.desktop:

[Desktop Entry]

Type=Application

Name=Onboard

Exec=onboard

X-GNOME-Autostart-enabled=true

⚠️ Внимание: Если виртуальная клавиатура мешает при работе с физической, настройте условие автозапуска только при подключении сенсорного экрана. Для этого используйте утилиту xinput для detection устройств.

Добавили команду в автозагрузку|Перезагрузили систему|Клавиатура появилась автоматически|Проверена работа с физической клавиатурой-->

4. Изменение языка и раскладки

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

Onboard:

  1. Запустите клавиатуру и откройте её настройки (значок шестерёнки).
  2. Перейдите во вкладку «Раскладки» (Layouts).
  3. Добавьте нужные языки (например, Russian, Ukrainian) и установите их порядок.
  4. Сохраните изменения — новые раскладки появятся в панели переключения.

Florence:

  1. Откройте файл конфигурации: ~/.config/florence/config.
  2. Найдите строку keyboard=us и замените us на нужный код (например, ru для русского).
  3. Перезапустите Florence:
pkill florence && florence &

Список поддерживаемых кодов языков:

Язык Код для Onboard Код для Florence
Русский ru ru
Украинский ua ua
Английский (США) us us
Немецкий de de
Французский fr fr

Если нужного языка нет в списке, его можно добавить вручную, скачав файл раскладки (формат .layout для Onboard) с официального репозитория проекта на GitHub.

5. Решение типичных проблем

Даже после правильной установки виртуальная клавиатура может работать некорректно. Рассмотрим самые распространённые ошибки и способы их устранения.

Проблема 1: Клавиатура не появляется после установки

  • 🔹 Проверьте, запущен ли процесс: ps aux | grep onboard.
  • 🔹 Убедитесь, что нет конфликтов с другими экранными клавиатурами (удалите дубликаты).
  • 🔹 Попробуйте запустить с правами суперпользователя: sudo onboard (только для диагностики!).

Проблема 2: Не работают символы или раскладка

  • 🔹 Переустановите пакеты шрифтов: sudo apt install ttf-ubuntu-font-family.
  • 🔹 Проверьте настройки языка в системе: locale.
  • 🔹 Сбросьте конфигурацию Onboard: rm -rf ~/.config/onboard.

Проблема 3: Клавиатура пропадает после сна/гибернации

  • 🔹 Добавьте в автозагрузку скрипт перезапуска: pkill onboard && onboard &.
  • 🔹 Отключите энергосбережение для USB-устройств в BIOS.
  • 🔹 Обновите драйверы видеокарты (актуально для NVIDIA Optimus).

Проблема 4: Высокая загрузка ЦП

  • 🔹 Отключите анимации в настройках клавиатуры.
  • 🔹 Переключитесь на лёгкую тему оформления (например, Adwaita).
  • 🔹 Попробуйте альтернативную клавиатуру (Matchbox-keyboard потребляет меньше ресурсов).
⚠️ Внимание: Если проблема сохраняется после всех манипуляций, проверьте логи системы на ошибки: journalctl -xe | grep -i keyboard. Часто причиной бывает конфликт с менеджером композитинга (Compiz, Picom).
Как проверить конфликты с композитингом?

Отключите композитинг командой killall compiz (для GNOME) или picom --kill (для других сред). Если клавиатура заработала — проблема в настройках эффектов. Решение: отключите тени или прозрачность в параметрах оконного менеджера.

6. Альтернативные виртуальные клавиатуры для Linux

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

1. Kvkbd (KDE Virtual Keyboard)

Лёгкая клавиатура для KDE, поддерживающая плагины и кастомизацию. Установка:

sudo apt install kvkbd

2. XVkbd

Минималистичная клавиатура для X11, работает даже на слабых машинах. Компиляция из исходников:

git clone https://github.com/tora-sama/xvkbd

cd xvkbd

./configure && make

sudo make install

3. CellWriter

Клавиатура с рукописным вводом — распознаёт символы, написанные стилусом или мышью. Идеально для графических планшетов:

sudo apt install cellwriter

4. Fcitx5 + Chewing

Решение для ввода иероглифов (китайский, японский). Требует настройки Fcitx:

sudo apt install fcitx5 fcitx5-chinese-addons
Клавиатура Преимущества Недостатки
Kvkbd Интеграция с KDE, плагины Только для KDE Plasma
XVkbd Работает без графической среды Устаревший интерфейс
CellWriter Рукописный ввод, поддержка стилуса Требует обучения распознаванию
Fcitx5 Поддержка азиатских языков Сложная настройка

Для устройств с сенсорным экраном лучшим выбором станет Onboard с включённой опцией Touch Mode (настройка в Preferences → Behavior). Это значительно улучшает точность нажатий и добавляет визуальную обратную связь.

7. Виртуальная клавиатура для серверов без GUI

Если вы подключаетесь к Linux-серверу по SSH или VNC без графического интерфейса, стандартные решения вроде Onboard не подойдут. В этом случае используйте:

1. fbkeyboard

Клавиатура для фреймбуфера, работает без X11. Установка:

sudo apt install fbkeyboard

Запуск:

sudo fbkeyboard -device /dev/fb0

2. SVKBD (Simple Virtual Keyboard)

Минималистичная клавиатура для Wayland или X11. Компиляция:

git clone https://github.com/milki/svkbd

cd svkbd

make

sudo make install

3. TTY-клавиатура на базе python

Если даже фреймбуфер недоступен, можно создать текстовую клавиатуру с помощью скрипта:

sudo apt install python3-curses

wget https://raw.githubusercontent.com/valr/curses-ui/master/keyboard.py

python3 keyboard.py

⚠️ Внимание: Для серверов с Wayland (например, Fedora Server) может потребоваться ручная настройка переменных окружения WAYLAND_DISPLAY и XDG_RUNTIME_DIR.

8. Оптимизация виртуальной клавиатуры для специфических задач

В зависимости от сценария использования (планшет, киоск, устройство для людей с ограниченными возможностями) виртуальную клавиатуру можно адаптировать под конкретные нужды.

Для планшетов:

  • 🔹 Увеличьте размер кнопок в настройках Onboard (Preferences → Theme → Button Size).
  • 🔹 Включите режим Dock to Screen Edge для автоматического прикрепления к нижней части экрана.
  • 🔹 Отключите звуки нажатий: Preferences → Sound → Mute.

Для киосков (public terminals):

  • 🔹 Заблокируйте доступ к настройкам клавиатуры через dconf-editor.
  • 🔹 Установите пароль на изменение конфигурации: gsettings set org.onboard.lockdown true.
  • 🔹 Ограничьте набор символов (например, только цифры для терминалов оплаты).

Для людей с ограниченными возможностями:

  • 🔹 Включите режим Scan Mode в Onboard (последовательное подсвечивание кнопок).
  • 🔹 Настройте голосовое сопровождение нажатий через eSpeak:
sudo apt install espeak

gsettings set org.onboard.speech enable true

Для геймеров (эмуляция клавиш):

  • 🔹 Используйте Florence с плагином Gamepad Emulation.
  • 🔹 Настройте макросы для часто используемых комбинаций (например, Ctrl+Alt+Del).

FAQ: Частые вопросы о виртуальной клавиатуре на Linux

Можно ли использовать виртуальную клавиатуру в терминале (TTY) без графического интерфейса?

Да, но выбор ограничен. Подойдёт fbkeyboard (для фреймбуфера) или самописные решения на python с библиотекой curses. Для Wayland потребуется svkbd или аналоги. Главное условие — наличие драйвера для вашего дисплея в консольном режиме.

Как сделать так, чтобы виртуальная клавиатура появлялась только при подключении сенсорного экрана?

Используйте скрипт с проверкой устройств через xinput. Пример:

#!/bin/bash

if xinput list | grep -q "TouchScreen"; then

onboard &

fi

Добавьте этот скрипт в автозагрузку. Замените TouchScreen на имя вашего устройства (узнать его можно командой xinput list).

Почему виртуальная клавиатура не отображает кириллицу, хотя язык системы — русский?

Проблема обычно в отсутствии шрифтов или неправильных настройках локали. Выполните:

  1. sudo apt install fonts-dejavu-core ttf-ubuntu-font-family
  2. sudo locale-gen ru_RU.UTF-8
  3. sudo dpkg-reconfigure locales (выберите ru_RU.UTF-8)

После этого перезапустите клавиатуру. Если проблема осталась, проверьте настройки в ~/.config/onboard/layouts.

Как отключить виртуальную клавиатуру на постоянной основе?

Удалите пакет:

sudo apt purge onboard florence  # Для Debian/Ubuntu

sudo dnf remove onboard florence # Для Fedora

Удалите файлы конфигурации:

rm -rf ~/.config/onboard ~/.config/florence

И удалите запись из автозагрузки (см. раздел 3).

Можно ли использовать виртуальную клавиатуру Linux на Android через Termux?

Да, но с ограничениями. Установите Termux:X11 из F-Droid, затем в Termux выполните:

pkg install onboard

termux-x11 :0 & onboard

Клавиатура отобразится в окне Termux:X11. Для работы потребуется Android 10+ и поддержка VNC-сервера.