Skip to content

Omarchy / Hyprland Setup

Omarchy is an Arch-based desktop built on Hyprland. OSTT works well as a floating voice-to-text popup triggered by a Hyprland keybinding.

Install OSTT

bash
curl -fsSL https://ostt.ai/install | bash
ostt auth

Prefer the Arch package route? Use an AUR helper:

bash
paru -S ostt
# or
yay -S ostt

pacman does not install AUR packages directly unless you build them manually.

Keybinding

Add the binding to ~/.config/hypr/bindings.conf. Use the full path to the OSTT binary -- find it with which ostt:

text
# OSTT speech-to-text hotkey, paste into focused app
bindd = ALT, SPACE, ostt, exec, /home/you/.local/bin/ostt launch --paste

Use launch -c instead if you want clipboard output and manual paste.

Window Rules

Add window rules to ~/.config/hypr/hyprland.conf:

text
# OSTT window overrides
windowrule = float on, match:title ostt
windowrule = move ((monitor_w*0.5)-(window_w*0.5)) (monitor_h*0.85), match:title ostt

Reload Hyprland:

bash
hyprctl reload

Usage

  1. Press Alt+Space to open the popup and start recording.
  2. Speak.
  3. Press Alt+Space again, or press Enter in the popup, to stop recording and transcribe.
  4. With --paste, OSTT inserts the text into the app that regains focus after the popup closes.

Output Options

Paste output:

text
bindd = ALT, SPACE, ostt, exec, /path/to/ostt launch --paste

Clipboard output:

text
bindd = ALT, SPACE, ostt, exec, /path/to/ostt launch -c

Stdout output:

text
bindd = ALT, SPACE, ostt, exec, /path/to/ostt launch

File output:

text
bindd = ALT, SPACE, ostt, exec, /path/to/ostt launch -o ~/transcription.txt

Processing output:

text
bindd = ALT CTRL, SPACE, ostt process, exec, /path/to/ostt launch --paste -p

Replace /path/to/ostt with the output of which ostt.

Paste Shortcut On Omarchy

Omarchy's SUPER+V universal paste binding sends SHIFT+Insert to the focused app. OSTT uses shift+insert as the default paste key on Omarchy for the same reason.

toml
[output.paste]
paste_key = "shift+insert"

Do not set paste_key = "super+v" for this workflow. SUPER+V is a Hyprland binding, not the shortcut most apps receive for paste.

On Hyprland, position is controlled by Hyprland window rules. Terminal selection, size, font size, and borderless behavior are configured in ~/.config/ostt/ostt.toml:

toml
[popup]
terminal = "ghostty"
width = 90
height = 15
font_size = 6
borderless = true

Change the move rule to adjust position:

text
# Centered horizontally near the bottom
windowrule = move ((monitor_w*0.5)-(window_w*0.5)) (monitor_h*0.85), match:title ostt

# Centered on screen
windowrule = move ((monitor_w*0.5)-(window_w*0.5)) ((monitor_h*0.5)-(window_h*0.5)), match:title ostt

Troubleshooting

Test launch directly:

bash
ostt launch -c

Test paste directly:

bash
ostt launch --paste

Reload Hyprland config:

bash
hyprctl reload

If the popup appears in the wrong position, make sure the OSTT window rules are placed before catch-all rules that might override them.