A plugin to get prayer times and useful islamic essentials inside neovim
- complete offline calculation based on Equation of Time and Declination of Sun
- supports hanafi school of thought adjustments
- supported methods: MWL, ISNA, Egypt, Makkah, Karachi, Tehran, Jafari, France, Russia, Singapore.
- supports higher latitude adjustment
- per-prayer minute offsets to fine-tune calculated times
- lualine integration to display current waqt status
- Neovim >= 0.11
- plenary.nvim
- lualine (optional)
Install the plugin with your preferred package manager
{
"tajirhas9/muslim.nvim",
dependencies = {
"nvim-lua/plenary.nvim",
-- OPTIONAL
"nvim-lualine/lualine.nvim"
}
}muslim.nvim comes with the following defaults:
{
refresh = 1, -- Refresh interval in minutes to update prayer waqt times
latitude = nil, -- MANDATORY TO BE PROVIDED. Geolocation latitude of the place of calculation
longitude = nil, -- MANDATORY TO BE PROVIDED. Geolocation longitude of the place of calculation
utc_offset = 0, -- timezone, default is GMT+0
school = 'hanafi', -- school of thought
method = 'MWL', -- calculation method. default is Muslim World League
time_format = '12H', -- time display format: '12H' for 12-hour with AM/PM, '24h' for 24-hour
countdown_only = false, -- show only countdown to next prayer
offset = { -- per-prayer minute offsets to fine-tune calculated times
fajr = 0, -- negative values subtract, positive values add minutes
sunrise = 0,
dhuhr = 0,
asr = 0,
sunset = 0,
maghrib = 0,
isha = 0,
midnight = 0,
},
}local muslim = require("muslim")
muslim.setup({
latitude = 23.816237996387994,
longitude = 90.79664030627636,
timezone = 'Asia/Dhaka',
utc_offset = 6,
refresh = 5
})
muslim.nvim supports the following user commands.
| Command | Description |
|---|---|
:PrayerTimes |
Returns a table with formatted waqt times for the day |
|-------------------------|
| Waqt | Time |
|-------------------------|
| fajr | 05:05 AM |
| sunrise | 06:20 AM |
| dhuhr | 12:06 PM |
| asr | 04:15 PM |
| sunset | 05:53 PM |
| maghrib | 05:53 PM |
| isha | 07:03 PM |
| midnight | 12:06 AM |
|-------------------------|| Function name | Description |
|---|---|
prayer_time |
Returns a formatted text. Shows remaining time for current waqt (if valid) and start time of next waqt |
today_prayer_time_epochs |
Returns a table with all the waqt time (in epochs) for the day |
These functions can be used to enhance the behavior of the plugin. For example, create a scheduler with vim.schedule and show the prayer time as a popup notification for certain warnings.
If you want the prayer times to appear in the statusline, you have to update your lualine configuration to add the following to the section of the lualine you want the text to be.
{ muslim.prayer_time, id = "muslim.nvim" }To get something similar to the image above, the configuration can be as below:
require("lualine").setup({
sections = {
lualine_a = { { 'mode', icons_enabled = true, separator = { left = '' }, right_padding = 2 } },
lualine_b = { { 'filename', path = 1 }, 'branch' },
lualine_c = {
{ clients_lsp }
},
-- added muslim.nvim here
lualine_x = { { 'datetime', style = 'default' }, { muslim.prayer_time, id = "muslim.nvim", color = { fg = colors.blue } } },
lualine_y = { 'filetype', 'progress' },
lualine_z = {
{ 'location', separator = { right = '' }, left_padding = 2 },
},
}
})