Skip to content

Satur8 v0.3.3

Latest

Choose a tag to compare

@github-actions github-actions released this 02 Jul 03:05

Backend sweep plus a full code audit of the stateful paths.

  • The daemon now follows focus on every backend, not just KWin, and restores
    your desktop colors when it is stopped or restarted. A failed apply or a
    compositor hiccup no longer leaves it convinced a profile is active when it
    isn't, and if no backend is ready at startup it keeps retrying instead of
    staying dead for the session.
  • A broken profiles.toml no longer silently wipes your profiles: the daemon
    and GUI log the parse error and keep the last good set.
  • On NVIDIA, leaving a game restores the Digital Vibrance you actually had
    (say, from nvidia-settings autostart) instead of resetting it to zero.
  • Per-profile outputs now work: a profile listing specific monitors applies
    only to those. Applying to several monitors reports exactly which ones
    failed instead of claiming success if any single one worked.
  • Closing the GUI window exits the app unless the tray is running to bring it
    back, instead of leaving an invisible process behind. Activity-log
    timestamps are local time now, not UTC.
  • Profiles no longer match windows by profile name, so a profile called
    "Steam" can't recolor the Steam client itself.
  • Plumbing with no user-visible surface: one shared backend selector across
    CLI/GUI/tray/daemon, a restore-on-drop guard on every apply path, a fixed
    DRM kernel-blob leak, gamescope property rollback on partial failure, and
    NaN-proof saturation parsing everywhere input comes in.
  • Fix the nested gamescope fallback so its per-launch ReShade shader is written
    to the directory gamescope actually searches,
    $HOME/.local/share/gamescope/reshade/Shaders, instead of following
    XDG_DATA_HOME.
  • Verify satur8 run --via gamescope on KDE Wayland / AMD RX 9070 XT by
    wrapping glxgears in nested gamescope and comparing 0.0 vs 4.0
    screenshots.
  • Improve the DRM-CTM backend's multi-GPU behavior by preferring a card with an
    active CTM-capable CRTC and by applying the shared all output target to all
    active CTM-capable CRTCs.
  • Add DRM-CTM unit coverage for active CRTC detection, target resolution, and
    partial apply success/failure.
  • Keep DRM/KMS listed as Implemented rather than Verified; runtime apply/off
    verification remains deferred.