🗓️ Displays Persian (Iranian/Jalali) calendar in the top panel It offers: 1. Displays the Persian/Iranian/Jalali calendar 2. Holiday indicator 3. Day change notifications 4. Converts dates between the Persian, Gregorian, and Hijri (lunar) calendars 5. Event listings: 5.1. Official solar events 5.2. Official lunar events 5.3. Official international events 5.4. Traditional Persian events 5.5. Notable Persian figures Please “rate” 💓 the project here and give it a 🌟 on GitHub. If you encounter any issues or have suggestions, feel free to open an issue there on GitHub! Keywords: فارسی / جلالی / تقویم / ایران / ایرانی / گاهشمار / گاهشمار / گاهشماری / گاهشماری / شمسی / خورشیدی / قمری / میلادی / هجری / Iran / Iranian / Jalali / Persian / Calendar
Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.
1. You cannot import `Gtk` and `Gdk` to the GNOME Shell process: - line 4-5 `Calendar.js` - line 3 `utils/locale.js` [EGO Review Guidelines: import](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#do-not-import-gtk-libraries-in-gnome-shell) 2. Don't use old `imports`: - line 9-12 `extension.js` - line 5-8 `prefs.js` - line 5 `utils/file.js` - line 3 `utils/gettext.js`
1. So it means I can import them (Gtk & Gdk) for prefs. But I need locale in both prefs and extension files. When I use Clutter, all users need to install an extra package for Clutter (clutter-gtk or gir1.2-gtkclutter-1.0 or ...) to be able to see prefs. The only _ugly_ solution came to my mind to avoid users from installing a new package is to have two locale files, one for prefs and one for extension. Right? 2. Oops, thanks, I thought it's the new way, I forgot it's the old way.
The error they get when they open prefs is: Error: Requiring Clutter, version none: Typelib file for namespace 'Clutter' (any version) not found Stack trace: require@resource:///org/gnome/gjs/modules/esm/gi.js:16:28 @gi://Clutter:3:25 _init/GLib.MainLoop.prototype.runAsync/</<@resource:///org/gnome/gjs/modules/core/overrides/GLib.js:263:34
You shouldn't import clutter in prefs. If the file is getting loaded in the shell process, you should use `Clutter` or `St`. If it is loaded in prefs, you should use `Gtk`. For a file like `utils/locale.js` the best practice is to get them in the `constructor()`: ```js constructor(gettext, defaultDirection, textDirection) { ``` So, that would be easy to manage since you can send proper value from the entry point. If you don't like sending a const as dependency, you can recreate that as a const at the top: ```js const TextDirectionRTL = 2; ``` There are other ways for a file to load specific modules in each process, but AFAICS, you don't need those here.
Thanks a lot. So I pass defaultDirection from outside and use the following code for direction. Is `freeze` ok in gnome-shell? ```js const Direction = Object.freeze({ NONE: 0, LTR: 1, RTL: 2, }); ```
Yes, it is ok. No problem with that.
Thanks a lot