Skip to content

Repository files navigation

Quickshell Prayer Times

A prayer-times widget for Quickshell on Wayland. It shows a live countdown to the next prayer and a popup with the full day's schedule. Times are scraped from sajda.com for any city, with a selectable Asr madhab.

Use it either as a standalone bar (works on any compositor, no dotfiles needed) or as a native widget in the illogical-impulse / end-4 bar.

Standalone illogical-impulse (end-4)
standalone illogical-impulse

Features

  • Live countdown to the next prayer, with the full daily schedule on hover/click
  • Next prayer highlighted; Tahajjud omitted; all times in your local timezone
  • Configurable location (any sajda.com city) and madhab (Shafi'i / Hanafi)
  • Pure Python stdlib for fetching/parsing (no extra deps), with a 6h disk cache

Choose your install

Standalone — any Wayland compositor

Self-contained wlr-layer-shell panel; no shell/dotfiles required. Works on Hyprland, Sway, river, Niri, etc.

git clone https://github.com/Shyvve/quickshell-prayer-times.git
cd quickshell-prayer-times
cp config.example.json ~/.config/quickshell-prayer-times/config.json
$EDITOR ~/.config/quickshell-prayer-times/config.json   # set your city
qs -p standalone/shell.qml

→ details & appearance options in standalone/README.md.

illogical-impulse (end-4) — native bar widget

Integrates next to the clock and matches your Material You theme.

git clone https://github.com/Shyvve/quickshell-prayer-times.git
cd quickshell-prayer-times
./integrations/illogical-impulse/install.sh   # then two small manual edits

→ full steps in integrations/illogical-impulse/README.md.

Configuration

Key Meaning
country, city, locationId From the sajda.com URL of your city (see below)
label Text shown in the popup header
madhab "shafi" or "hanafi" (changes the Asr time)
locale sajda.com locale prefix, e.g. "en", "ru"
  • Standalone reads these from ~/.config/quickshell-prayer-times/config.json (see config.example.json).
  • illogical-impulse reads them from Config.options.bar.prayerTimes.

Finding your city's values

Open your city on sajda.com and read the URL:

https://sajda.com/en/prayer-times/kazakhstan/almaty/1526384
                                  └ country ┘ └ city ┘ └id┘

You can sanity-check the data straight from the script:

python3 prayertimes.py --country turkey --city istanbul --location-id 745044 --label "Istanbul"

CLI flags override the config file, which overrides the built-in defaults.

How it works

prayertimes.py fetches the monthly sajda.com page, which embeds a Next.js payload with per-day UTC timestamps (fajr, sunrise, dhuhr, asr, asr_shafi, maghrib, isha). It converts them to the local timezone, picks the requested madhab's Asr, drops Tahajjud, and prints today's schedule plus tomorrow's Fajr as JSON. The QML side runs it and ticks a 1-second countdown to the next prayer.

License

MIT — see LICENSE.

Not affiliated with sajda.com. Prayer-time data belongs to sajda.com; this is an unofficial widget for personal use.

About

Prayer times widget for the illogical-impulse (end-4) Quickshell bar — sajda.com source, configurable location & madhab

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages