Omahub
← All plugins
Y

Patro

by Yogesh Ojha

Nepali calendar for the Omarchy bar. Bikram Sambat date, month view, tithi, and a date converter.

Security review

No obvious issues detected

Deterministic scan — not a security guarantee

None
Risk level
None
Analyzed commit
9c07094
Scanned
1 month ago

No potentially dangerous behavior detected in the analyzed commit.

Automated analysis only — not a security guarantee.

AI advisory review

No obvious issues detected

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

None
AI risk level
None
Recommendation
install
Model
~deepseek/deepseek-v4-flash-latest
Analyzed commit
9c07094
Reviewed
1 month ago

This is a transparent Nepali calendar widget written in QML/JS with local astronomical calculations and no network, subprocess, eval, or install-time scripts. The code is clearly readable, well-tested, and uses only normal plugin APIs for settings, clipboard, and IPC. The deterministic scan's 'none' finding is confirmed.

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/yogeshojha/patro --enable
Widgets #bar #quickshell #system

Patro

Nepali calendar for the Omarchy bar. Bikram Sambat date, month view in Devanagari, tithi, holidays, and a BS ↔ AD converter.

The Patro panel

Install

omarchy plugin add https://github.com/yogeshojha/patro.git --enable

Devanagari comes from noto-fonts, already installed by Omarchy.

Optional keybind, in ~/.config/hypr/bindings.conf:

bindd = SUPER SHIFT, C, Patro, exec, omarchy-shell yogeshojha.patro toggle

Keys

Key
← → day
↑ ↓ week
[ ] or h l month
{ } or k j year
t today
g or / converter
Enter copy the selected date
Esc leave the converter, then close

Bar: left click opens the month view, right click cycles the label format, middle click copies today's date.

Converter

g, then a date in either field. Accepts 2083-05-01, 2083/5/1 and २०८३-०५-०१. Enter commits, Esc cancels.

Settings

Setup > Plugins.

Default
Language Nepali, English Nepali
Numerals Devanagari, Latin Devanagari
Bar format Full, Compact, Numeric, With Gregorian Full
Show weekday on
Week starts on Sunday, Monday Sunday
Show Gregorian dates on
Show tithi on
Font family empty inherits the bar font empty

Saturdays and public holidays are drawn in red. Ekadashi, Purnima and Aunsi are marked in the month view.

Range

BS 2000–2090, that is 14 April 1943 to 12 April 2034. Outside it the panel will not move. 2084 onward is provisional until the Panchanga Nirnayak Samiti publishes it.

Credits

Month lengths come from the Panchanga published by the Nepal Panchanga Nirnayak Samiti. The table was merged from these projects' data:

the-value-crew/nepali-calendar-api patro data: dates, tithi and holidays, used as ground truth
opensource-nepal/node-nepali-datetime month lengths (GPL-3.0)
medic/bikram-sambat month lengths (Apache-2.0)
amitgaru/nepali-datetime month lengths (Apache-2.0)
ashok095/bikram-sambat month lengths
anishbhimgc/django-bikram-sambat month lengths (MIT)
sharingapples/nepali-date month lengths

Solar and lunar positions follow Jean Meeus, Astronomical Algorithms, 2nd edition, chapters 25 and 47. Gregorian day numbering uses Howard Hinnant's civil algorithm.

Development

node --test tests/*.test.js          # 77 tests, no dependencies
node tools/build-table.js --check    # table matches its sources
node tools/build-table.js            # regenerate after editing sources.json
qmllint -I <import-root> *.qml
omarchy plugin validate .

Bikram.js calendar arithmetic, Astro.js sun and moon, Nepali.js names and formatting, Observances.js marked days, CalendarData.js the generated table. BarWidget.qml bar item, Panel.qml month view, DayCell.qml one day, ConverterView.qml the converter.

tests/harness.js runs the QML JavaScript modules under node.

Run omarchy-restart-shell after editing; hot reload caches stale compiles.

Remove

omarchy plugin remove yogeshojha.patro

MIT