feat: add wlsunset nightlight toggle with Waybar module
All checks were successful
Update PKGBUILD version / update-pkgver (push) Successful in 3s

Add blue light filter support via wlsunset, toggleable through a Waybar
module in the brightness group. Nightlight icon is the primary element,
backlight slider expands on click.

- Add wlsunset package to official.txt
- Add moonarch-nightlight toggle script (kill/restart wlsunset)
- Add moonarch-waybar-nightlight status script (JSON output)
- Add custom/nightlight module to group/brightness in Waybar config
- Add Catppuccin Yellow highlight for active nightlight state
- Add wlsunset autostart in Niri config (5000K night temperature)
This commit is contained in:
nevaforget 2026-04-09 12:08:35 +02:00
parent f6869c9cea
commit 4c609135e9
7 changed files with 45 additions and 0 deletions

View File

@ -18,6 +18,15 @@ Laptops mit `charge_control_end_threshold`-Support (ThinkPad, Framework, etc.) e
- udev-Regel gibt Gruppe `wheel` Schreibzugriff auf den Threshold (kein sudo nötig)
- Auf Desktops ohne Battery-Support versteckt sich das Feature komplett
## Nightlight (Blaufilter)
Waybar-Toggle für wlsunset (Wayland-nativer Blaufilter):
- `wlsunset` startet per Niri-Autostart mit fester Nacht-Temperatur (5000K)
- Klick auf das Nightlight-Modul in `group/brightness` toggled wlsunset an/aus (kill/restart)
- Aktiver Zustand zeigt 󰌵 in Catppuccin Yellow, inaktiv 󰌶 in Standard-Textfarbe
- Signal SIGRTMIN+11 für sofortiges Waybar-Refresh
- Scripts: `moonarch-nightlight` (Toggle), `moonarch-waybar-nightlight` (Status-JSON)
## Konventionen
- Paketlisten sind einfache Textdateien, ein Paket pro Zeile, Kommentare mit `#`

View File

@ -0,0 +1,12 @@
#!/bin/bash
# ABOUTME: Toggles wlsunset night light on/off.
# ABOUTME: Kills or restarts wlsunset process, signals waybar for refresh.
if pgrep -x wlsunset > /dev/null; then
pkill -x wlsunset
else
wlsunset -T 6500 -t 5000 -S 00:00 -s 00:01 &
disown
fi
pkill -RTMIN+11 waybar

View File

@ -0,0 +1,9 @@
#!/bin/bash
# ABOUTME: Outputs JSON status for waybar nightlight module.
# ABOUTME: Shows warm icon when wlsunset is active, cool icon when off.
if pgrep -x wlsunset > /dev/null; then
jq -nc '{text: "󰌵", alt: "on", tooltip: "Nightlight: An (5000K)", class: "on"}'
else
jq -nc '{text: "󰌶", alt: "off", tooltip: "Nightlight: Aus", class: "off"}'
fi

View File

@ -86,6 +86,7 @@ spawn-at-startup "nm-applet" "--indicator"
spawn-sh-at-startup "waypaper --restore"
// spawn-sh-at-startup "nemo . &> /dev/null &"
spawn-sh-at-startup "foot --server"
spawn-at-startup "wlsunset" "-T" "6500" "-t" "5000" "-S" "00:00" "-s" "00:01"
// Clipboard history managed by cliphist.service (systemd user service)
hotkey-overlay {

View File

@ -61,6 +61,7 @@
"group/brightness": {
"orientation": "inherit",
"modules": [
"custom/nightlight",
"backlight",
"backlight/slider"
],
@ -304,6 +305,14 @@
"<span color='#dd532e' size='8pt' rise='1.5pt'>█</span>"
]
},
"custom/nightlight": {
"exec": "moonarch-waybar-nightlight",
"return-type": "json",
"interval": "once",
"signal": 11,
"on-click": "moonarch-nightlight",
"format": "{}"
},
"custom/cpugov": {
"exec": "moonarch-waybar-cpugov",
"return-type": "json",

View File

@ -257,6 +257,10 @@ widget widget>* {
color: alpha(@theme_selected_bg_color, 0.9);
}
#custom-nightlight.on {
color: #f9e2af;
}
menu {
border-radius: 4px;
}

View File

@ -63,6 +63,7 @@ waybar
swaync
cliphist
wl-clipboard
wlsunset
libnotify
upower
awww