Форк KDE plasma-keyboard · 6.7.90 · KDE Plasma 6 / Wayland

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

Plasma Keyboard (custom) — форк KDE plasma-keyboard для handheld-консолей: навигация геймпадом, плавающий режим, десять тем, подсказки слов, ряд буфера обмена и свои раскладки в стиле ПК. Ставится рядом с официальным пакетом и не заменяет его.

10
встроенных тем
2,2 млн
словоформ для подсказок
Meta+Shift+K
показ клавиатуры по умолчанию
Английская раскладка с глифами кнопок геймпада на клавишах
Глифы кнопок геймпада нарисованы прямо на назначенных клавишах

Что здесь есть

Всё, что добавлено к upstream, и всё это работает на сенсорном экране, мышью и геймпадом.

Навигация геймпадом

D-pad и стик ходят по клавишам и рядам над клавиатурой, A выбирает, B закрывает, X — backspace, Y — пробел, LT/RT — Shift и Enter, LB/RB — символы и раскладка.

Удержание A — доп. символы

Долгое нажатие A открывает альтернативные символы подсвеченной клавиши — те же, что по долгому тапу (е → ё, 1 → !). Список появляется над клавишей и следует выбранной теме; задержка настраивается.

Плавающая клавиатура

Клавиша со стрелками переключает клавиатуру между нижней панелью и плавающим окном: его можно тащить за фон, ширина 20–100 %, прозрачность 20–100 %, позиция запоминается.

Десять встроенных тем

system, светлая и тёмная, iOS, Material 3, Google (Gboard) в двух вариантах и Catppuccin Mocha. Свои темы — обычный JSON: палитра, геометрия, фон и цвета клавиш по категориям.

Подсказки слов

Продолжение слова, исправление опечатки в один символ и предсказание следующего слова по биграммам. До пяти подсказок, порог появления — от 1 до 4 букв.

Ряд буфера обмена

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

Ряд F1–F12

Необязательный ряд функциональных клавиш размером и стилем как обычные клавиши; панель растёт соответственно, а геймпад достаёт и до него.

Защёлкивание модификаторов

Ctrl, Alt и Shift защёлкиваются до следующей клавиши и затем сбрасываются; повторное нажатие снимает защёлку. Одинаково для касания, навигации и геймпада.

Раскладки в стиле ПК

Esc и клавиша скрытия, Ctrl/Alt, цифровой ряд, физический перевёрнутый T-блок стрелок, Del/Shift/&123 размером как Tab, без правого Shift; диакритики по долгому нажатию сохранены.

Открытие по долгому нажатию

Вместо всплытия при фокусе клавиатура может ждать долгого нажатия на сенсорном экране (100–5000 мс). Экран читается напрямую через evdev, глобальное сочетание клавиш показывает её сразу.

Страница настроек

Plasma Keyboard (custom) в Параметрах системы: Раскладки, Открытие, Внешний вид и Ввод — высота, шрифт, темы, подсказки, звук, вибрация, сочетание клавиш и тестовое поле.

Звук, вибрация, автообновление

Исправлена звуковая обратная связь (в upstream опция не компилировалась вовсе), есть вибрация, а после обновления пакета клавиатура перезапускается сама — выходить из сеанса не нужно.

Темы

Тема — это данные, а не код: файл JSON только с цветами и геометрией. Импорт чужого файла ничего не исполняет. Тема применяется к работающей клавиатуре сразу, без перезапуска.

Id Название Что это
systemСистемнаяПо умолчанию: ничего не переопределяет и следует цветовой схеме Plasma.
lightСветлаяСистемная палитра с более светлыми клавишами.
darkТёмнаяСистемная палитра с более тёмными клавишами.
ios-lightiOS (светлая)Белые клавиши на сером фоне, плоская, подписи заглавными, скругления 6 px.
ios-darkiOS (тёмная)Тёмный вариант iOS.
material-lightMaterial (светлая)Material 3 «Default»: белые клавиши, сине-серые акценты, скругления 12 px, без контура.
material-darkMaterial (тёмная)Тёмный вариант Material 3.
catppuccin-mochaCatppuccin MochaПочти чёрная панель, клавиши цвета mantle, спецклавиши surface0 и голубая клавиша действия; плоские клавиши, узкие зазоры.
google-lightGoogle LightGboard в светлых цветах: белые клавиши на светло-серой панели, акцент Google Blue, плоские круглые клавиши.
google-darkGoogle DarkGboard в тёмных цветах: серо-синие клавиши, тёмные спецклавиши и бирюзовая клавиша действия.

Свои темы

