Omahub
← All plugins
A

Athan

by abdalrohman

Islamic prayer times, live countdown to next athan, monthly prayer timetable, rich athan audio customization, and Qibla compass

Security review

Review recommended · 2 findings

Deterministic scan — not a security guarantee

Medium
Risk level
Medium
Analyzed commit
4c6571d
Scanned
1 month ago
  • medium external_hosts Panel.qml:662

    Downloads or connects to an external HTTP(S) host.

    curl -4 -fsS -L --max-time 5 https://ipwho.is/ | head -c 16385"
  • Docs external_hosts README.md:147

    Downloads or connects to an external HTTP(S) host.

    git clone https://github.com/abdalrohman/omarchy-athan.git ~/.config/omarchy/plugins/abdulrahman.athan

Automated analysis only — not a security guarantee.

AI advisory review

Review recommended

Language-model assessment · ~deepseek/deepseek-v4-flash-latest — advisory only

Medium
AI risk level
Medium
Recommendation
review
Model
~deepseek/deepseek-v4-flash-latest
Analyzed commit
4c6571d
Reviewed
1 month ago

The plugin is a legitimate prayer-times widget with local astronomy calculations and bundled audio; the scan's README finding is only a documented install command. The real concern is Panel.qml's automatic curl to ipwho.is, which sends the user's public IP to a third party when no location is configured and is not clearly disclosed in the README.

  • Panel.qml performs an automatic runtime request to https://ipwho.is/ (capped at 16 KB output), exposing the user's public IP to a third-party geolocation service; this should be disclosed or made opt-in.
  • No obfuscation, persistence, credential theft, or destructive commands were found; external audio-player and python subprocesses are used for their documented purposes.
How this check works

This review combines the deterministic scan (the rule-based results above) with an independent look at the plugin's code by a language model. The model reads a trimmed sample of the repository's files, the manifest, and the README, then gives a plain-language risk level and a recommendation: install (no notable danger), review (look closer first), or avoid (clearly dangerous).

It runs on the same analyzed commit as the deterministic scan and is strictly advisory — it is not a security guarantee and never blocks a plugin by itself. A human moderator still reviews plugins before they are listed.

AI advisory only — automated analysis, not a security guarantee.

Install
$ omarchy plugin add https://github.com/abdalrohman/omarchy-athan --enable
Widgets #bar #quickshell

Omarchy Athan Plugin (abdulrahman.athan)

Omarchy Plugin Author License: MIT Version

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):
    1. [Icon] Next in Xm (e.g. 🕌 Asr in 42m)
    2. [Icon] Next at Time (e.g. 🕌 Asr 15:53)
    3. [Icon] Full Countdown (e.g. 🕌 Asr 00:42:15)
    4. [Icon] Time Only (e.g. 🕌 15:53)
    5. [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.
  • Main Prayer Times:
    • Fajr (🌙), Sunrise (Shuruq 🌅), Dhuhr (☀️), Asr (🌤️), Maghrib (🌇), and Isha (🌌).
    • Badges for ACTIVE (current prayer window) and NEXT (upcoming prayer).
  • Night Prayers & Extra Timings:
    • Imsak (إمساك - fasting start margin 🌙).
    • Islamic Midnight (نصف الليل - halfway point between sunset and fajr 🌃).
    • Tahajjud / Last Third of the Night (ثلث الليل الآخر - قيام الليل ✨).
  • 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.
  • Hijri Date:
    • Displays Arabic and English Hijri dates (e.g. 10 Rabīʿ al-Awwal 1448 هـ) with customizable moon-sighting adjustment.

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 .mp3 or .wav audio file (e.g. /home/user/Music/my_athan.mp3), with preview/test buttons.
  • 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.

⚙️ Precision Calculation & Settings

  • 18+ Calculation Authorities:
    1. Umm Al-Qura University (Makkah)
    2. Muslim World League (MWL)
    3. Egyptian General Authority of Survey
    4. Islamic Society of North America (ISNA)
    5. University of Islamic Sciences, Karachi
    6. Gulf Region / UAE
    7. Kuwait
    8. Qatar
    9. Majlis Ugama Islam Singapura (MUIS)
    10. Diyanet İşleri Başkanlığı (Turkey)
    11. Union des Organisations Islamiques de France (UOIF)
    12. Dubai (UAE)
    13. Jabatan Kemajuan Islam Malaysia (JAKIM)
    14. Tunisia
    15. Algeria
    16. Kementerian Agama RI (Indonesia)
    17. Morocco (Ministry of Habous)
    18. Jordan (Ministry of Awqaf)
    19. Institute of Geophysics, University of Tehran
    20. 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 min during 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

  1. Clone the repository into your Omarchy plugins directory:
git clone https://github.com/abdalrohman/omarchy-athan.git ~/.config/omarchy/plugins/abdulrahman.athan
  1. Enable the plugin in your center bar:
omarchy plugin enable abdulrahman.athan center
  1. 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, or ffplay) for Athan & chime playback

📄 License

Released under the MIT License by @abdalrohman.