Wallaby-VK 
Virtuelles On-Screen-Keyboard mit deutschem Layout für Linux Kubuntu(u. andere) / Wayland
v2.2.0 · Juni 2026
↓ Download wallaby-vk_2.2.0.zip
Python 3 Skript ·
~260kB / 6.5 k lines · Linux / Wayland
English Summary
Wallaby-VK is a free virtual on-screen keyboard for Linux
systems with Wayland support. It runs as a floating,
focus-stealing-free keyboard at the bottom of the screen.
Key features: Full German QWERTZ layout
with umlauts (ä, ö, ü, ß) and a working acute dead-key (´ +
e → é), 40 customizable text snippets, local speech
recognition via faster-whisper, 10-slot multi-copy buffer
with an event-based clipboard watcher (safe on KWin 6 /
Plasma 6), modifier locking (Shift, Ctrl, Alt, AltGr),
Meta-as-quasi-modifier for Plasma shortcuts (Meta+E for the
file manager, Meta+. for the emoji picker, etc.), audio
controls, and an optional KeyCast OSD that shows keystrokes
(including modifier combos like Ctrl+C), mouse buttons, and
scroll-wheel events as live tokens on screen — ideal for
screencasts and tutorials.
Tested on Kubuntu 26.04 / KDE Plasma 6 / KWin 6, Ubuntu
24.04, Linux Mint 22.3 (Cinnamon), TUXEDO-OS-202604.
Single Python file — no package manager installation
required.
Überblick
Wallaby-VK ist ein virtuelles On-Screen-Keyboard für
Linux-Systeme mit Wayland-Unterstützung. Es ist als einzelne
Python-Datei realisiert, benötigt keine Installation über
Paketmanager und läuft direkt nach dem Start als schwebende,
fokuslose Tastatur am unteren Bildschirmrand.
Mit Claude.AI ist der Python-Code unter der Linux Distri
Kubuntu entstanden.
Ein Schnelltest mit Ubuntu-24.04.4-desktop-amd64,
TUXEDO-OS-202604 und linuxmint-22.3-cinnamon-64bit war
positiv.
Das dunkle, rahmenlose Design mit flachen Kacheln fügt sich unauffällig in moderne Desktop-Umgebungen ein.
Neu in Version 2.2.0: Im Paste-Kontextmenü
(Rechtsklick auf Paste) gibt es jetzt zwei Möglichkeiten,
einen Eintrag einzufügen:
* Linke Maustaste: klassisch via Strg+V (schnell, auch für
Sonderzeichen/Emojis sicher).
* Rechte Maustaste: der Text wird zeichenweise wie eine echte
Tastatureingabe (via evdev UInput) abgearbeitet. Das
funktioniert auch in Terminal-Fenstern unter Linux, in denen
Strg+V nicht als Einfügen wirkt. Die Zwischenablage bleibt
dabei unverändert. Hinweis: Zeichen ohne EC-Mapping (z. B.
Emojis) können fehlen.
Features
📝40 Textbausteine
Häufig benötigte Texte per Klick einfügen. Unterstützt Datum/Zeit-Variablen (ISO 8601). Editierbar, sortierbar, Sync via Nextcloud.
🎤Spracheingabe
Lokale Spracherkennung via faster-whisper. Modellauswahl per Rechtsklick (tiny bis large-v3). Komplett offline.
▶Demo-Video + 🔊📋Multi-Copy-Buffer
Zwischenablage mit FIFO-Speicher für 10 Einträge. Rechtsklick auf Paste zeigt die Auswahl.
📺KeyCast (KC)
Optionales OSD für Screencasts und Tutorials: gedrückte
Tasten, Modifier-Kombos (Ctrl+C, Shift+A), Maustasten und
Scrollrad-Events erscheinen als Live-Tokens auf dem
Bildschirm.
🔒Modifier-Einrasten
Shift, Ctrl, Alt, AltGr: Aus → One-Shot → Lock. One-Shot mit 5s-Countdown-Balken. Lock hält systemweit.
🔊Audio-Steuerung
Lautstärke-Tasten mit Lautstärken-Bargraph und Mute-LED. Betätigen, der Lautstärkentaste ändert um 1%, das Drehen des Rollrates auf den Tasten ändert um 5%.
🗐Bearbeiten-Tasten
Die Standard-Bearbeitungsfunktionen Cut, Paste, Undo, All und Find sind als extra Tasten abgebildet.
⌨️QWERTZ + Umlaute
Vollständiges deutsches Layout mit ä, ö, ü, ß. Live-Beschriftung wechselt bei Shift, AltGr und Caps Lock. Rechtsklick sendet die Shift-Variante. Akut-Dead-Key funktioniert: ´ + e → é, ´ + a → á usw.
Modifier-Zustände
Jeder Modifier (Shift, Ctrl, Alt, AltGr) hat drei Zustände. Klicken schaltet weiter:
Im One-Shot-Modus zeigt ein gelber Countdown-Balken am unteren Tastenrand die verbleibende Zeit (5 Sekunden). Lock hält den Modifier systemweit — auch Mausklicks in anderen Fenstern erhalten den Modifier (z. B. Ctrl+Klick im Dateimanager).
Meta hat einen eigenen Modus und kennt keinen Lock — das wäre mit dem Plasma-Startmenü-Verhalten unvereinbar. Der 1. Klick auf Meta drückt die Taste via UInput und startet einen 2-Sekunden-Timer. Wird innerhalb dieser Zeit eine andere Wallaby-Taste geklickt, wird die Kombination (z. B. Meta+E für den Dateimanager, Meta+. für den Emoji-Picker) gesendet und Meta sofort losgelassen. Ein 2. Klick auf Meta oder das Ablaufen des Timers ohne Folgetaste lässt Meta los — Plasma erkennt einen Solo-Press und öffnet das Startmenü.
KeyCast (KC)
KeyCast ist eine optionale On-Screen-Anzeige für gedrückte Tasten und Mausaktionen. Sie ist gedacht für Screencasts, Tutorials, Vorträge und Demos — also überall dort, wo das Publikum sehen soll, welche Tasten gerade benutzt werden. KeyCast wird in der Wallaby-Konfiguration aktiviert: Sektion „KeyCast (KC)" → Häkchen bei „KC aktivieren".
Sobald KC aktiv ist, erscheint eine zusätzliche KC-Taste
auf Wallaby. Sie schaltet zwischen zwei Modi um:
| Modus | Verhalten |
|---|---|
| Edit-Modus | Ein hellblau umrandetes Rechteck erscheint auf dem Bildschirm. Per Drag&Drop lässt sich die Position frei wählen — auch über Monitorgrenzen hinweg. Die gewählte Position wird gespeichert. |
| OSD-Modus | An der zuvor festgelegten Position erscheinen Tokens für jede gedrückte Taste und jeden Mausklick. Jedes Token bleibt 3 Sekunden sichtbar und verschwindet dann automatisch. |
Was angezeigt wird
KeyCast liest direkt von /dev/input/event* —
angezeigt werden also Eingaben von der echten Tastatur und
Maus, nicht nur Wallaby-eigene Tasten:
| Eingabe | Anzeige |
|---|---|
| Einzelne Taste | Token mit Tasten-Label, z. B. A, Return,
F5 |
| Modifier-Kombination | Prefix vor dem Tasten-Label: Ctrl+C, Shift+A,
Alt+Tab, AltGr+E |
| Modifier alleine | Wird bewusst nicht als Token angezeigt — erst die Kombination zählt |
| Maustasten | Links, rechts, Mitte |
| Scrollrad | Vertikal und horizontal |
| Dieselbe Taste wiederholt | Wird innerhalb von 1,5 s zu einem Token mit
Multiplikator zusammengefasst: Backspace ×7 |
Anpassbar
In der Wallaby-Konfiguration lassen sich Erscheinungsbild und Größe einstellen — Farbwerte über den neuen dunklen Farbdialog:
| Option | Bereich | Default |
|---|---|---|
| Schriftgröße | 10 – 62 pt | 16 pt |
| Rahmen-Farbe | RGB | #00AAFF (hellblau) |
| Token-Hintergrund | RGB | #232629 (dunkelgrau) |
| Token-Vordergrund | RGB | #21C063 (grün) |
| Multiplier-Farbe (×N) | RGB | #21C063 |
| Hintergrund-Transparenz | 0 – 100 % | 0 % (opak) |
Architektonisch ist jedes Token ein eigenes Toplevel-Fenster
— das erlaubt echte Transparenz (tk's -alpha
vererbt sich an Kinder, ein gemeinsamer Container wäre also
nicht echt unsichtbar zu bekommen). Das Lesen der Eingaben
passiert in einem Background-Thread, der laufende
Wallaby-Eingaben nicht blockiert.
Installation
Voraussetzungen
| Komponente | Details |
|---|---|
| Betriebssystem | Linux mit Wayland (getestet: Kubuntu 26.04 / KDE
Plasma 6) auf AMD und intel Ein Schnelltest mit Ubuntu-26.04.4-desktop-amd64, linuxmint-22.3-cinnamon-64bit und TUXEDO-OS-202604211002 war positiv. |
| Python | 3.10+ (in der Regel vorinstalliert) |
| python-evdev erforderlich | Kernel-Level-Eingabe via UInput |
| tkinter erforderlich | GUI-Framework |
| pactl erforderlich | Audio-Steuerung (PulseAudio / PipeWire) |
| wl-clipboard empfohlen | Event-basierter Clipboard-Watcher unter Wayland (wl-paste
--watch). Fehlt das Paket, fällt Wallaby auf
niedrigfrequentes Polling (3 s) zurück. |
| faster-whisper optional | Spracheingabe (lokales Whisper-Modell) |
Schritt 1 — Abhängigkeiten
# Erforderlich pip install python-evdev --break-system-packages sudo apt install python3-tk # Empfohlen: sichere Clipboard-Beobachtung unter Wayland sudo apt install wl-clipboard # Optional: Spracheingabe pip install sounddevice numpy faster-whisper --break-system-packages sudo apt install portaudio19-dev
Schritt 2 — Berechtigungen
Für UInput-Zugriff muss der Benutzer in der Gruppe input
sein:
sudo usermod -aG input $USER
Danach ab- und wieder anmelden (oder neu starten).
Schritt 3 — Starten
python3 wallaby-vk.py
Die Tastatur erscheint am unteren Rand des Hauptmonitors.
Konfiguration
Textbausteine und Einstellungen werden als JSON gespeichert:
| Priorität | Pfad | Bemerkung |
|---|---|---|
| 1 | ~/Nextcloud/ |
Falls vorhanden — automatischer Sync |
| 2 | ~/.config/wallaby-vk/ |
Fallback — wird automatisch erstellt |
Bedienung
| Aktion | Wirkung |
|---|---|
| Linksklick auf Taste | Zeichen senden (Auto-Repeat bei gedrückt halten: 500 ms Delay, 43 ms Rate) |
| Rechtsklick auf Taste | Shift-Variante einmalig senden |
| Linksklick auf Modifier (Shift/Ctrl/Alt/AltGr) | Zustand weiterschalten: Aus → One-Shot → Lock → Aus |
| Linksklick auf Meta | Meta für 2 s halten; Folgetaste sendet Kombination, sonst Solo-Press (Startmenü) |
| Klick auf ´ (Akut), dann auf einen Vokal | Dead-Key-Kombination: ´ + e → é, ´ + a → á usw. |
| Rechtsklick auf Paste | Copy-Buffer-Auswahl öffnen |
| Rechtsklick auf 🎤 | Whisper-Modell auswählen |
| Ziehen auf Hintergrund | Tastatur-Fenster verschieben |
Klick auf KC-Taste |
KeyCast-Modus wechseln: Edit ↔ OSD (nur sichtbar wenn KC aktiviert) |
| Drag auf KC-Edit-Rahmen | OSD-Position auf dem Bildschirm festlegen |
Textbausteine
Über die Taste ☰▼ oben links öffnet sich das
Textbausteine-Fenster. Linksklick sendet den Text, Rechtsklick
öffnet den Editor. Mit der Sort-Funktion kann die Reihenfolge
per ▲/▼ geändert werden.
Datum/Zeit-Bausteine verwenden ISO-8601-Platzhalter: DD.MM.YYYY
wird zu z. B. 05.04.2026. Variablen: YYYY,
YY, MM, DD, hh,
mm, ss.
Deinstallation
Schritt 1 — Script und Assets löschen
Die Datei wallaby-vk.py und den Ordner assets-wallaby-vk/
(falls vorhanden) löschen.
Schritt 2 — Konfiguration löschen
rm -rf ~/.config/wallaby-vk/
Falls Nextcloud als Speicherort verwendet wird:
rm ~/Nextcloud/.wallaby-vk_snippets.json rm ~/Nextcloud/.wallaby-vk_settings.json
Schritt 3 — Optional: pip-Pakete entfernen
Nur entfernen, wenn sie nicht anderweitig gebraucht werden:
pip uninstall python-evdev --break-system-packages pip uninstall sounddevice numpy faster-whisper --break-system-packages
Schritt 4 — Optional: Benutzer aus Gruppe input
entfernen
sudo gpasswd -d $USER input
Technische Details
| Eigenschaft | Wert |
|---|---|
| Sprache | Python 3.10+ |
| GUI-Framework | tkinter (XWayland) |
| Eingabemethode | python-evdev UInput (Kernel-Level) |
| Layout | QWERTZ (de) mit Akut-Dead-Key (´) |
| Clipboard | wl-paste --watch (event-basiert), mit
3-s-Polling-Fallback für X11 oder fehlendes wl-clipboard |
| KeyCast (KC) | Eigener /dev/input/event*-Reader im
Background-Thread; pro Token ein eigenes
Toplevel-Fenster für echte Transparenz; 10–62 pt
Schriftgröße, RGB-Farben einstellbar |
| Dateien | 1 Python-Datei + optionale Assets |
| Konfiguration | JSON (Textbausteine, Einstellungen) |
| Lizenz | MIT-Lizenz Du darfst die Software kostenlos benutzen, kopieren, ändern, weitergeben und verkaufen. Ich gebe keine Garantie und hafte nicht für Schäden oder Probleme. You may use, copy, modify, share, and sell the software for free. I provide no warranty and am not liable for any damages or problems. |