Файл темы кладётся в ~/.local/share/plasma-keyboard/themes/*.json, а имя файла становится её id. Строка «Файлы тем» на вкладке «Внешний вид» импортирует, экспортирует и удаляет их, показывая ошибки прямо под строкой.

{
  "name": "Midnight Ocean",
  "base": "dark",
  "palette": { "keyboardBackgroundColor": "#0b1020" },
  "geometry": { "buttonRadius": 10 },
  "background": { "type": "gradient", "start": "#101a33", "end": "#05070f", "angle": 180 },
  "keyStyle": { "outlineWidth": 1, "labelCase": "normal" },
  "keyColors": { "accent": { "normal": "#4c8dff" } }
}

Управление геймпадом

Пока клавиатура видна, геймпад перехватывается через InputPlumber (InterceptMode = GAMEPAD_ONLY), чтобы ввод не просачивался в игру или маппинг Steam. Прежний режим возвращается при скрытии клавиатуры.

D-pad / стикДвижение по клавишам; вверх с верхнего ряда уводит в ряд F1–F12, оттуда — в ряд буфера обмена.
AАктивировать подсвеченный элемент; удержание открывает альтернативные символы клавиши.
BЗакрыть список альтернативных символов или клавиатуру.
XBackspace; удержание продолжает удалять, как клавиша на аппаратной клавиатуре.
YПробел.
LT / RTShift и Enter.
LB / RBСимволы и переключение раскладки.
SelectПерепрыгнуть в ряды над клавиатурой.

Подсказки слов

Собственный движок предсказаний — штатный плагин hunspell Qt Virtual Keyboard намеренно остаётся отключённым. Чипы появляются с первой буквы, часть, которая допишется к слову, подчёркнута.

Продолжение слова

Около 1,18 млн русских и 1,03 млн английских словоформ из частотных словарей FrequencyWords (MIT). Самые частые — первыми.

Исправление опечатки

Если набранное не начало ни одного слова, предлагаются слова в одной опечатке: замена, перестановка, лишняя или пропущенная буква.

Следующее слово

Сразу после пробела предлагаются слова, которые могут идти за предыдущим — биграммы, посчитанные по корпусу предложений Tatoeba (CC BY 2.0 FR).

Нажатие на чип (или A на геймпаде) применяет подсказку и добавляет пробел. Словари hunspell, установленные в системе, используются как дополнение: слова языка без встроенного списка берутся из них, и там же спрашивается исправление опечатки, если свои словари ничего не нашли. Без библиотеки или словарей всё работает как прежде.

Страница настроек

Параметры системы → Plasma Keyboard (custom). Четыре вкладки, всё на русском, страница переведена доменом kcm_plasmakeyboardcustom.

  • Раскладки

    Включённые языки списком: флаг, название, код, звёздочка «открывать по умолчанию», удаление и перетаскивание порядка — именно он задаёт кольцо переключения.

  • Открытие

    Долгое нажатие и его порог, открытие при фокусе мыши, скрытие панели Plasma, пока клавиатура видна.

  • Внешний вид

    Высота клавиатуры (20–80 %), шрифт клавиатуры, тема и файлы тем, ряд F1–F12, ряд буфера обмена, ширина и прозрачность плавающей клавиатуры.

  • Ввод

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

Страница настроек, вкладка «Раскладки»
Вкладка «Раскладки»: список языков, сочетание клавиш и тестовое поле

Установка

Клавиатура ставится рядом с официальным пакетом plasma-keyboard и не заменяет его: всё переименовано, поэтому обе видны в Параметрах системы → Виртуальная клавиатура.

Скриптом — самый быстрый способ

Скачивает новейший релиз, сверяет с опубликованным SHA256SUMS, ставит через pacman и перезапускает клавиатуру. Нужны только curl и pacman.

curl -fsSL https://raw.githubusercontent.com/mops1k/plasma-keyboard-custom/master/install.sh | sh

Опции передаются через sh -s --: --tag, --overwrite, --no-restart, --dry-run, --help.

Вручную из релиза

Скачайте новейший пакет со страницы Releases, при желании сверьте контрольные суммы и установите.

curl -fsSLo /tmp/pkb.pkg.tar.zst \
  "$(curl -fsSL https://api.github.com/repos/mops1k/plasma-keyboard-custom/releases/latest \
     | grep -o 'https://[^"]*plasma-keyboard-custom-[0-9][^"]*\.pkg\.tar\.zst' | head -n1)"
sudo pacman -U /tmp/pkb.pkg.tar.zst

Из pacman-репозитория

Каждый релиз публикуется в небольшой репозиторий в ветке gh-pages. Добавьте его один раз — дальше обновление одной командой.

[plasma-keyboard-custom]
SigLevel = Optional TrustAll
Server = https://mops1k.github.io/plasma-keyboard-custom/repo/$arch
sudo pacman -Sy plasma-keyboard-custom

SteamOS

Готовый пакет собран против Qt 6.9 и требует SteamOS 3.8 или новее; 3.7 и старше несут Qt 6.7/6.8 — там собирайте из исходников. Система смонтирована только для чтения, поэтому скрипт сам снимает и возвращает steamos-readonly, а в репозиториях SteamOS нет libstdc++:

sudo pacman -S --assume-installed libstdc++ plasma-keyboard-custom

Fedora, Bazzite и другие дистрибутивы

В релизе есть RPM для систем на базе Fedora (Fedora KDE, Bazzite, Nobara) и Flatpak-бандл, который несёт собственный стек Qt и KDE. RPM собирается под ветку Qt: fc43 для Fedora 43, fc44 для Fedora 44/45, потому что клавиатура использует приватные API Qt. На atomic-системах пакет ставится через rpm-ostree с последующей перезагрузкой.

sudo dnf install ./plasma-keyboard-custom-<version>-1.fc43.x86_64.rpm
sudo rpm-ostree install ./plasma-keyboard-custom-<version>-1.fc43.x86_64.rpm

Flatpak — для любого дистрибутива

Ставится в песочницу пользователя, поэтому KCM не попадает в системные настройки, а KWin нужно указать на desktop-файл Flatpak (настройки самой клавиатуры остаются доступны из клавиатуры):

flatpak install --user ./plasma-keyboard-custom-<version>.flatpak
kwriteconfig6 --notify --file kwinrc --group Wayland --key InputMethod \
  "$HOME/.local/share/flatpak/exports/share/applications/org.kde.plasma.keyboard.custom.desktop"

После установки выберите plasma-keyboard-custom в Параметры системы → Виртуальная клавиатура. Обновления ставятся той же командой: версия и pkgrel растут с каждым релизом, а клавиатура перезапускается сама.

Хорошо знать