Skip to content

Releases: danielcwtts/cosmic-nightlight

v0.4.0 — Night Light

Choose a tag to compare

@github-actions github-actions released this 30 Jul 02:56

The applet now keeps to the schedule by itself, so nothing has to run in the background for your screen to warm up on time.

⚠️ Changed: the "Start on login" toggle is gone. It existed only to launch the headless daemon, and with the applet doing the scheduling there was nothing left for it to add. Upgrading removes the autostart entry earlier versions wrote (including pre-rename nightshift ones). If you'd rather not keep the applet on your panel, enable the service by hand instead: systemctl --user enable --now cosmic-nightlight.service.

New

  • Minute-precise scheduleFrom and To each pick an hour, minute, and AM/PM (or a 24-hour clock, following your COSMIC time setting) rather than whole hours, and the Schedule row summarizes the result, e.g. Warm from 9:30PM to 6:00AM. Existing whole-hour settings are read and carried over.
  • Brightness slider — dims the screen while the night light is on. Floored at 50%: the dimming works by crushing the gamma ramp rather than driving the backlight, so a fully black screen would have no obvious way back.
  • No background service needed — the applet re-checks the clock every 15 seconds and warms or clears the screen when a schedule boundary passes; the settings window does the same while it is open. The headless --daemon is still shipped as an opt-in systemd user unit for anyone running without the applet.

Fixed / hardened

  • A daytime schedule stays daytime — a window that ends later in the day than it starts (9:00AM5:00PM) was treated as wrapping past midnight and left the tint on around the clock. Only a window that ends earlier wraps now, so office-hours schedules work.
  • The tint comes back after suspend — a resume reprograms the CRTCs and drops the gamma ramp we wrote. That is now detected and re-applied, instead of the night light staying silently off until the next scheduled transition.
  • The UI no longer freezes on a change — applies run on a background thread and coalesce, so flipping the toggle or dragging a slider can't stall the applet for the second an apply takes (pkexec, polkit, and a VT bounce).
  • One flicker, not several — every process serializes applies through an advisory lock and shares a record of what is on screen, so several of them noticing the same boundary apply it once, and re-applying an unchanged tint is skipped entirely. Failed applies back off exponentially instead of retrying every tick.
  • Sliders stay put — neither slider jumps out from under the pointer when another window writes a setting mid-drag.
  • uninstall.sh clears a systemd enablement symlink that was left dangling when the unit file itself was already gone.

Other

  • The settings window opens tall enough to show every section without scrolling.
  • The README now explains what applies the schedule and how to run without the applet; the settings screenshots are refreshed for the new window.

Full changelog: v0.3.1...v0.4.0

Install

  1. Download cosmic-nightlight_0.4.0-1_amd64.deb from the Assets section below.
  2. Open the downloaded file with the COSMIC Store and click Install.
    (Or from a terminal: sudo apt install ./cosmic-nightlight_0.4.0-1_amd64.deb.)
  3. Add the applet to your bar: COSMIC Settings → Desktop → Panel (or
    Dock) → Configure applets → Add applet → Night Light.

v0.3.1 — Night Light

Choose a tag to compare

@github-actions github-actions released this 15 Jun 21:23

A bug-fix release focused on the "Start on login" toggle and clean uninstalls.

Fixed

  • "Start on login" is honored again — the systemd user service is no longer globally enabled at install (dh_installsystemduser --no-enable), so the in-app toggle (an XDG autostart entry) is the single source of truth for whether the daemon runs at login.
  • Existing installs self-heal on upgradepostinst undoes any prior global enablement and removes the orphaned pre-rename nightshift unit.
  • Tint no longer persists after uninstalluninstall.sh stops and disables the daemon, removes the autostart entry, and resets the screen tint before deleting files — no more warm screen or a daemon re-tinting on next login.
  • Honest toggle after the renameautostart cleans up and reports legacy nightshift autostart entries, so is_enabled() is truthful.

Other

  • Rewrote the README to lead with the panel/dock applet and the .deb + COSMIC Store install flow; build-from-source moved to a development section.

Full changelog: v0.3.0...v0.3.1

Install

  1. Download cosmic-nightlight_0.3.1-1_amd64.deb from the Assets section below.
  2. Open the downloaded file with the COSMIC Store and click Install.
    (Or from a terminal: sudo apt install ./cosmic-nightlight_0.3.1-1_amd64.deb.)
  3. Add the applet to your bar: COSMIC Settings → Desktop → Panel (or
    Dock) → Configure applets → Add applet → Night Light.

v0.3.0 — Night Light

Choose a tag to compare

@danielcwtts danielcwtts released this 15 Jun 19:09

The project has been renamed from "Night Shift" to "Night Light." Crates, binaries, the app ID, desktop entries, the polkit rule, and the systemd unit are all renamed (cosmic-nightlight*, io.github.cosmic_nightlight). The repository moved to danielcwtts/cosmic-nightlight (the old URL redirects).

