Skip to content

Latest commit

ย 

History

49 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

KBoard โ€” The on-screen keyboard for Plasma

CI KDE Plasma 6 Wayland Glide typing, voice typing and controller support GPL-3.0-only Stars

The on-screen keyboard Plasma deserves.

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

Typing on KBoard: suggestions, glide typing, emoji and voice typing


๐Ÿš€ Get started

git clone --recursive https://github.com/DevL0rd/KBoard.git
cd KBoard
./install.sh

That'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.

๐ŸŽฌ See it work

KBoard docked along the bottom of the screen, in the dark and light Plasma colour schemes

โŒจ๏ธ Type, and it keeps up

The keyboard with three suggestions above the keys
Three suggestions sit above the keys. The middle one is the word KBoard would correct to, so a space takes it. Tap another to use it instead, and hold one to make KBoard forget a word it learned.

Autocorrect knows which keys sit next to each other, so tjis becomes this and the fixed word flashes for a moment. Press backspace right after a correction and you get your own word back, kept for next time.

It capitalises sentences, turns a double space into a full stop, tidies the space around punctuation, and finishes short cuts like omw into On my way!. Next-word prediction fills the strip after every space.

๐ŸŒŠ Glide across the letters


Put a finger on the first letter, slide through the rest and lift. A glowing trail follows you, the word lands with a space after it, and the other words it could have been wait in the suggestion strip.

Two more gestures live on the bottom row: slide along the space bar to move the cursor letter by letter, and slide left from backspace to select whole words and delete them when you let go.

Every gesture can be turned off on its own under Glide & Gestures.
A glide trail drawn across the keys

โœ‹ Hold a key for more

The accent pop-up open above the e key
Hold a letter and its accents open above it: e gives you รจ รฉ รช รซ ฤ“ ฤ— ฤ™. Keep sliding to the one you want and let go. A small ring fills on the key while you hold, so you always know it's coming.

The corner of each key shows what a hold gives you: numbers on the top row, symbols below. Hold the full stop for punctuation, the comma for emoji, and the space bar to switch language when you have more than one.

Double-tap Shift for caps lock. Ctrl, Alt and Super on the desktop row work the same way: one tap for the next key, two taps to hold them down.

๐Ÿ˜€ Emoji, right where you type


The emoji panel opens inside the keyboard with the categories along the top, your recents first and favourites one hold away. Search by word and the results come up as you type.

Hold an emoji to pick a skin tone, and KBoard remembers that choice for that emoji. Kaomoji like ยฏ\_(ใƒ„)_/ยฏ have their own tab.

While you type, emoji you might mean show up in the suggestion strip next to the words.
The emoji panel with categories, search and recents

๐ŸŽž๏ธ Send a GIF without leaving the keyboard

The GIF panel with trending GIFs and search
Trending GIFs and stickers, search, and a masonry grid that plays as you scroll. Hold one to keep it in favourites; the ones you send stay in recents.

Tap a GIF and KBoard pastes it straight into the chat you're in. Apps that don't take pasted images can have the link instead: set Insert GIFs as to Link.

A safety filter is on by default, and you can turn the panel off completely.

๐Ÿ“‹ Everything you copied


The clipboard panel keeps what you copy, with images as thumbnails, links with their site, and one-time codes picked out as Verification code so you can paste them with one tap.

Tap to paste, swipe an item away to remove it, hold it to pin it. Pinned items never expire. Everything else clears after an hour by default, and the history lives in memory unless you ask for it to be kept.

Copy something while the keyboard is open and it appears as a chip above the keys for a few seconds, ready to paste.
The clipboard panel with pinned items, an image and a link

๐ŸŽ™๏ธ Talk instead of typing

The voice typing panel with the microphone orb listening
Tap the microphone and talk. The words appear underlined while you speak and land in the field when you stop. The orb moves with your voice, and a pause of about a second ends the sentence.

It runs on your machine. Parakeet v3 is the model that comes with KBoard: 25 European languages, punctuation and capitals included, quick enough on a plain CPU. Whisper models are a download away for the other 99 languages, and a graphics card is used when there is one.

Say โ€œnew lineโ€, โ€œperiodโ€, โ€œcommaโ€, โ€œquestion markโ€ or โ€œdelete thatโ€ and KBoard does it instead of typing the words.

