Johan 15fae9aaf9 Remove Alabanza/Language, fix dropdown popup clipping
- Alabanza style removed: it only has Spanish recordings, so it always
  played nothing under the (now-removed) English default.
- Language dropdown removed entirely; translation is hard-coded to
  English (sbe) in Model.js, overriding any legacy saved state too.
- Dropdown popups were rendering past the popup window's bottom edge
  and getting clipped, since the window is sized only to the collapsed
  rows. Reserve room for the open popup, but only while a dropdown is
  actually expanded, so the panel doesn't carry permanent dead space.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LYvjTEDeh9T6NqBDdCALMq
2026-09-15 11:54:27 +01:00
2026-09-15 11:32:13 +01:00

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.

Description
Omarchy shell plugin: media player/streamer for thesinging.bible
Readme 42 KiB
Languages
QML 62.9%
JavaScript 37.1%