⚠️ Breaking: settings now live under ~/.config/cosmic/io.github.cosmic_nightlight/, so configuration from earlier versions is not migrated automatically. Re-run ./scripts/install.sh, and remove any old cosmic-nightshift* binaries and the old polkit rule if you installed them (or use ./scripts/uninstall.sh against an old checkout).

New

  • Manual override — toggling the tint on/off against the schedule now forces that state until the next sunset/sunrise transition, after which automatic scheduling resumes.
  • Live settings sync — the applet, settings window, and daemon share state through a cosmic_config file watcher, so a change in one is reflected in the others immediately.
  • Settings-window parity — it mirrors the applet's on/off toggle and temperature slider, shows a schedule status line (e.g. "On until 6:00AM"), follows the system 12/24-hour clock, and enforces a minimum window size.

Fixed / hardened

  • The daemon waits for the graphical session to be the foreground VT before touching DRM at login, avoiding a race that could strand you on a spare TTY.
  • Failed gamma applies now retry with backoff instead of being assumed successful (fixes the tint occasionally not coming up at login).

Other

  • Added scripts/uninstall.sh.

Full changelog: v0.2.0...v0.3.0

Install

  1. Download cosmic-nightlight_0.3.0-1_amd64.deb from the Assets section below.
  2. Open the downloaded file with the COSMIC Store and click Install.
    (Or from a terminal: sudo apt install ./cosmic-nightlight_0.3.0-1_amd64.deb.)
  3. Add the applet to your bar: COSMIC Settings → Desktop → Panel (or
    Dock) → Configure applets → Add applet → Night Light.

v0.2.0 — Night Shift

Choose a tag to compare

@github-actions github-actions released this 15 Jun 04:19

⚠️ TEMPORARILY PAUSED DOWNLOADS — please don't install 0.2.0.

A critical bug was found: autostarting the app on login crashes the graphical environment and drops you into a TTY command prompt. This was fixed in v0.3.0 — please use the latest release instead.

If you downloaded this version and are stuck at the TTY prompt:

  1. Log in with your username and password.
  2. Remove the autostart file: rm ~/.config/autostart/io.github.cosmic_nightshift.desktop
  3. Restart your system: sudo reboot

For now, please download v0.1.0 until this is patched. To uninstall this file, run this script — uninstall.sh. Thank you for your understanding.


Night Shift's UI moves out of a single window and into the COSMIC panel.

New

  • Panel applet — the on/off toggle and temperature slider now live in a status-bar applet popup, one click from the bar (or dock).
  • Separate settings window — autostart, schedule mode, sunset/sunrise hours, and the night temperature move to a dedicated --settings window.
  • Shared state — the applet, settings window, and --daemon all share state through cosmic_config, so a change in one shows up in the others.

Fixed / hardened

  • The daemon now applies the saved tint immediately on startup and follows the configured schedule, instead of waiting for the next transition.

Full changelog: v0.1.0...v0.2.0

Install

  1. Download cosmic-nightlight_0.2.0-1_amd64.deb from the Assets section below.
  2. Open the downloaded file with the COSMIC Store and click Install.
    (Or from a terminal: sudo apt install ./cosmic-nightlight_0.2.0-1_amd64.deb.)
  3. Add the applet to your bar: COSMIC Settings → Desktop → Panel (or
    Dock) → Configure applets → Add applet → Night Shift.

v0.1.0 — Night Shift

Choose a tag to compare

@github-actions github-actions released this 15 Jun 03:28

First public release of Night Shift — a night-light / color-temperature utility for the COSMIC desktop (Pop!_OS).

COSMIC's compositor doesn't yet expose a gamma protocol, so tools like wlsunset, gammastep, and redshift can't tint the screen. Night Shift works around that by writing the gamma ramp straight to the kernel's DRM/KMS layer through a small root helper.

Highlights

  • Direct gamma control — warms the screen by writing gamma ramps to DRM/KMS, finer-grained than DDC/CI presets and working on laptop internal panels.
  • GUI app — an on/off toggle, a color-temperature slider, and a schedule selector (Manual or Sunset to Sunrise).
  • Background daemon — a --daemon mode that applies the tint and follows the schedule.
  • Minimal privileged surface — a three-crate workspace (nightshift-core, nightshift-helper, cosmic-nightshift) keeps the root code (invoked via polkit/pkexec) tiny and separate from the GUI.
  • Packaged & automated — ships as a .deb, with a GitHub Actions workflow that builds the package and publishes releases on tag.

Full changelog: https://github.com/danielcwtts/cosmic-nightshift/commits/v0.1.0

Install

  1. Download cosmic-nightshift_0.1.0-1_amd64.deb from the Assets section below.
  2. Open the downloaded file with the COSMIC Store and click Install.
    (Or from a terminal: sudo apt install ./cosmic-nightshift_0.1.0-1_amd64.deb.)
  3. Launch Night Shift from your app library (or run cosmic-nightshift)
    to open the on/off toggle and temperature window.