Files
2026-09-15 11:32:13 +01:00

2.2 KiB

dotjuice.thesinging.bible

An Omarchy shell plugin that turns the top bar into a media player/streamer for TheSinging.Bible — the Bible sung in your choice of language, voice, and musical style.

What it does

  • Bar pill showing play/pause and the current track (e.g. "Genesis 1")
  • Click it for a popup player with full transport controls: loop, prev chapter, rewind 10s, play/pause, forward 10s, next chapter, shuffle, and a seek bar with elapsed/total time
  • The same selectors as the website, in the same order: Book, Chapter, Style, Voice, Language
  • Remembers your last selection between restarts
  • Streams the site's public audio files directly (no login/API key needed)

Requirements

  • Omarchy
  • mpv (used under the hood for streaming/playback control over its JSON IPC socket)

Install

Copy (or clone) this directory to:

~/.config/omarchy/plugins/dotjuice.thesinging.bible/

The shell picks up plugins under ~/.config/omarchy/plugins/ automatically. Add the widget to your bar with:

omarchy bar put dotjuice.thesinging.bible --section right

(or --section left / --section center, wherever you'd like it). If it doesn't show up, force a rescan:

omarchy-shell shell rescanPlugins

How it works

  • Model.js fetches manifest.json from thesinging.bible for the current list of books, styles, voices, and languages, and builds the audio URL for a given selection (https://audio.thesinging.bible/<translation>/<voice>/<age>/<style>/<book>/<chapter>.mp3). Age (adult/child) isn't a user-facing selector — it's derived automatically per selection, same as the website.
  • BarWidget.qml launches a background mpv --idle process per session and drives it over its local JSON IPC socket for loading, play/pause, seeking, and chapter navigation.
  • Last selection is persisted to ~/.local/state/omarchy/plugins/dotjuice.thesinging.bible/state.json.

Credit

All audio and Bible content is © TheSinging.Bible. This plugin is just a native desktop player pointed at their public API/audio — it doesn't ship or host any Bible content itself.