omarchy-osk — a real on-screen keyboard (and touchscreen gestures) for Omarchy tablets #10028
ekollof
started this conversation in
Show and tell
Replies: 1 comment
|
The virtual pointer is for touch screens that don't implement a touchpad surface (many don't). If it interferes, you can turn it off and it should persist. If you prefer |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
omarchy-osk — a real on-screen keyboard (and touchscreen gestures) for Omarchy tablets
I've been running Omarchy on a touchscreen tablet/2-in-1, and the one thing missing was a proper on-screen keyboard — so I built one. It's three pieces that work together:
What it does
The keyboard itself is a Quickshell overlay that docks to the bottom of your screen. It's not a hardcoded grid: the layout comes straight from your system's xkb keymaps, so it auto-detects your locale (
da_DKgives you a Danish keyboard with æ ø å,degets the ISO extra key, …) and you can switch to any layout fromlocalectl list-x11-keymap-layoutsin the bar applet. Keys are injected through a synthetic keyboard device at the evdev level, which means compositor keybinds fire and client-side stuff like dead-key composition just works. Holding a key repeats it, with configurable delay/interval (the sliders in the screenshot).The touch layer is the part I'm most happy with: a small Hyprland compositor plugin that consumes raw touchscreen input and re-emits it as a pointer. On the desktop that means:
Touches landing on the keyboard become taps on the keys, so typing never moves your window focus. And if you'd rather have plain touchscreen behavior in an app, the "Virtual pointing device" toggle in the applet switches it off — apps get native touch, gestures go quiet.
The bar applet ties it together: keyboard icon in the bar, left-click for settings (enable/disable, layout picker, repeat, scroll speed, fling, gesture tuning), right-click to toggle.
Summon it with SUPER+SHIFT+K, a swipe up from the bottom edge (via hyprgrass), or the applet. Zero wakeups when idle — the socket/IPC layer is event-driven, so it costs nothing while hidden.
Getting it
Repo: https://github.com/ekollof/omarchy-osk
Clone and run
./install.sh— it builds and deploys everything (compositor plugin, hyprgrass if needed, the shell plugin and the bar applet) idempotently, and reloads Hyprland. The shell plugins areomarchy plugin add-able, and there's ahyprpm.tomlif you prefer managing the compositor plugin through hyprpm. Hyprland 0.56.1 era, C++23 + QML.Feedback welcome — especially from other tablet users. Layouts are generated from your system keymaps, so if you run something exotic, I'd love to hear whether it renders and types correctly.
All reactions