Update: SDL3/Wayland branch merged to main, GH release bin updated along with AUR packages.

There’s no good standalone controller-driven on-screen keyboard on Linux. Steam’s keyboard requires Steam running. Other virtual keyboards (Onboard, Florence) need a mouse pointer or are dead projects. I wanted something that takes D-pad and stick input directly, like a console, but can be launched independently of specific games or platforms.

So I built one written in Go with SDL3 and native Wayland layer-shell support. It works as a daemon with a configurable controller combo to toggle show/hide. AUR packages ( gamepad-osk-git , gamepad-osk-bin are updated to v2.

If you’re on Wayland with a gamepad, I’d appreciate testers. Bug reports and PRs welcome. Wayland testers still welcome - especially GNOME (falls back to standard window, no layer-shell). Bug reports and PRs welcome.

52zmLKolohdRQ5v.png

Features :

  • Full QWERTY with shortcuts row (undo, redo, cut, copy, paste, select all, Alt+Tab, media keys)
  • D-pad navigation with stick-driven mouse cursor
  • Modifier support (Shift, Ctrl, Alt, Super, Caps) with visual status indicators
  • Button-hold key repeat for backspace, space, enter
  • Alt+Tab key for multiple Tab presses
  • Auto-reconnect on controller disconnect/timeout
  • Configurable button mapping, 60 themes, adjustable opacity
  • Sub-1% CPU idle, under 4% during active input
  • 0x90shell@piefed.socialOP
    link
    fedilink
    English
    arrow-up
    4
    ·
    4 days ago

    Nope. Just on my Arch systems (XFCE w/ X11) & Void Linux w/ X11. I am planning to run through some manual tests in KDE Plasma which should be applicable to Steam Deck and CatchyOS, but I need to build a proper test env. Ive done simple tests in Sway and KDE with nested sessions, but those are just spot checks not full testing. I need to boot into real systems for full testing.