How to set up Walkie on Omarchy
Add Walkie's pacman repository and install walkie-bin, then bind a key in ~/.config/hypr/bindings.lua using Omarchy's o.bind helper — Wayland does not let an app register its own global hotkey, so the compositor holds the key and runs walkie --start-transcription and walkie --stop-transcription on press and release. Optionally add the Walkie bar widget for click-to-dictate. One thing to watch: Omarchy's built-in Voxtype already binds Super + Ctrl + X and F9, so pick different keys if you keep both installed.

This page covers Omarchy specifically. For Arch without Omarchy, Debian, or any other distro, see Walkie on Linux — the install is the same, but the keybinding and bar steps below are Omarchy's own and will not apply.
Setup at a glance
- Add Walkie's pacman repository and install
walkie-bin.Updates then ridepacman -Syulike any other package. - Bind a key in
~/.config/hypr/bindings.lua, then runhyprctl reload.Wayland cannot let Walkie register its own hotkey, so Hyprland holds the key and runs a Walkie command on press and release. - Hold the key, say a sentence, and release.The text is typed into whatever app has focus. Everything after this — the bar widget, meeting audio, autostart — is optional.
Install Walkie
Walkie ships its own pacman repository, so updates ride pacman -Syu like everything else on the system. Add it to /etc/pacman.conf once:
# /etc/pacman.conf
[walkie]
SigLevel = Optional TrustAll
Server = https://b150.s3.us-east-1.amazonaws.com/walkie/arch/$archThen install:
sudo pacman -Syu walkie-binThe package pulls in the optional pieces Walkie needs as optdepends — wtype for typing text, wl-clipboard for the clipboard path, and the PipeWire packages for meeting audio. Omarchy already installs wtype and PipeWire as part of its base system, so on a stock install there is usually nothing more to add.
Bind a key for dictation
Wayland has no protocol that lets an application listen for a global keyboard shortcut, so Walkie's in-app shortcut setting cannot see your keypress. The compositor holds the key instead and runs a Walkie command when it goes down and up. This is the same approach Omarchy uses for its own Voxtype dictation.
Omarchy configures Hyprland through Lua, and your bindings belong in the user-owned file ~/.config/hypr/bindings.lua:
if o.cmd_present("walkie") then
o.bind("SUPER + CTRL + X", "Toggle Walkie dictation", "walkie --toggle-transcription")
o.bind("F9", "Walkie push-to-talk (start)", "walkie --start-transcription")
o.bind("F9", "Walkie push-to-talk (stop)", "walkie --stop-transcription", { release = true })
o.bind("SUPER + CTRL + ESCAPE", "Cancel Walkie", "walkie --cancel")
endThen reload the compositor:
hyprctl reloadIf you also use Voxtype
Omarchy's Voxtype bindings live in default/hypr/bindings/voxtype.lua, which Omarchy owns and will overwrite on upgrade — so rebind Walkie in your own bindings.lua rather than editing Voxtype's file. Any free combination works:
o.bind("SUPER + CTRL + D", "Toggle Walkie dictation", "walkie --toggle-transcription")
o.bind("F10", "Walkie push-to-talk (start)", "walkie --start-transcription")
o.bind("F10", "Walkie push-to-talk (stop)", "walkie --stop-transcription", { release = true })If you would rather remove Voxtype and use the keys as written, sudo pacman -R voxtype-bin and drop its binding file.
Add the Walkie bar widget
Walkie can live in your Omarchy bar: it shows whether Walkie is idle, recording, transcribing or in a meeting, and clicking it starts dictation without touching the keyboard. The walkie-bin package ships the widget at /usr/share/walkie/omarchy-plugin/.
- Copy the widget into your Omarchy plugins directory.The directory name has to match the plugin id,
com.b150.walkie. - Enable it and pick which side of the bar it sits on.
--sectiontakesleft,centerorright.
mkdir -p ~/.config/omarchy/plugins/com.b150.walkie
cp /usr/share/walkie/omarchy-plugin/{manifest.json,BarWidget.qml} \
~/.config/omarchy/plugins/com.b150.walkie/
omarchy plugin enable com.b150.walkie --section right| Action | What it does |
|---|---|
| Left click | Start dictation; click again to transcribe |
| Right click | Open or focus the Walkie window |
| Middle click | Cancel whatever is running |
| Hover | Current state, and the meeting clock during a meeting |
The icon breathes while the microphone is open, dims when idle, and fades further when Walkie is not running.
Widget settings
Edit the widget's entry in ~/.config/omarchy/shell.json, or set them from the command line with omarchy bar set com.b150.walkie <key> <value>:
| Key | Default | What it does |
|---|---|---|
command | walkie | Executable to call. Use an absolute path for an AppImage install. |
hideWhenIdle | false | Take up no space in the bar unless something is happening. |
showLabel | false | Print the state name next to the icon. |
fontFamily | bar's font | Override the font used for the icon glyph. |
fontSize | 14 | Icon size in pixels. |
Using another bar
The widget is a thin wrapper around a command any bar can call. walkie status prints one line of Waybar-shaped JSON and exits; walkie status --watch streams a line every time the state changes.
{"text":"<glyph>","alt":"recording","class":"recording","tooltip":"Walkie — recording"}class carries the state: idle, recording, analyzing, transcribing, thinking, speaking, error, meeting, meeting_paused, or stopped when Walkie is not running. text is a Nerd Font glyph you can ignore in favour of your own. For Waybar:
"custom/walkie": {
"exec": "walkie status --watch",
"return-type": "json",
"format": "{}",
"tooltip": true,
"on-click": "walkie --toggle-transcription"
}Meeting audio
To record the other side of a call, Walkie reads your speakers' monitor source through PipeWire's PulseAudio layer. Omarchy ships PipeWire, but confirm these are present:
sudo pacman -S pipewire-pulse libpulse pipewire-alsapipewire-pulseandlibpulseprovideparecand the monitor source Walkie records from.pipewire-alsais what lets your microphone work at all — without it, recording fails with a device error.
Start Walkie on login
Hyprland ignores the XDG autostart entry Walkie writes, so use the systemd user service instead. The package installs the unit; enable it once:
systemctl --user enable --now walkieOr, if you would rather keep it in your compositor config:
exec-once = walkie --start-hiddenCheck it works
- Confirm Walkie is running and reachable.
walkie statusshould printidlerather thanstopped. - Hold your push-to-talk key, say a sentence, and release.Try it in a terminal first, then in a browser field — text injection can differ between the two.
- Check the bar widget changes state while you hold the key.
Known limitations on Omarchy
- The recording overlay is off by default. Some compositors treat it as the focused window, which stops Walkie pasting back into the app you were typing in. You can turn it on in Settings if yours behaves.
- Builds are unsigned, and the pacman repository is unsigned too.
- Read Aloud's text capture is limited on Wayland. Reading a selection from another app does not work on every compositor yet; dropping a file onto Walkie always does.
- The bar widget needs a recent Walkie build — the one that added the
walkie statuscommand. Against an older build the widget simply shows "not running".
Frequently asked questions about how to set up Walkie on Omarchy
Why does my key start two recordings at once?
Omarchy's built-in Voxtype binds the same Super + Ctrl + X and F9 keys that Walkie's snippet uses. Rebind one of them — see If you also use Voxtype.
Do I need to be in the `input` group?
No. Binding keys in Hyprland — the setup on this page — needs no special permissions. The input group is only required if you switch Walkie's keyboard backend to evdev, or use dotool for typing.
Why does the bar widget say Walkie is not running when it is?
The widget calls walkie on your PATH. If you installed the AppImage or a build from source, point it at the binary: omarchy bar set com.b150.walkie command /full/path/to/walkie.
The tray icon never appears when Walkie autostarts. Why?
The systemd user manager needs the session's Wayland variables. Run systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP HYPRLAND_INSTANCE_SIGNATURE, then restart the service.
My hotkey starts a recording but nothing gets typed.
That is text injection, not the hotkey. Install wtype — sudo pacman -S wtype — which is what Walkie uses on Hyprland.
Will an Omarchy upgrade break the widget or my bindings?
The widget imports only QtQuick and Quickshell.Io, deliberately avoiding the modules Omarchy versions with itself, so upgrades should leave it alone. Your bindings live in bindings.lua, which Omarchy does not overwrite.
Does dictation still run on-device?
Yes. On-Device Mode behaves exactly as it does on macOS and Windows: audio never leaves your machine. See What leaves your device.