Навигация геймпадом
D-pad и стик ходят по клавишам и рядам над клавиатурой, A выбирает, B закрывает, X — backspace, Y — пробел, LT/RT — Shift и Enter, LB/RB — символы и раскладка.
Форк KDE plasma-keyboard · 6.7.90 · KDE Plasma 6 / Wayland
Plasma Keyboard (custom) — форк KDE plasma-keyboard для handheld-консолей: навигация геймпадом, плавающий режим, десять тем, подсказки слов, ряд буфера обмена и свои раскладки в стиле ПК. Ставится рядом с официальным пакетом и не заменяет его.
Всё, что добавлено к upstream, и всё это работает на сенсорном экране, мышью и геймпадом.
D-pad и стик ходят по клавишам и рядам над клавиатурой, A выбирает, B закрывает, X — backspace, Y — пробел, LT/RT — Shift и Enter, LB/RB — символы и раскладка.
Долгое нажатие A открывает альтернативные символы подсвеченной клавиши — те же, что по долгому тапу (е → ё, 1 → !). Список появляется над клавишей и следует выбранной теме; задержка настраивается.
Клавиша со стрелками переключает клавиатуру между нижней панелью и плавающим окном: его можно тащить за фон, ширина 20–100 %, прозрачность 20–100 %, позиция запоминается.
system, светлая и тёмная, iOS, Material 3, Google (Gboard) в двух вариантах и Catppuccin Mocha. Свои темы — обычный JSON: палитра, геометрия, фон и цвета клавиш по категориям.
Продолжение слова, исправление опечатки в один символ и предсказание следующего слова по биграммам. До пяти подсказок, порог появления — от 1 до 4 букв.
Последние записи менеджера буфера обмена рабочего стола (klipper) над клавиатурой: три чипа, нажатие вставляет текст в сфокусированное поле, кнопка у края забывает историю.
Необязательный ряд функциональных клавиш размером и стилем как обычные клавиши; панель растёт соответственно, а геймпад достаёт и до него.
Ctrl, Alt и Shift защёлкиваются до следующей клавиши и затем сбрасываются; повторное нажатие снимает защёлку. Одинаково для касания, навигации и геймпада.
Esc и клавиша скрытия, Ctrl/Alt, цифровой ряд, физический перевёрнутый T-блок стрелок, Del/Shift/&123 размером как Tab, без правого Shift; диакритики по долгому нажатию сохранены.
Вместо всплытия при фокусе клавиатура может ждать долгого нажатия на сенсорном экране (100–5000 мс). Экран читается напрямую через evdev, глобальное сочетание клавиш показывает её сразу.
Plasma Keyboard (custom) в Параметрах системы: Раскладки, Открытие, Внешний вид и Ввод — высота, шрифт, темы, подсказки, звук, вибрация, сочетание клавиш и тестовое поле.
Исправлена звуковая обратная связь (в upstream опция не компилировалась вовсе), есть вибрация, а после обновления пакета клавиатура перезапускается сама — выходить из сеанса не нужно.
Снято на MSI Claw A8 (1920×1200, KDE Plasma 6, Wayland). Нажмите на кадр, чтобы увеличить.
Тема — это данные, а не код: файл JSON только с цветами и геометрией. Импорт чужого файла ничего не исполняет. Тема применяется к работающей клавиатуре сразу, без перезапуска.
| Id | Название | Что это |
|---|---|---|
system | Системная | По умолчанию: ничего не переопределяет и следует цветовой схеме Plasma. |
light | Светлая | Системная палитра с более светлыми клавишами. |
dark | Тёмная | Системная палитра с более тёмными клавишами. |
ios-light | iOS (светлая) | Белые клавиши на сером фоне, плоская, подписи заглавными, скругления 6 px. |
ios-dark | iOS (тёмная) | Тёмный вариант iOS. |
material-light | Material (светлая) | Material 3 «Default»: белые клавиши, сине-серые акценты, скругления 12 px, без контура. |
material-dark | Material (тёмная) | Тёмный вариант Material 3. |
catppuccin-mocha | Catppuccin Mocha | Почти чёрная панель, клавиши цвета mantle, спецклавиши surface0 и голубая клавиша действия; плоские клавиши, узкие зазоры. |
google-light | Google Light | Gboard в светлых цветах: белые клавиши на светло-серой панели, акцент Google Blue, плоские круглые клавиши. |
google-dark | Google Dark | Gboard в тёмных цветах: серо-синие клавиши, тёмные спецклавиши и бирюзовая клавиша действия. |
Файл темы кладётся в ~/.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 | Закрыть список альтернативных символов или клавиатуру. |
| X | Backspace; удержание продолжает удалять, как клавиша на аппаратной клавиатуре. |
| Y | Пробел. |
| LT / RT | Shift и 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
Каждый релиз публикуется в небольшой репозиторий в ветке gh-pages. Добавьте его один раз — дальше обновление одной командой.
[plasma-keyboard-custom]
SigLevel = Optional TrustAll
Server = https://mops1k.github.io/plasma-keyboard-custom/repo/$arch
sudo pacman -Sy plasma-keyboard-custom
Готовый пакет собран против 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
В релизе есть 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
Ставится в песочницу пользователя, поэтому 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 растут с каждым релизом, а клавиатура перезапускается сама.
uaccess.KWIN_IM_SHOW_ALWAYS=1 заставляет её всплывать всегда.