Skip to content

Conversation

@ArnoldSchiller
Copy link

Add calendar@projektit.de - Modern TypeScript Calendar Applet

Description

Complete TypeScript rewrite of calendar applet with modern architecture, replacing the outdated monolithic eventViewer.js approach used by existing calendar applets.

Key Features

  • 🏗️ Modern TypeScript architecture - Modular, maintainable codebase
  • 🎉 Advanced holiday system - Regional configurations, Easter calculations, historical rules
  • 📅 Event synchronization - Integration with Cinnamon Calendar Server (Evolution/Google Calendar)
  • 🌍 Smart translations - Three-tier fallback (applet → Cinnamon → GNOME Calendar)
  • Performance - AMD bundling for production, separated dev/prod builds
  • ⌨️ UX improvements - Better keyboard navigation, tooltips, responsive design

Technical Improvements over Existing Applets

  1. Replaces monolithic eventViewer.js (from 2012) with modular TypeScript
  2. Proper holiday calculations vs hardcoded or incomplete implementations
  3. Real event synchronization vs static or limited event handling
  4. Modern build system vs manual file concatenation
  5. Type safety vs plain JavaScript without types

Testing

  • Tested on Cinnamon 5.0-6.0
  • Multiple locale testing (DE, EN, ES, FR)
  • Holiday calculations verified for 2020-2030
  • Event synchronization tested with Evolution Calendar Server

Files Included

  • applet.js - Production bundle (TypeScript compiled to AMD)
  • metadata.json - Applet metadata and settings schema
  • CHANGELOG.md - Version history
  • screenshot.png - Applet in action
  • holidays/ - JSON holiday definitions
  • stylesheet.css - Optional styling

Notes for Reviewers

  • Uses existing Cinnamon/GNOME translations (no .po files required)
  • Backwards compatible with existing settings schema
  • No external dependencies except TypeScript for building
  • Follows Cinnamon applet development guidelines

Closes # (if applicable, otherwise remove)

Arnold Schiller added 2 commits January 2, 2026 00:24
	neue Datei:     calendar@projektit.de/5.4/CalendarView.js
	neue Datei:     calendar@projektit.de/5.4/applet.js
	neue Datei:     calendar@projektit.de/5.4/holidays/ar.json
	neue Datei:     calendar@projektit.de/5.4/holidays/be.json
	neue Datei:     calendar@projektit.de/5.4/holidays/bg.json
	neue Datei:     calendar@projektit.de/5.4/holidays/bn.json
	neue Datei:     calendar@projektit.de/5.4/holidays/bs.json
	neue Datei:     calendar@projektit.de/5.4/holidays/ca.json
	neue Datei:     calendar@projektit.de/5.4/holidays/cs.json
	neue Datei:     calendar@projektit.de/5.4/holidays/da.json
	neue Datei:     calendar@projektit.de/5.4/holidays/de.json
	neue Datei:     calendar@projektit.de/5.4/holidays/default.json
	neue Datei:     calendar@projektit.de/5.4/holidays/el.json
	neue Datei:     calendar@projektit.de/5.4/holidays/en.json
	neue Datei:     calendar@projektit.de/5.4/holidays/es.json
	neue Datei:     calendar@projektit.de/5.4/holidays/et.json
	neue Datei:     calendar@projektit.de/5.4/holidays/fa.json
	neue Datei:     calendar@projektit.de/5.4/holidays/fi.json
	neue Datei:     calendar@projektit.de/5.4/holidays/fr.json
	neue Datei:     calendar@projektit.de/5.4/holidays/ga.json
	neue Datei:     calendar@projektit.de/5.4/holidays/he.json
	neue Datei:     calendar@projektit.de/5.4/holidays/hr.json
	neue Datei:     calendar@projektit.de/5.4/holidays/hu.json
	neue Datei:     calendar@projektit.de/5.4/holidays/id.json
	neue Datei:     calendar@projektit.de/5.4/holidays/is.json
	neue Datei:     calendar@projektit.de/5.4/holidays/it.json
	neue Datei:     calendar@projektit.de/5.4/holidays/ja.json
	neue Datei:     calendar@projektit.de/5.4/holidays/kk.json
	neue Datei:     calendar@projektit.de/5.4/holidays/ko.json
	neue Datei:     calendar@projektit.de/5.4/holidays/lb.json
	neue Datei:     calendar@projektit.de/5.4/holidays/lt.json
	neue Datei:     calendar@projektit.de/5.4/holidays/lv.json
	neue Datei:     calendar@projektit.de/5.4/holidays/mt.json
	neue Datei:     calendar@projektit.de/5.4/holidays/nb.json
	neue Datei:     calendar@projektit.de/5.4/holidays/nl.json
	neue Datei:     calendar@projektit.de/5.4/holidays/nn.json
	neue Datei:     calendar@projektit.de/5.4/holidays/pl.json
	neue Datei:     calendar@projektit.de/5.4/holidays/pt.json
	neue Datei:     calendar@projektit.de/5.4/holidays/ro.json
	neue Datei:     calendar@projektit.de/5.4/holidays/ru.json
	neue Datei:     calendar@projektit.de/5.4/holidays/si.json
	neue Datei:     calendar@projektit.de/5.4/holidays/sk.json
	neue Datei:     calendar@projektit.de/5.4/holidays/sl.json
	neue Datei:     calendar@projektit.de/5.4/holidays/sr.json
	neue Datei:     calendar@projektit.de/5.4/holidays/sr@ijekavian.json
	neue Datei:     calendar@projektit.de/5.4/holidays/sr@ijekavianlatin.json
	neue Datei:     calendar@projektit.de/5.4/holidays/sr@latin.json
	neue Datei:     calendar@projektit.de/5.4/holidays/sv.json
	neue Datei:     calendar@projektit.de/5.4/holidays/tr.json
	neue Datei:     calendar@projektit.de/5.4/holidays/uk.json
	neue Datei:     calendar@projektit.de/5.4/holidays/uz.json
	neue Datei:     calendar@projektit.de/5.4/holidays/uz@cyrillic.json
	neue Datei:     calendar@projektit.de/5.4/holidays/vi.json
	neue Datei:     calendar@projektit.de/5.4/holidays/wa.json
	neue Datei:     calendar@projektit.de/5.4/holidays/zh.json
	neue Datei:     calendar@projektit.de/5.4/settings-schema.json
	neue Datei:     calendar@projektit.de/5.4/src/CalendarDay.ts
	neue Datei:     calendar@projektit.de/5.4/src/CalendarLogic.ts
	neue Datei:     calendar@projektit.de/5.4/src/CalendarView.ts
	neue Datei:     calendar@projektit.de/5.4/src/EventListView.ts
	neue Datei:     calendar@projektit.de/5.4/src/EventManager.ts
	neue Datei:     calendar@projektit.de/5.4/src/applet.ts
	neue Datei:     calendar@projektit.de/5.4/src/declarations.d.ts
	neue Datei:     calendar@projektit.de/5.4/stylesheet.css
	neue Datei:     calendar@projektit.de/CHANGELOG.md
	neue Datei:     calendar@projektit.de/README.md
	neue Datei:     calendar@projektit.de/metadata.json
	neue Datei:     calendar@projektit.de/po/calendar@projektit.de.pot
	neue Datei:     screenshot.png
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant