feat: add mawaqit plugin#53
Conversation
|
Readme need some love, see other plugins or the README_TEMPLATE.md
The Plugin table only records fully qualified entry IDs. The validator requires the manifest ID ycf/mawaqit and the entry IDs bar, panel, and fetcher to be documented separately. This produces four validator errors and fails CI. Rework this section to follow the repository README template.
The azan path is hard-coded to ~/.local/share/noctalia/plugins/mawaqit/assets. Git-source plugins are materialized elsewhere, and path-source plugins remain in their configured directories, so normal community installations and the documented development setup cannot find the bundled audio. Construct the path from noctalia.pluginDir().
Stopping playback uses broad pkill -f patterns that can terminate unrelated paplay or pw-cat processes whose command lines contain "azan". This is unsafe cross-process behavior. Track and terminate only playback started by this plugin. The currently invoked pkill command is also absent from the declared dependencies.
The package declares only MIT licensing, but DecoType.ttf identifies a third-party DecoType copyright and "MS Office Edition", while bundled MP3 metadata identifies a third-party website. No applicable asset licenses, provenance, or redistribution notices are included. Provide the relevant redistribution licenses and attribution, or replace the assets with clearly redistributable alternatives.
The usage instructions reverse the controls. The implementation opens the panel on left click and cycles display mode on right click, while the README says the opposite. |
Plugin
ycf/mawaqitplugin.toml)What it does
Provides prayer times for Noctalia using Aladhan, with a bar widget and panel view featuring a live countdown to the next prayer, prayer notifications, optional azan playback, Hijri date display, and configurable per-prayer minute offsets. Prayer times are fetched daily from the Aladhan API.
External dependencies
paplayorpw-cat(optional): used to play the bundled azan audio.api.aladhan.com: used to retrieve today's and tomorrow's prayer times.Testing
Tested by:
Opening the panel.
Using the bar widget.
Verifying the countdown to the next prayer.
Testing notifications for all prayers.
Testing optional azan playback.
Changing plugin settings (city, country, calculation method, school, offsets) and verifying updated prayer times.
Verifying Hijri date display.
Tested on Niri
Tested on Hyprland
Tested on Sway
Tested on another compositor:
Noctalia version tested against: v5
Plugin API level: 3
Screenshots / Videos
Checklist
idafter the/inplugin.tomlexactly.plugin.toml,README.md,thumbnail.webp, andtranslations/en.json.README.mdfollows the README template, documents every entry id and dependency, and includes exact panel IPC commands and launcher prefixes where applicable.thumbnail.webpwith the thumbnail generator.versionfollows semver and is bumped in this PR;plugin_apiis the oldest API level this plugin requires.catalog.toml; CI generates it.Code review attestation
Plugins run as trusted, unsandboxed Luau in the user's session. Confirm:
licensedeclared inplugin.toml.Network
api.aladhan.com/v1/timingsByCityfor today's and tomorrow's prayer times using the configured city, country, calculation method, and school.Filesystem
Processes
paplayorpw-cat(whichever is available) to play the bundled azan audio and terminates playback when stopped or when the plugin exits.