๐ŸŽฎ Type with a controller


Move between keys with the D-pad or the left stick and press with A. B is backspace, X is space, Y is shift, the shoulder buttons move the text cursor, the triggers flip between panels, Start is enter and Back hides the keyboard.

Hold Back + X in any text field to bring the keyboard up without touching the mouse. The buttons in the settings app show the glyphs of the controller you actually have, whether it's an Xbox, PlayStation, Nintendo or Steam Deck pad.

Controllers are picked up when you plug them in, Steam's virtual pad doesn't type everything twice, and a short rumble tells you a key went in.
Controller focus moving across the keys

๐Ÿคฒ Splits for wide screens

The split keyboard with a half under each thumb
On a wide screen the keyboard splits into two halves, one under each thumb, and the gap in the middle stays clickable for the app underneath. The halves slide apart when it happens.

KBoard decides on its own from the shape of your screen, or you can set it to always or never, and choose how wide each half is.

It is always docked along the bottom edge, and it resizes itself when you rotate the screen, change resolution or move to another monitor.

โœจ And the little things

๐ŸŽจ Your Plasma colours

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.

๐Ÿ”Š Sounds worth hearing

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.

๐Ÿง  Fields it understands

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.

๐Ÿ–ฅ๏ธ A desktop row

Turn it on for Esc, Tab, Ctrl, Alt, Super, arrows, Home, End, Page Up and Page Down, with Fn for F1โ€“F12 and Delete.

๐ŸŒ Layouts and languages

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.

โœ๏ธ An editing panel

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 that feel right

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.

๐Ÿ‘‡ Out of the way

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.

๐Ÿฃ It takes over cleanly

The installer remembers the keyboard KWin used before, and uninstalling gives it straight back.

back to top โฌ†


๐ŸŽ›๏ธ Settings that show you


KBoard Settings is its own app. Every page has a live keyboard above it that plays what the setting does: the keys change shape as you drag the corner slider, a finger draws a glide trail, a typo gets corrected, the mic orb listens.

Changes apply to the running keyboard as you make them. Anything you changed gets a dot next to it and a one-click reset, there's an undo, and the whole lot can be exported to a file and imported again.

Search reaches every row: type sound, accent or rumble and the app jumps to the setting and highlights it.
The Look page of KBoard Settings with a live preview
Look page

Look โ€” height, key style, corners, transparency and accent

Layout and languages page

Layout & Languages โ€” layouts, extra rows and splitting

Typing page

Typing โ€” suggestions, autocorrect, capitals and shortcuts

Glide and gestures page

Glide & Gestures โ€” gliding, cursor and word deleting

Press feel page

Press Feel & Long Press โ€” pop-ups, ripples, hold and repeat

Sound page

Sound & Haptics โ€” packs you can audition, volume, vibration

Emoji and GIFs page

Emoji & GIFs โ€” skin tone, safety filter, how GIFs go in

Voice typing page

Voice Typing โ€” models, device, microphone test

Controller page

Controller โ€” button actions, chord, rumble, dead zone

When it shows page

When It Shows โ€” touch or mouse, hiding, per-app rules

Clipboard page

Clipboard โ€” history, how long items stay, paste chip

Privacy page

Privacy โ€” learned words, clipboard and voice data

back to top โฌ†


โŒจ๏ธ Command line & D-Bus

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.

back to top โฌ†


๐Ÿ”’ Privacy

  • 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.

back to top โฌ†


๐Ÿ’ฌ Questions

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.

๐Ÿงฐ More from DevL0rd

Other Plasma projects made to sit on the same desktop. Click a banner to open it on GitHub.

Konveyor โ€” Scrolling tiling for KDE Plasma
Konveyor ยท Your windows, on a conveyor belt.

RVC Voice Changer โ€” Real-time AI voice changing for Plasma
RVC Voice Changer ยท Sound like anyone, in every app.

Android-Daemon โ€” Your Android phone, part of your Plasma desktop
Android-Daemon ยท Your phone, right on your desktop.

Syncthing Monitor โ€” Syncthing, live in your Plasma panel
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.

back to top โฌ†

About

The on-screen keyboard Plasma deserves: glide typing, voice, emoji, GIFs, clipboard and controller support

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages