A chronological list of changes in the Luna environment: new applications, panel integration, fixes and packaging work. No marketing noise — only what actually landed in the code.
The project is no longer a monorepo shipped as one tarball. GitHub (LunaDesktop) now hosts separate repositories: libLuna, luna, selene, clock, files, media, settings, store, terminal, eq, luna-demo and luna-greeter. Each package can now be built and released independently.
A new libLuna application combines a local and world clock, multiple time zones, a timer, a stopwatch and a private calendar. Events stay local, holidays work offline, and .ics files can be imported and exported. The light/dark theme switches automatically at the hours you choose — even after the app is closed, because the shell follows the same schedule.
The panel shows event and holiday dots, the day plan with the holiday name and a button that opens the calendar. Closing the app with a running timer or stopwatch leaves a compact widget below the bar; clicking it returns to the right tab. A finished countdown disappears from the widget and moves to notifications.
The time column is now measured from the actual text width, so the “All day” label no longer overlaps the event title. Holidays for the selected country are also visible in the panel calendar, not only inside the application.
PaganOS recipes now build every part of Luna from its own repository, pinned to a specific commit. The luna-desktop metapackage was added, and the old pagande recipe was removed. Every environment package builds with pagbuild.
The greetd frontend now has a standalone repository: source, greeter session script, greetd config example, default wallpaper and documentation. The unit tests pass, and the luna-greeter package is part of the metapackage.
Older changes are covered by the developer guides and the architecture pages. The compositor protocol status is kept up to date in the Selene documentation.