KNightTime in KDE Review
Vlad Zahorodnii <[email protected]> Thu, 29 May 2025 21:02:15 +0300
| Newsgroups | gmane.comp.kde.devel.plasma,gmane.comp.kde.devel.core |
|---|---|
| Message-ID | <[email protected]> |
Hello, KNightTime (https://invent.kde.org/vladz/knighttime) provides scheduling helpers for the dark-light cycle. Intended users are KWin, plasmashell. It can be used for Night Light, Day/Night wallpapers, changing the color scheme or the desktop theme based on time of day. Currently, the problem is that one has to write a bit of code to properly calculate transition timings. Also, they have to provide some options to configure the timings. If there are multiple features that synchronize to the dark-light cycle, it's going to be inconvenient to configure them one by one. KNightTime provides a client library and a daemon that clients can subscribe to for timing updates. Also, KNightTime can be used without a daemon. In that case, it is up to you to expose configuration options, etc. With a daemon, only it has to be configured. Another bonus point in favor of a daemon is that for some projects, it would be nice not to link with geolocating libraries, e.g. KWin, to keep the dependencies somewhat reasonable. https://invent.kde.org/plasma/kwin/-/tree/work/zzag/knighttime?ref_type=heads shows how to port Night Light to KNightTime. When the daemon is used, the geolocation data is not shared with the client for privacy reasons. The daemon sends a forecast of transitions for upcoming N days. If the client runs out of that forecast, it'll extrapolate the schedule from the last received day, although in practice it should happen rarely, until the daemon provides a new update. The intended place for KNightTime to live is plasma. Regards, Vlad