Wallaby-VK  wallaby-vk_logo.png

Virtuelles On-Screen-Keyboard mit deutschem Layout für Linux Kubuntu(u. andere) / Wayland

v2.2.0 · Juni 2026
Wallaby-VK
            Screenshot — Virtual on-screen keyboard with QWERTZ layout
            for Linux Wayland Kubuntu
Wallaby-VK — Dark Design mit flachen Kacheln, Shortcut-Leiste und Audio-Steuerung

↓ 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:

Aus
One-Shot (nach einer Taste verbraucht)
Lock (dauerhaft gehalten)

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.