diff options
| author | Don Williams <don.e.williams@gmail.com> | 2025-10-05 14:36:19 -0400 |
|---|---|---|
| committer | Don Williams <don.e.williams@gmail.com> | 2025-10-05 14:36:19 -0400 |
| commit | 5c41160260900398b8f9440edf0c735946187e90 (patch) | |
| tree | 25de05a1c376dd2294adb7bafa84797a833ef38f | |
| parent | 0c5e7e9de06cc7e786974a3ee5b8e7bda517d219 (diff) | |
feat(hyprsunset): add Hyprsunset toggle script, SUPER+N keybind, and Waybar nightlight button across all layouts; include in status and vertical power groups
23 files changed, 122 insertions, 6 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..d20a9670 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +WARP.md +.warp.md +result diff --git a/config/hypr/UserConfigs/UserKeybinds.conf b/config/hypr/UserConfigs/UserKeybinds.conf index 2f0e808f..d8a1d52e 100644 --- a/config/hypr/UserConfigs/UserKeybinds.conf +++ b/config/hypr/UserConfigs/UserKeybinds.conf @@ -29,6 +29,7 @@ bind = $mainMod, H, exec, $scriptsDir/KeyHints.sh # help / cheat sheet bind = $mainMod ALT, R, exec, $scriptsDir/Refresh.sh # Refresh waybar, swaync, rofi bind = $mainMod ALT, E, exec, $scriptsDir/RofiEmoji.sh # emoji menu bind = $mainMod, S, exec, $scriptsDir/RofiSearch.sh # Google search using rofi +bind = $mainMod SHIFT, S, exec, rofi -show windows # list/switch apps using rofi bind = $mainMod ALT, O, exec, $scriptsDir/ChangeBlur.sh # Toggle blur settings bind = $mainMod SHIFT, G, exec, $scriptsDir/GameMode.sh # Toggle animations ON/OFF bind = $mainMod ALT, L, exec, $scriptsDir/ChangeLayout.sh # Toggle Master or Dwindle Layout @@ -55,6 +56,9 @@ bind = $mainMod CTRL ALT, B, exec, pkill -SIGUSR1 waybar # Toggle hide/show wayb bind = $mainMod CTRL, B, exec, $scriptsDir/WaybarStyles.sh # Waybar Styles Menu bind = $mainMod ALT, B, exec, $scriptsDir/WaybarLayout.sh # Waybar Layout Menu +# Night light toggle (Hyprsunset) +bind = $mainMod, N, exec, $scriptsDir/Hyprsunset.sh toggle + # FEATURES / EXTRAS (UserScripts) bind = $mainMod SHIFT, M, exec, $UserScripts/RofiBeats.sh # online music using rofi bind = $mainMod, W, exec, $UserScripts/WallpaperSelect.sh # Select wallpaper to apply diff --git a/config/hypr/scripts/Hyprsunset.sh b/config/hypr/scripts/Hyprsunset.sh new file mode 100755 index 00000000..68e5fab8 --- /dev/null +++ b/config/hypr/scripts/Hyprsunset.sh @@ -0,0 +1,77 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Hyprsunset toggle + Waybar status helper +# Phase 1: manual toggle only (no scheduling) +# Icons: +# - Off: bright sun +# - On: sunset icon if available, otherwise a blue sun +# +# Customize via env vars: +# HYPERSUNSET_TEMP default 4500 (K) +# HYPERSUNSET_ICON_MODE sunset|blue (default: sunset) + +STATE_FILE="$HOME/.cache/.hyprsunset_state" +TARGET_TEMP="${HYPERSUNSET_TEMP:-4500}" +ICON_MODE="${HYPERSUNSET_ICON_MODE:-sunset}" + +ensure_state() { + [[ -f "$STATE_FILE" ]] || echo "off" > "$STATE_FILE" +} + +# Render icons using pango markup to allow colorization +icon_off() { + # bright sun when not activated + printf "<span foreground='gold'></span>" +} + +icon_on() { + case "$ICON_MODE" in + sunset) + printf "<span foreground='orange'></span>" + ;; + blue) + printf "<span foreground='deepskyblue'></span>" + ;; + *) + printf "<span foreground='orange'></span>" + ;; + esac +} + +cmd_toggle() { + ensure_state + state="$(cat "$STATE_FILE" || echo off)" + if [[ "$state" == "on" ]]; then + if command -v hyprsunset >/dev/null 2>&1; then + hyprsunset -r || true + fi + echo off > "$STATE_FILE" + else + if command -v hyprsunset >/dev/null 2>&1; then + hyprsunset -t "$TARGET_TEMP" || true + fi + echo on > "$STATE_FILE" + fi +} + +cmd_status() { + ensure_state + state="$(cat "$STATE_FILE" || echo off)" + if [[ "$state" == "on" ]]; then + txt="$(icon_on)" + cls="on" + tip="Night light on @ ${TARGET_TEMP}K" + else + txt="$(icon_off)" + cls="off" + tip="Night light off" + fi + printf '{"text":"%s","class":"%s","tooltip":"%s"}\n' "$txt" "$cls" "$tip" +} + +case "${1:-}" in + toggle) cmd_toggle ;; + status) cmd_status ;; + *) echo "usage: $0 [toggle|status]" >&2; exit 2 ;; + esac diff --git a/config/waybar/ModulesCustom b/config/waybar/ModulesCustom index dddc5ccc..1f4afa20 100644 --- a/config/waybar/ModulesCustom +++ b/config/waybar/ModulesCustom @@ -104,6 +104,17 @@ "tooltip-format": "Left Click: Switch Dark-Light Themes\nMiddle Click: Wallpaper Menu\nRight Click: Waybar Styles Menu", }, +// Night light (Hyprsunset) +"custom/nightlight": { + "return-type": "json", + "exec": "$HOME/.config/hypr/scripts/Hyprsunset.sh status", + "interval": 5, + "format": "{}", + "on-click": "$HOME/.config/hypr/scripts/Hyprsunset.sh toggle", + "tooltip": true, + "tooltip-format": "Night light toggle" +}, + "custom/lock": { "format": "", "on-click": "$HOME/.config/hypr/scripts/LockScreen.sh", diff --git a/config/waybar/ModulesGroups b/config/waybar/ModulesGroups index 30e47f16..8d4453a2 100644 --- a/config/waybar/ModulesGroups +++ b/config/waybar/ModulesGroups @@ -89,6 +89,7 @@ }, "modules": [ "custom/power", + "custom/nightlight", "custom/lock", "keyboard-state", "custom/keyboard", @@ -131,6 +132,7 @@ }, "modules": [ "custom/power", + "custom/nightlight", "custom/lock", "custom/logout", "custom/reboot" diff --git a/config/waybar/configs/[BOT & Left] SouthWest b/config/waybar/configs/[BOT & Left] SouthWest index a039f040..594b46d3 100644 --- a/config/waybar/configs/[BOT & Left] SouthWest +++ b/config/waybar/configs/[BOT & Left] SouthWest @@ -46,6 +46,7 @@ "power-profiles-daemon", "pulseaudio#microphone", "keyboard-state", + "custom/nightlight", "custom/power", ], }, diff --git a/config/waybar/configs/[BOT & Right] SouthEast b/config/waybar/configs/[BOT & Right] SouthEast index 9a58e952..03cdb06c 100644 --- a/config/waybar/configs/[BOT & Right] SouthEast +++ b/config/waybar/configs/[BOT & Right] SouthEast @@ -46,6 +46,7 @@ "power-profiles-daemon", "pulseaudio#microphone", "keyboard-state", + "custom/nightlight", "custom/power", ], }, diff --git a/config/waybar/configs/[LEFT] WestWing b/config/waybar/configs/[LEFT] WestWing index e3f25d1a..28e5dbec 100644 --- a/config/waybar/configs/[LEFT] WestWing +++ b/config/waybar/configs/[LEFT] WestWing @@ -39,6 +39,7 @@ "backlight#vertical", "pulseaudio#microphone_vertical", "pulseaudio#vertical", + "custom/nightlight", "custom/power_vertical", "custom/menu", ], diff --git a/config/waybar/configs/[LEFT] WestWing v2 b/config/waybar/configs/[LEFT] WestWing v2 index f1ed69c3..906f83d6 100644 --- a/config/waybar/configs/[LEFT] WestWing v2 +++ b/config/waybar/configs/[LEFT] WestWing v2 @@ -40,6 +40,7 @@ "backlight#vertical", "pulseaudio/slider", "pulseaudio#microphone_vertical", + "custom/nightlight", "group/power#vert", ], diff --git a/config/waybar/configs/[RIGHT] EastWing b/config/waybar/configs/[RIGHT] EastWing index b64fe5f8..a5ce6756 100644 --- a/config/waybar/configs/[RIGHT] EastWing +++ b/config/waybar/configs/[RIGHT] EastWing @@ -39,6 +39,7 @@ "backlight#vertical", "pulseaudio#microphone_vertical", "pulseaudio#vertical", + "custom/nightlight", "custom/power_vertical", "custom/menu", ], diff --git a/config/waybar/configs/[RIGHT] EastWing v2 b/config/waybar/configs/[RIGHT] EastWing v2 index f9991bd6..28dd1e43 100644 --- a/config/waybar/configs/[RIGHT] EastWing v2 +++ b/config/waybar/configs/[RIGHT] EastWing v2 @@ -40,6 +40,7 @@ "backlight#vertical", "pulseaudio/slider", "pulseaudio#microphone_vertical", + "custom/nightlight", "group/power#vert", ], diff --git a/config/waybar/configs/[TOP & BOT] SummitSplit b/config/waybar/configs/[TOP & BOT] SummitSplit index 03c8e81b..516e9834 100644 --- a/config/waybar/configs/[TOP & BOT] SummitSplit +++ b/config/waybar/configs/[TOP & BOT] SummitSplit @@ -44,6 +44,7 @@ "network", "custom/updater", "custom/cycle_wall", + "custom/nightlight", "custom/lock", ], }, @@ -88,6 +89,7 @@ "pulseaudio", //"wireplumber", "pulseaudio#microphone", + "custom/nightlight", "custom/power", ], }], diff --git a/config/waybar/configs/[TOP & BOT] SummitSplit v2 b/config/waybar/configs/[TOP & BOT] SummitSplit v2 index 1425f657..4d576aef 100644 --- a/config/waybar/configs/[TOP & BOT] SummitSplit v2 +++ b/config/waybar/configs/[TOP & BOT] SummitSplit v2 @@ -28,13 +28,14 @@ "network", ], "modules-center": ["hyprland/window"], - "modules-right": [ +"modules-right": [ "mpris", "battery", "backlight", "pulseaudio", "group/mobo_drawer", "idle_inhibitor", + "custom/nightlight", "group/power" ], diff --git a/config/waybar/configs/[TOP] 0-Ja-0 b/config/waybar/configs/[TOP] 0-Ja-0 index c4cb0a65..6e7fc9aa 100644 --- a/config/waybar/configs/[TOP] 0-Ja-0 +++ b/config/waybar/configs/[TOP] 0-Ja-0 @@ -48,6 +48,7 @@ "custom/separator#dot-line", "mpris", "custom/separator#blank", + "custom/nightlight", "group/status", ], }
\ No newline at end of file diff --git a/config/waybar/configs/[TOP] Arrow b/config/waybar/configs/[TOP] Arrow index 8001d8fb..7fc55f60 100644 --- a/config/waybar/configs/[TOP] Arrow +++ b/config/waybar/configs/[TOP] Arrow @@ -36,7 +36,8 @@ "battery", "custom/arrow2", "tray", - "custom/arrow1", +"custom/arrow1", + "custom/nightlight", "clock#2" ], } diff --git a/config/waybar/configs/[TOP] Camellia b/config/waybar/configs/[TOP] Camellia index c93e9079..efaf6e20 100644 --- a/config/waybar/configs/[TOP] Camellia +++ b/config/waybar/configs/[TOP] Camellia @@ -44,7 +44,8 @@ "power-profiles-daemon", "battery", "clock#3", - "network"], + "network", + "custom/nightlight"], // Additional modules // "pulseaudio/slider": { diff --git a/config/waybar/configs/[TOP] Chrysanthemum b/config/waybar/configs/[TOP] Chrysanthemum index ebaa0ca4..d12f73e3 100644 --- a/config/waybar/configs/[TOP] Chrysanthemum +++ b/config/waybar/configs/[TOP] Chrysanthemum @@ -36,6 +36,7 @@ "modules-right": [ "pulseaudio#1", "backlight#2", - "battery"], + "battery", + "custom/nightlight"], }
\ No newline at end of file diff --git a/config/waybar/configs/[TOP] Everforest b/config/waybar/configs/[TOP] Everforest index a66763ed..7b007f78 100644 --- a/config/waybar/configs/[TOP] Everforest +++ b/config/waybar/configs/[TOP] Everforest @@ -45,6 +45,7 @@ "battery#forest", "custom/separator#blank_2", "group/audio", + "custom/nightlight", ], // Additional / Edited Waybar Modules // diff --git a/config/waybar/configs/[TOP] Gardenia b/config/waybar/configs/[TOP] Gardenia index 77e86bae..073ff46e 100644 --- a/config/waybar/configs/[TOP] Gardenia +++ b/config/waybar/configs/[TOP] Gardenia @@ -37,7 +37,8 @@ "modules-right": [ "pulseaudio#1", "backlight#2", - "battery" + "battery", + "custom/nightlight" ], }
\ No newline at end of file diff --git a/config/waybar/configs/[TOP] Minimal - Long b/config/waybar/configs/[TOP] Minimal - Long index b57cf3a3..a5be4bd7 100644 --- a/config/waybar/configs/[TOP] Minimal - Long +++ b/config/waybar/configs/[TOP] Minimal - Long @@ -42,6 +42,7 @@ "custom/separator#blank_2", "group/audio", "custom/separator#blank_2", + "custom/nightlight", "custom/power", ], diff --git a/config/waybar/configs/[TOP] Minimal - Short b/config/waybar/configs/[TOP] Minimal - Short index 57abd3d3..7b9a1929 100644 --- a/config/waybar/configs/[TOP] Minimal - Short +++ b/config/waybar/configs/[TOP] Minimal - Short @@ -34,5 +34,6 @@ "backlight", "pulseaudio", "battery", + "custom/nightlight", "custom/power"], } diff --git a/config/waybar/configs/[TOP] Peony b/config/waybar/configs/[TOP] Peony index 2fd1dfe3..a1ef02e8 100644 --- a/config/waybar/configs/[TOP] Peony +++ b/config/waybar/configs/[TOP] Peony @@ -44,6 +44,7 @@ "temperature", "custom/separator#blank", "group/mobo_drawer", - "network"], + "network", + "custom/nightlight"], }
\ No newline at end of file diff --git a/config/waybar/configs/[TOP] Sleek b/config/waybar/configs/[TOP] Sleek index fe0f41ba..f591f472 100644 --- a/config/waybar/configs/[TOP] Sleek +++ b/config/waybar/configs/[TOP] Sleek @@ -39,6 +39,7 @@ "pulseaudio", "custom/separator#blank", "group/mobo_drawer", + "custom/nightlight", "custom/power", ], } |
