19 releases (stable)

new 1.9.2 Dec 13, 2024
1.9.1 Aug 10, 2024
1.8.0 Jun 18, 2024
1.7.0 Sep 3, 2023
0.1.8 Apr 22, 2021

#102 in Date and time

GPL-3.0-only

140KB
442 lines

Bilal

Sponsor me

demo


bilal is a CLI salah time.

Features

  • Everything works completely offline.
  • Display all salah times for the current day.
  • Show the current salah time and its remaining time.
  • Display the next salah time.
  • Use both 12-hour and 24-hour formats.
  • Fancy error message

Usage

bilal all                            Show all salahs time
bilal current                        ... current salah time
bilal current --json                  .... with JSON format

To configure Bilal, first create a file named config.toml in ~/.config/bilal/ on Unix-like systems. On Windows, place it under \AppData\Bilal\. If you prefer a custom location, simply set the BILAL_CONFIG environment variable.

Next, add your configuration details to the config.toml file:

latitude = -6.18233995
longitude = 106.84287154
madhab = "Shafi"
method = "Egyptian"

To see more options, please read the wiki

Integration with other programs

You can use Bilal with i3status-rust to show salah time in your status.

i3status-rust-bilal

i3status-rust-bilal-urgent

i3status-rust configuration Example:

[[block]]
block = "custom"
cycle = [
        "bilal current -J",
        "bilal next -J",
        ]
on_click = "<command>"
interval = 300
json = true

See more examples to learn other variations.

If you like bilal to support your favourite status-bar, please open new issue with the valid input of your status-bar. In i3status-rust the valid input it would be {"icon": "ICON", "state": "STATE", "text": "YOURTEXT"}.

Installation

From binaries

The release page includes pre-compiled binaries for GNU/Linux, macOS and Windows.

From source

Using cargo-binstall

cargo binstall bilal

Using Rust's package manager cargo:

cargo install bilal

Development

git clone https://github.com/azzamsa/bilal

# Build
cd bilal
cargo build

# Run unit tests and integration tests
cargo test

# Install
cargo install --path .

Contributing

To learn more read contributing.md

Origin of the name

The name Bilal was chosen in reference to the Bilal bin Rabah. The first mu'azzin, chosen by Muhammad PBUH himself.

License

Copyright (c) 2020-2024 azzamsa

Bilal is distributed under the terms of GPL V3 License.

Dependencies

~8–16MB
~208K SLoC