[FEATURE] Automated Day/Night Hyprsunset Scheduling via systemd user timers

Aperta
#1,828 2 commenti 0 reazioni 1 assegnatario Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@mylinuxforwork ci sta già lavorando.

Dal 8/9/2026.

Valutazione

Questa issue non è ancora stata valutata.

Descrizione

enhancement
Is your feature request related to a problem? Please describe.

Currently, ML4W provides ml4w-toggle-hyprsunset to switch the blue-light filter on and off manually via keybinding (SUPER + SHIFT + H).
While this works, users have to remember to press the shortcut every single evening. If the PC is booted after 20:00 or woken up from suspend, the screen remains at full cold brightness. A modern desktop night-light should ideally be fully automated based on the time of day (like Night Light on Android, iOS, Windows, or macOS) without requiring manual intervention every evening.

Describe the solution you'd like

A native, zero-overhead day/night scheduler using systemd user timers:

  1. Native systemd Timers (0% CPU Overhead):
    • Daily timer at 20:00 to enable the filter.
    • Daily timer at 07:00 to disable the filter.
    • Persistent=true ensures missed triggers (e.g. while suspended or powered off) execute immediately upon resume.
  2. Boot / Login Session Sync:
    • A lightweight init script run on Hyprland startup checks the current hour. If the PC boots at 22:00, it immediately applies the warm filter without waiting for the next timer.
  3. Consistent Manual Toggle:
    • The manual shortcut toggles the hyprsunset.service via systemctl --user, keeping the timer states and manual overrides completely in sync.
  4. Dynamic Temperature:
    • Automatically reads the desired Kelvin value from ~/.config/ml4w/settings/hyprsunset-temp (default: 4500K).
Describe alternatives you've considered
  1. Background loop in Bash (while true; sleep 60): Wastes CPU cycles, adds unnecessary background processes, and can easily desync during system suspend.
  2. GLSL Fragment Shaders (like PR #1819): Great for grayscale or color inversion, but for blue-light filtering, hyprsunset with hardware gamma LUTs is superior (keeps screenshots un-tinted, supports arbitrary Kelvin values, 0% GPU overhead).
  3. External daemons (wlsunset, gammastep): Unnecessary since hyprsunset is already the official tool and part of ML4W.
Additional context

I have already tested this entire architecture thoroughly in daily use with zero issues.
I've attached the complete, ready-to-use package (including all 5 systemd unit files, helper scripts, automated install script, and documentation) as a ZIP file so you can easily review and test it whenever you have time.

ml4w-hyprsunset-scheduler.zip

Support or Contribution
Lingua principale
QML
Stelle
5.1k
Fork
386
Merge medio
16h 45m
PR unite (30g)
14

Preparare l'ambiente

  • Nessun Dockerfile né file Docker Compose
  • Ha un modello di pull request
  • Nessuna guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di mylinuxforwork/dotfiles

Tutte le issue di mylinuxforwork/dotfiles

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.