KBoard slides up from the bottom of your screen when you tap a text field, and types wherever you are.
Glide across the letters, talk instead of typing, send a GIF, or type the whole thing with a game controller.
Get started ยท See it work ยท Settings ยท Command line ยท Privacy ยท Questions ยท More projects
git clone --recursive https://github.com/DevL0rd/KBoard.git
cd KBoard
./install.shThat's it. The installer installs what KBoard needs with your package manager, builds KBoard into your home folder, tells KWin to use it as the on-screen keyboard (remembering the one you had), downloads the voice typing model and restarts your panel. Tap any text field and the keyboard comes up. It only asks for your password to install packages and to hook KBoard into system updates.
Tip
Add KBoard to your panel from Add Widgets to show and hide the keyboard by hand, and open KBoard Settings from your app launcher to make it yours.
| ๐ Update | KBoard updates itself with every system update, rebuilds when Qt or the voice typing libraries update, and tells you when it's done. You can also run ./install.sh again any time. It's safe to repeat, keeps your settings, learned words and voice models, and won't switch your on-screen keyboard back if you changed it. |
| ๐ฆ From a package | Package builds run ./install.sh --aur (or set KBOARD_AUR=true), so your package manager handles dependencies and updates instead and no update hook is registered. |
| ๐งน Remove | Run ./uninstall.sh. It gives the on-screen keyboard back to whatever KWin used before, removes the keyboard, the settings app and the update hook, and keeps your settings, learned words, clipboard pins and downloaded models. |
| ๐ฅ๏ธ Needs | KDE Plasma 6 on Wayland, Qt 6.11 or newer (Quick, Wayland client, Multimedia), KDE Frameworks 6, CMake with Ninja, sdl3 for controllers, hunspell plus a dictionary for your language, and about 340 MB for the voice model. Voice typing uses your distro's whisper.cpp when it has Parakeet support (Arch, Debian); everywhere else KBoard builds whisper.cpp in, running on the CPU (needs AVX2). A graphics card is optional with your distro's whisper.cpp: install ggml-cuda, ggml-vulkan or ggml-hip and voice typing uses it. The installer installs everything it can, then checks and lists whatever is still missing. |
| ๐ง Distros | Arch and CachyOS, Fedora 44, openSUSE Tumbleweed, Debian unstable (Debian testing once it gets Qt 6.11), Fedora Atomic desktops like Kinoite, Aurora and Bazzite, and SteamOS 3.9 in Desktop Mode. On Fedora Atomic and SteamOS, KBoard is built in a toolbox matched to your system and rebuilt at login after system updates. |
| Keys, panel and accent come from your colour scheme and follow it live. Four key styles, blur behind the panel, and your own corner radius, gaps and label size. | Soft, Mechanical, Typewriter, Bubble and Glass packs, with a little random variation so it never sounds like a machine gun. Vibration too, where the hardware has it. | An email field gets an @ key, a web address gets /, number and phone fields get a keypad, and password fields get no suggestions and no learning. |
| Turn it on for Esc, Tab, Ctrl, Alt, Super, arrows, Home, End, Page Up and Page Down, with Fn for F1โF12 and Delete. | QWERTY, QWERTZ, AZERTY, Spanish, UK, Dvorak and Colemak, plus symbols, more symbols, number pad and phone pad pages. The globe key and a swipe on the space bar switch between the ones you use. | Select, select all, copy, cut, paste, undo, redo, Home and End, in a panel inside the keyboard, so you don't have to aim at tiny handles. |
| Keys dip and spring back, a bubble pops above the one you hit, a ripple starts where your finger landed, and holding backspace deletes faster the longer you hold. | Swipe down on the keyboard to hide it, or use the hide key. KWin moves the window above the keyboard while it's up and puts it back when it goes. | The installer remembers the keyboard KWin used before, and uninstalling gives it straight back. |
| Command | What it does |
|---|---|
qdbus6 org.devl0rd.KBoard /KBoard org.devl0rd.KBoard.Toggle |
Show the keyboard, or hide it if it's up |
qdbus6 org.devl0rd.KBoard /KBoard org.devl0rd.KBoard.Show |
Bring the keyboard up |
qdbus6 org.devl0rd.KBoard /KBoard org.devl0rd.KBoard.Hide |
Put it away |
qdbus6 org.devl0rd.KBoard /KBoard org.devl0rd.KBoard.OpenPanel emoji |
Open a panel: keys, emoji, gif, clipboard, voice or edit |
qdbus6 org.devl0rd.KBoard /KBoard org.devl0rd.KBoard.IsVisible |
Print whether it's showing |
qdbus6 org.devl0rd.KBoard /KBoard org.devl0rd.KBoard.CurrentPanel |
Print the panel that's open |
qdbus6 org.devl0rd.KBoard /KBoard org.devl0rd.KBoard.OpenSettings voice |
Open the settings app on a page |
kboard-settings --page sound |
Same thing, from a launcher or a script |
kboard-settings --page voice --reveal "Speech model" |
Open a page and highlight one row |
kboard-voice-model --list |
List the voice models and which ones you have |
kboard-voice-model whisper-large-v3-turbo-q5_0 |
Download another model |
kboard-input-method enable |
Make KBoard KWin's on-screen keyboard again |
kboard-input-method restore |
Give the on-screen keyboard back to the one you had before |
VisibleChanged and PanelChanged are emitted on the same interface, so scripts and widgets can follow along.
Settings live in ~/.config/kboardrc. Learned words, clipboard pins, emoji recents and voice models are in ~/.local/share/kboard, and GIFs are cached in ~/.cache/kboard/gif. Logs: journalctl --user -u plasma-kwin_wayland.service -f.
- What you type stays here. Suggestions, autocorrect and prediction run on your machine from word lists that ship with KBoard, plus the words it learns from you in
~/.local/share/kboard. - Nothing is learned in password fields. When an app marks a field as a password or as sensitive, KBoard turns off suggestions, autocorrect and learning for it, and the clipboard refuses to store what you copy there. Anything a password manager marks as a secret is skipped too.
- Voice typing is offline. The model runs on your own CPU or graphics card. Audio is turned into text as you speak and thrown away right after; nothing is uploaded, and no account or key is needed.
- The clipboard forgets. History is kept in memory by default and cleared an hour after you copy something, up to 50 items. Pinned items stay until you remove them. Turn it off, pause it, or clear it from Privacy.
- GIF search goes out. Only the GIF panel talks to the internet. Searches and a random id that KBoard generates for itself go to KLIPY, which serves the GIFs. Nothing about your typing goes with it, and turning off GIF search stops it entirely.
- Clear it whenever. Privacy lists every word KBoard learned, removes them one at a time or all at once, clears the clipboard history and opens the folder your voice models live in.
Does it work in X11 apps?
Wayland apps tell KWin when a text field has focus, so the keyboard comes up on its own. Older X11 apps running through XWayland don't, so open the keyboard yourself with the controller chord or D-Bus, and it types into the app through KWin. Suggestions that read the text around your cursor have nothing to read in those apps.
What happens to plasma-keyboard?
Nothing. KWin starts one on-screen keyboard, and the installer remembers the one you had before switching it to KBoard.
./uninstall.sh, or kboard-input-method restore, hands it straight back.
Why not just improve plasma-keyboard?
KBoard keeps plasma-keyboard's Wayland plumbing and builds a different keyboard on top: suggestions, autocorrect, glide typing, emoji, GIFs, clipboard history, offline voice typing, controller input, sounds and a settings app with live previews. That's a different project, not a patch.
Does voice typing need a graphics card?
No. The model that comes with KBoard is quick enough on a plain CPU. On Arch and Debian, if you install
ggml-cuda, ggml-vulkan or ggml-hip, it uses your NVIDIA, AMD or Intel card instead, and Voice Typing โ Processing device shows what it picked and lets you choose. The model is unloaded after five idle minutes to give the memory back.
Which languages can it understand?
Parakeet v3, the model installed by default, covers 25 European languages. For anything else, pick a Whisper model under Speech model โ Large v3 Turbo covers 99 languages โ or download it up front with
kboard-voice-model.
I use Steam. Will my controller type twice?
No. Steam Input adds a virtual pad next to your real one, and KBoard pairs the two so a button press counts once. Plug a controller in while the keyboard is open and it's picked up straight away.
Do I need an API key for GIFs?
Not as a user. GIFs come from KLIPY and the key is compiled into KBoard. If the panel says GIFs are not set up, the build had no key: get a free one from KLIPY's partner panel and run
KBOARD_KLIPY_API_KEY=yourkey ./install.sh.
The keyboard doesn't come up when I click a field.
Plasma only opens the on-screen keyboard for touch by default. Set When It Shows โ Open the keyboard automatically to Touch or mouse, which is the same setting as System Settings' virtual keyboard mode.
Other Plasma projects made to sit on the same desktop. Click a banner to open it on GitHub.
Konveyor ยท Your windows, on a conveyor belt.
RVC Voice Changer ยท Sound like anyone, in every app.
Android-Daemon ยท Your phone, right on your desktop.
Syncthing Monitor ยท Your sync, at a glance.
Released under the GPL-3.0-only License. See THIRD_PARTY_NOTICES.md for the projects, models and data it builds on.
Built on plasma-keyboard's Wayland input-method plumbing, with voice typing by whisper.cpp and NVIDIA's Parakeet model, and GIFs by KLIPY.





















