1.0Free and open source · Android + Omarchy

Your phone is the keyboard.
A real one.

Omakey turns your phone into a kernel-level keyboard and touchpad for Omarchy. Hold SUPER SPACE, press Esc and F1–F12, type into the lock screen — over encrypted Wi-Fi or Bluetooth.

Omarchy Linux · Android 10+ · Bluetooth keyboard for any computer · MIT · No accounts, no cloud

Type on the phone Run a command with Enter SUPER + SPACE: Omarchy menu SUPER + RETURN: terminal Hold Fn, press F3: volume SUPER + CTRL + L, then unlock Pull down the touchpad
🔒 AES-256-GCMTouch a key: every packet carries every held key.

A live simulation running in your browser, drawn from the real app's layout files. Multi-touch works on a touchscreen; with a mouse, modifiers latch (click Super, then Space). Click the scene and your own keyboard types too.

A real keyboard

Key codes, not text boxes.

omakeyd creates a kernel virtual keyboard. Hyprland, games, terminals and the lock screen see key presses, exactly like a Bluetooth keyboard.

Your desktop's layout decides what a key types. Switch Omarchy to Ukrainian and the same keys type Cyrillic.

  • Every bind works: SUPER, Ctrl, Alt, Esc, F1–F12, arrows, media keys
  • Your repeat rate and keyboard settings apply
  • Caps Lock light comes back to the phone
Desktop layout

Same keys, two layouts: ghbdsn in English is привіт in Ukrainian. Lock the screen and type the password on the phone.

Fires on touch-down

Ten fingers. Every chord.

Ordinary touch buttons fire when you lift your finger. Omakey fires the moment it lands, and every finger is its own held key.

Hold CTRL SHIFT T with three fingers. Hold Shift with your thumb and type. Hold Fn and the keys show their media legends.

Omakeysends on touch-down
Typical buttonfires on release
Press and hold here. On a touchscreen, use several fingers.

Each finger holds one key until it lifts; the key a finger pressed is the key its lift releases, even if Fn was let go first.

Fast and unbreakable

Lost packets heal. Keys never stick.

Every UDP packet carries the complete set of held keys plus every tap not yet acknowledged. Lose one and the next one fixes it.

If the phone goes quiet for 500 ms while holding keys, the desktop lets go. No runaway Shift, ever.

Touch → app4–8 ms
App → send()< 1 ms
Wi-Fi, one way1–5 ms
Decrypt + uinput< 0.1 ms
uinput → Hyprland< 1 ms
Phone
omakeyd

Slowed down 6×. Real heartbeat: every 100 ms, with resends after 1.5 × the measured ping. Packets are marked DSCP EF, so Wi-Fi queues them like voice calls.

Touchpad

Pull down. It's a trackpad.

Tap the ⌄ touchpad handle and a touchpad slides over the keys: move, tap to click, hold for the menu, two fingers to scroll.

Click buttons run down both sides, mirrored for either thumb: Left, Right, Ctrl + Left and Shift + Left for multi-select. Each computer remembers its own pointer speed.

Tap a file to selectTap notes.md twice to openHold for the menuScroll the note (wheel or two fingers)

Drag on the pad to move the pointer. The speed chip cycles the presets: Laptop, 1080p, 1440p, ultrawide, 4K.

Omarchy bar widget

Pair with a QR code. Manage it from the bar.

Click the keyboard icon in the bar. Pair a phone shows a QR code with a 5-minute countdown and a fingerprint the phone shows too. See who's connected, with ping, packet loss and held keys. Rename or forget phones, start or restart the service.

1 · Pair a phone (desktop)2 · Scan QR code (phone)3 · Check the fingerprint, Pair

The widget wears your Omarchy theme. Pick one above. After pairing, the phone finds the desktop by itself over mDNS, even when its IP address changes. The QR code here is a demo and can't be scanned.

Bluetooth, two ways

Off Wi-Fi? Not on Omarchy? Still a keyboard.

When Wi-Fi can't reach your desktop, Omakey falls back to Bluetooth with the same encrypted packets. And for any other computer, the phone becomes a plain Bluetooth keyboard and mouse.

Automatic fallback to omakeyd

No extra pairing. A held key survives the switch, and Wi-Fi takes over again as soon as it answers.

Phone
Wi-Fi · UDP 47800
Bluetooth · RFCOMM
omakeyd

Bluetooth keyboard for anything

Mac, Windows, iPad, a TV: pair the phone in its Bluetooth settings. Keyboard and touchpad, nothing to install.

Layouts

Ten keyboards in the box. Or design yours.

Laptop QWERTY, Colemak and Dvorak, the thumb-friendly Omakey Pro, and split ergonomic boards. Split layouts put each half under its thumb. Tap a key to see the code it sends.

Omakey Layout Studio

A web editor for your own layout: drag and resize keys, any Linux key code, Fn and custom layers, shaped keys. Send it to the phone as an omakey://layout link, a QR code or a JSON file.

Open the Studio →

Security

Anyone who can type on your desktop owns it.

So nobody else can. Omakey talks to your desktop directly, over your own network. Nothing sits in between.

A 256-bit key in the QR code

Good for one phone and five minutes. Both screens show the same fingerprint before anything is saved.

Every packet sealed

AES-256-GCM with fresh HKDF session keys and replay counters. A packet that doesn't verify is dropped silently.

Nothing runs as root

A udev rule gives the logged-in user /dev/uinput. The daemon is a sandboxed systemd user service.

Private networks only

Firewall rules let in home, office and Tailscale addresses, with a handshake rate limit per address.

Keys stay on the phone

Pairing keys are encrypted with an Android Keystore key that can't be exported. Backups and device transfer are off.

No accounts, no cloud

Nothing to sign up for, no telemetry. Open source under MIT, with a published wire protocol and test vectors.

For tinkerers

A daemon you can script.

Everything the widget does is a command: pair, status, devices, forget, rename, config. A dry-run mode prints keys instead of typing, and a test client acts as a phone.

The wire protocol, layout format and cross-language test vectors are documented, so you can write your own client.

Wire protocol → · Layout format →

terminal

Get Omakey 1.0

Two minutes to your first keystroke.

Free to use, share and redistribute. The APK is signed with the same key for every release, so updates install over each other.

Android app 1.0.0

Android 10 or newer. The keyboard, touchpad, layouts and Bluetooth keyboard mode.

Download omakey-1.0.0.apk
  1. Open the APK on your phone and allow Install unknown apps for your browser or file manager.
  2. Open Omakey, tap Scan QR code.
  3. Or, for any computer: Pair over Bluetooth.
Signing certificate SHA-256
8B:E4:25:A4:31:79:FB:FB:08:C2:31:3F:4B:C3:0C:26:F7:55:CA:44:BC:C7:22:EE:96:31:A6:77:45:B7:2D:36
All releases and checksums →

Omarchy plugin 1.0.0

The omakeyd service and the bar widget. Needs the Omarchy shell and Rust (sudo pacman -S rust).

omarchy plugin add https://github.com/gladimdim/omakey-omarchy-plugin --enable
~/.config/omarchy/plugins/gladimdim.omakey/install.sh
  1. Run both. install.sh builds the daemon and asks for sudo once (udev rule, firewall).
  2. Click the keyboard icon in the bar → Pair a phone.
  3. Scan it with the app. Type.
Or from a terminal: omakeyd pair. Uninstall: install.sh --uninstall.
Plugin releases →