Dictation Is the New Prompt (Voxtype on Omarchy)

Typing every prompt with your fingers feels backwards in 2026. We can speak faster than we can type, and it feels more natural. Hold a hotkey, speak, and your OS types it for you. If you care about flow, dictation is the most underrated AI upgrade you can make.

In the Omarchy world, Hyprwhspr is getting a lot of attention after a recent DHH tweet:

He’s right: local dictation is shockingly good now. The catch is Hyprwhspr uses Python virtual environments, which don’t mix well with mise. Fortunately Pete Jackson saw that and created Voxtype to solve exactly this issue!

EDIT: five minutes after I posted this, DHH confirmed that Voxtype ships will ship with Omarchy 3.3! 🎉

Why Voxtype

Voxtype is built in Rust, so you don’t need Python virtual environments which means it works well with mise. It’s fast, it just works, and when I opened an issue asking for an Omarchy theme, the author shipped it immediately. Now it looks stunning in my setup.

With Vulkan enabled, transcription is almost instant on my Ryzen AI 9 HX370. The video at the top is not sped up. Longer text also transcribes instantly.

If you want to copy my exact configuration, here it is.

Install

sudo pacman -S wtype ydotool wl-clipboard vulkan-icd-loader # last only if you want to use your GPU
sudo yay -S voxtype

voxtype setup --download
voxtype setup gpu # if you want to use your GPU
voxtype setup systemd

Restart Waybar after the changes:

pkill -SIGUSR2 waybar

Voxtype config

~/.config/voxtype/config.toml

state_file = "auto"

[hotkey]
enabled = false

[audio]
device = "default"
sample_rate = 16000
max_duration_secs = 600

[audio.feedback]
enabled = true
# Sound theme: "default", "subtle", "mechanical", or path to custom theme directory
theme = "default"
volume = 0.7

[whisper]
model = "base.en"
language = "en"
translate = false
on_demand_loading = true # saves your GPU until it's needed

[output]
mode = "type"
fallback_to_clipboard = true

# Delay between typed characters in milliseconds
# 0 = fastest possible, increase if characters are dropped
type_delay_ms = 1

[output.notification]
on_recording_start = false
on_recording_stop = false
on_transcription = true

[text]
replacements = { "hyperwhisper" = "hyprwhspr" }

[status]
icon_theme = "omarchy"

Waybar integration

~/.config/waybar/config.jsonc

"custom/voxtype": {
  "exec": "voxtype status --follow --format json",
  "return-type": "json",
  "format": "{}",
  "tooltip": true
},

And add it to modules-right:

"modules-right": [
  "group/tray-expander",
  "custom/voxtype",
  "bluetooth",
  "network",
  "pulseaudio",
  "cpu",
  "battery"
]

~/.config/waybar/style.css

@import "voxtype.css";
@import "../omarchy/current/theme/waybar.css";

~/.config/waybar/voxtype.css

#custom-voxtype {
  margin: 0 16px 0 0;
  font-size: 12px;
  font-weight: bold;
  border-top: 2px solid transparent;
  border-bottom: 2px solid transparent;
  transition: color 150ms ease-in-out, border-color 150ms ease-in-out;
}

#custom-voxtype.recording {
  color: #ff5555;
  animation: pulse 1s ease-in-out infinite;
}

#custom-voxtype.transcribing {
  color: #ff5555;
}

#custom-voxtype.stopped {
  color: #6272a4;
}

@keyframes pulse {
  0% { opacity: 1; }
  50% { opacity: 0.5; }
  100% { opacity: 1; }
}

Keybinding

In your Hyprland config:

# Voxtype
bindd = SHIFT, XF86AudioMicMute, Transcribe, exec, voxtype record toggle

That’s it. Use your voice whenever possible. It’s faster, it’s more natural, and it keeps you in flow. This is what prompting in 2026 should feel like.

Newsletter