Read Aloud
An Omarchy bar plugin that reads selected or pasted text aloud with Microsoft Edge neural voices.
The panel follows the active Omarchy theme (Color, Style, and Border tokens).
Install
omarchy plugin add https://github.com/calebhat/omarchy-read-aloud.git --enable
~/.config/omarchy/plugins/calebhat.read-aloud/bin/setup
omarchy plugin add only clones files. Run bin/setup once (needs network) to create a user venv and install the pinned edge-tts lock file in share/requirements.txt. Setup does not upgrade pip or install unpinned packages. Re-run it after plugin updates that change that lock file.
Typical Omarchy systems already have the rest:
sudo pacman -S --needed python mpv wl-clipboard
On Debian/Ubuntu you also need python3-venv.
Use
- Click the book icon in the bar to open the panel
- While text is playing, three small bars pulse next to the icon
- Paste loads the clipboard and starts reading
- Click a word to start there; click and drag to select
- Click outside the panel, press Esc, or click Hide to close it
- Reading continues from the bar after the panel closes
Highlight text and load it in one step:
~/.config/omarchy/plugins/calebhat.read-aloud/bin/speak-selection
Or summon the panel:
omarchy-shell shell summon calebhat.read-aloud
Optional keybindings
Omarchy does not install plugin keybindings. To bind Super+R and media keys, add this to ~/.config/hypr/bindings.lua:
local plugin = os.getenv("HOME") .. "/.config/omarchy/plugins/calebhat.read-aloud/bin"
o.bind("SUPER + R", "Read aloud", plugin .. "/speak-selection")
hl.unbind("XF86AudioPlay")
hl.unbind("XF86AudioPause")
hl.unbind("XF86AudioNext")
hl.unbind("XF86AudioPrev")
o.bind("XF86AudioPlay", "Media play/pause", plugin .. "/read-aloud-media play-pause", { locked = true })
o.bind("XF86AudioPause", "Media play/pause", plugin .. "/read-aloud-media play-pause", { locked = true })
o.bind("XF86AudioNext", "Media next", plugin .. "/read-aloud-media next", { locked = true })
o.bind("XF86AudioPrev", "Media previous", plugin .. "/read-aloud-media previous", { locked = true })
Media keys only claim the session while text is loaded. Otherwise they fall through to the normal player.
Privacy
Read Aloud sends the text you load to Microsoft’s Edge neural TTS service over the network. Do not read secrets, passwords, or private documents with it.
Voice and speed are stored locally in ~/.config/read-aloud/settings.json. Runtime files (control socket, playhead state, short-lived audio) live in $XDG_RUNTIME_DIR/read-aloud when that directory exists, otherwise under ~/.cache/read-aloud/runtime. Those directories are created mode 0700; sockets and state files are 0600. The plugin never uses a predictable path in shared /tmp.
edge-tts is licensed LGPL-3.0 and is installed only from the reviewed lock file.
Remove
omarchy plugin remove calebhat.read-aloud
That deletes the plugin checkout only. Optional cleanup:
rm -rf ~/.config/read-aloud
rm -rf ~/.local/share/read-aloud
rm -rf "${XDG_RUNTIME_DIR:-${XDG_CACHE_HOME:-$HOME/.cache}}/read-aloud"
CLI
read-aloud ui Open the panel; load highlight or clipboard
read-aloud paste Load clipboard and play
read-aloud load-selection Load highlight or clipboard and play
read-aloud play [pos] Play (optionally from a character offset)
read-aloud seek <pos> Jump to a character offset and play
read-aloud pause|toggle|stop
read-aloud next|prev Skip forward or back one chunk
read-aloud voice <id> Set voice (e.g. en-US-JennyNeural)
read-aloud rate <pct> Set speed percent (e.g. 25 or +25%)
read-aloud status
License
MIT