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

Reply via email to