mirror of
https://github.com/arthur-pbty/arthur-os.git
synced 2026-08-02 04:37:49 +02:00
53 lines
1.1 KiB
Bash
Executable File
53 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# omarchy:summary=Toggle nightlight screen temperature
|
|
# omarchy:args=[--status]
|
|
# omarchy:examples=omarchy toggle nightlight
|
|
|
|
ON_TEMP=4000
|
|
OFF_TEMP=6500
|
|
IDENTITY_TEMP=6000
|
|
|
|
current_temp() {
|
|
local output
|
|
|
|
output=$(hyprctl hyprsunset temperature 2>/dev/null) || return
|
|
grep -oE '[0-9]+' <<<"$output" | head -n1
|
|
}
|
|
|
|
status_json() {
|
|
local temp enabled
|
|
|
|
temp=$(current_temp)
|
|
if [[ -n $temp ]] && (( temp < IDENTITY_TEMP )); then
|
|
enabled=true
|
|
else
|
|
enabled=false
|
|
fi
|
|
|
|
jq -cn --argjson enabled "$enabled" --arg temp "$temp" \
|
|
'{enabled:$enabled, temperature:(($temp | tonumber?) // null)}'
|
|
}
|
|
|
|
if [[ ${1:-} == "--status" ]]; then
|
|
status_json
|
|
exit 0
|
|
fi
|
|
|
|
# Ensure hyprsunset is running
|
|
if ! pgrep -x hyprsunset >/dev/null; then
|
|
setsid uwsm-app -- hyprsunset &
|
|
sleep 1 # Give it time to register
|
|
fi
|
|
|
|
# Query the current temperature
|
|
CURRENT_TEMP=$(current_temp)
|
|
|
|
if [[ -z $CURRENT_TEMP || $CURRENT_TEMP == $OFF_TEMP ]]; then
|
|
hyprctl hyprsunset temperature $ON_TEMP
|
|
else
|
|
hyprctl hyprsunset temperature $OFF_TEMP
|
|
fi
|
|
|
|
omarchy-shell -q omarchy.indicators refresh
|