Omahub
← All plugins
C

Read Aloud

by calebhat

Read selected or pasted text aloud with Edge neural voices. Book chip on the bar, panel drops from the focused screen.

Install
$ omarchy plugin add https://github.com/calebhat/omarchy-read-aloud --enable
Productivity #bar #quickshell #media

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