Omarchy Athan Plugin (abdulrahman.athan)
A native, elegant Islamic prayer times, live countdown, monthly timetable & customizable Athan widget for the Omarchy Desktop (Quickshell).
Developed by @abdalrohman.
<p align="center"> <img src="assets/screenshot_today.png" width="80%" alt="Athan Today's View" /> </p> <p align="center"> <img src="assets/screenshot_playing.png" width="80%" alt="Live Audio Playback" /> </p> <p align="center"> <img src="assets/screenshot_calendar.png" width="80%" alt="Athan Monthly Timetable" /> </p>
✨ Features
🕌 Menubar Widget (BarWidget.qml)
- Real-Time Display: Positioned in the active bar with Islamic Mosque glyph (
🕌), next prayer name, and live countdown timer (🕌 Fajr in 7h 25m). - Live Audio Indicator: Displays animated audio wave icon (
) whenever Adhan audio is actively playing. - Multiple Display Formats (Right-Click to cycle):
[Icon] Next in Xm(e.g.🕌 Asr in 42m)[Icon] Next at Time(e.g.🕌 Asr 15:53)[Icon] Full Countdown(e.g.🕌 Asr 00:42:15)[Icon] Time Only(e.g.🕌 15:53)[Icon]only
📅 Popup Details Panel (Panel.qml)
1. Today's View
- Hero Section:
- Huge countdown digits (
00:42:18) to the upcoming prayer with Mosque (🕌) icon. - Percentage progress bar of the current prayer window.
- Interactive location pill with Open-Meteo city search & autocomplete.
- Huge countdown digits (
- Main Prayer Times:
- Fajr (
🌙), Sunrise (Shuruq🌅), Dhuhr (☀️), Asr (🌤️), Maghrib (🌇), and Isha (🌌). - Badges for
ACTIVE(current prayer window) andNEXT(upcoming prayer).
- Fajr (
- Night Prayers & Extra Timings:
- Imsak (إمساك - fasting start margin
🌙). - Islamic Midnight (نصف الليل - halfway point between sunset and fajr
🌃). - Tahajjud / Last Third of the Night (ثلث الليل الآخر - قيام الليل
✨).
- Imsak (إمساك - fasting start margin
- Post-Adhan Sunnah Du'a:
- Automatically displays the Prophetic Du'a after Adhan ("اللهم رب هذه الدعوة التامة والصلاة القائمة...") with English translation and instant Du'a audio playback during the prayer window.
- Qibla Compass:
- Calculates exact bearing angle, cardinal direction (e.g.
176° S), and direct distance to the Holy Kaaba in Makkah in kilometers.
- Calculates exact bearing angle, cardinal direction (e.g.
- Hijri Date:
- Displays Arabic and English Hijri dates (e.g.
10 Rabīʿ al-Awwal 1448 هـ) with customizable moon-sighting adjustment.
- Displays Arabic and English Hijri dates (e.g.
2. Monthly Prayer Timetable
- Full 30-Day Calendar:
- Shows Gregorian date, Hijri date, day of the week, and exact timings for all 6 daily times (Fajr, Sunrise, Dhuhr, Asr, Maghrib, Isha).
- Month Navigation: Easily switch between Previous Month, Current Month, and Next Month.
- Today & Friday Highlights: Current day is highlighted with active accent badge, and Fridays (Jumu'ah) with accent tint.
- 100% Offline Capability: Generated instantly via pure JavaScript astronomical algorithms, synchronized with Aladhan Monthly Calendar API when online.
🔊 Rich Audio & Sound Customization
- Pristine Bundled Studio Audio Assets (No crowd or background noise):
- Default Adhan (~2:12, Studio recording by Sheikh Nasser Al-Qatami).
- Dedicated Fajr Adhan (~3:08, Studio recording by Sheikh Mishary Rashid Al-Afasy with "الصلاة خير من النوم").
- Mecca Adhan (~3:25, Sheikh Ali Ahmed Mullah, Masjid al-Haram).
- Short Adhan (~20s Takbeer-only with smooth fade-out).
- Post-Adhan Du'a (~17s Prophetic Du'a audio recitation).
- Gentle Acoustic Chime (for Sunrise and pre-Adhan reminders).
- Granular Per-Prayer Sound Selector:
- Configure sound mode independently for each prayer (Fajr, Sunrise, Dhuhr, Asr, Maghrib, Isha).
- Modes: Default Adhan (Qatami), Dedicated Fajr Adhan (Afasy), Mecca Adhan, Short Takbeer, Notification Chime, Custom Sound File, or Silent (Mute).
- Sunrise is non-prayer and defaults to gentle Chime or Silent.
- Custom Audio File Support:
- Enter a path to any local
.mp3or.wavaudio file (e.g./home/user/Music/my_athan.mp3), with preview/test buttons.
- Enter a path to any local
- Volume & Playback Controls:
- Master volume slider (0% – 100%) applied via
pw-play/paplay/mpv/ffplay. - One-click "Stop Audio" button in the popup panel and menubar widget.
- Master volume slider (0% – 100%) applied via
⚙️ Precision Calculation & Settings
- 18+ Calculation Authorities:
- Umm Al-Qura University (Makkah)
- Muslim World League (MWL)
- Egyptian General Authority of Survey
- Islamic Society of North America (ISNA)
- University of Islamic Sciences, Karachi
- Gulf Region / UAE
- Kuwait
- Qatar
- Majlis Ugama Islam Singapura (MUIS)
- Diyanet İşleri Başkanlığı (Turkey)
- Union des Organisations Islamiques de France (UOIF)
- Dubai (UAE)
- Jabatan Kemajuan Islam Malaysia (JAKIM)
- Tunisia
- Algeria
- Kementerian Agama RI (Indonesia)
- Morocco (Ministry of Habous)
- Jordan (Ministry of Awqaf)
- Institute of Geophysics, University of Tehran
- Shia Ithna-Ashari / Leva Institute, Qum
- Juristic School (Madhab): Standard (Shafi'i, Maliki, Hanbali) vs Hanafi for Asr shadow factor.
- High-Latitude Rules: Standard/Astronomical, Angle-Based, One-Seventh, Middle of the Night.
- Ramadan Mode: Automatically sets Isha to
Maghrib + 120 minduring Ramadan for Umm Al-Qura. - Manual Minute Offsets: +/- 15 minute adjustments per prayer for local mosque matching.
- Configurable Pre-Adhan Reminder: Desktop notification 5, 10, 15, or 20 minutes before prayer time.
⌨️ Keyboard Shortcuts
| Shortcut | Action |
|---|---|
Space |
Stop currently playing Adhan audio |
R |
Force refresh prayer timings & API sync |
S |
Toggle calculation & sound settings drawer |
L |
Search and change location city |
M |
Toggle between Today's View and Monthly Timetable |
Esc |
Close panel |
🛠️ Installation & Activation
Method 1: Via Omarchy CLI (Recommended)
omarchy plugin add https://github.com/abdalrohman/omarchy-athan --enable
Method 2: Manual Installation
- Clone the repository into your Omarchy plugins directory:
git clone https://github.com/abdalrohman/omarchy-athan.git ~/.config/omarchy/plugins/abdulrahman.athan
- Enable the plugin in your center bar:
omarchy plugin enable abdulrahman.athan center
- Restart your Omarchy shell:
omarchy restart shell
⚙️ Configuration & State Persistence
State and user preferences are automatically saved at:
~/.local/state/omarchy/settings/athan.json
State loading is strictly bounded at the descriptor level (capped at 64 KiB via head -c 65537). If a state file is oversized or unreadable, the plugin safely falls back to defaults. Writes are atomic and symlink-safe.
📦 Dependencies & System Requirements
head(coreutils) from base system (used for descriptor-bounded state reads)python3(for atomic state writes and direct argv subprocess audio execution)omarchy-notification-send(from Omarchy desktop)- Audio player (
pw-play,paplay,mpv, orffplay) for Athan & chime playback
📄 License
Released under the MIT License by @abdalrohman.