summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-01-27 08:51:31 -0600
committerCraig Jennings <c@cjennings.net>2026-01-27 08:51:31 -0600
commitea569d1a0279674863661c7f6694c0ba6fc5cb7d (patch)
tree4a17d53d7574b4062c7626915bdf9e1897f194c8
parent7f07e47237606425d45f628f25c6029223b420e7 (diff)
feat(waybar): add warning/critical color thresholds for temperature and disk
Temperature turns yellow at 70°C, red at 80°C using built-in waybar states. Disk replaced with custom script that turns yellow at 80% full, red at 90%, working across ZFS/btrfs/ext4. Colors themed per dupre/hudson. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
-rw-r--r--dotfiles/hyprland/.config/themes/dupre/waybar.css20
-rw-r--r--dotfiles/hyprland/.config/themes/hudson/waybar.css20
-rw-r--r--dotfiles/hyprland/.config/waybar/config10
-rw-r--r--dotfiles/hyprland/.config/waybar/style.css20
-rwxr-xr-xdotfiles/hyprland/.local/bin/waybar-disk7
-rw-r--r--todo.org8
6 files changed, 72 insertions, 13 deletions
diff --git a/dotfiles/hyprland/.config/themes/dupre/waybar.css b/dotfiles/hyprland/.config/themes/dupre/waybar.css
index c5333f5..18ba0f1 100644
--- a/dotfiles/hyprland/.config/themes/dupre/waybar.css
+++ b/dotfiles/hyprland/.config/themes/dupre/waybar.css
@@ -49,7 +49,7 @@ window#waybar {
#cpu,
#temperature,
#memory,
-#disk,
+#custom-disk,
#custom-netspeed,
#battery,
#wireplumber,
@@ -73,7 +73,7 @@ window#waybar {
#cpu:hover,
#temperature:hover,
#memory:hover,
-#disk:hover,
+#custom-disk:hover,
#custom-netspeed:hover,
#wireplumber:hover,
#sysmonitor:hover,
@@ -94,6 +94,22 @@ window#waybar {
color: #d47c59;
}
+#temperature.warning {
+ color: #d7af5f;
+}
+
+#temperature.critical {
+ color: #d47c59;
+}
+
+#custom-disk.warning {
+ color: #d7af5f;
+}
+
+#custom-disk.critical {
+ color: #d47c59;
+}
+
#battery.warning {
color: #d7af5f;
}
diff --git a/dotfiles/hyprland/.config/themes/hudson/waybar.css b/dotfiles/hyprland/.config/themes/hudson/waybar.css
index 4ee0615..299f1c2 100644
--- a/dotfiles/hyprland/.config/themes/hudson/waybar.css
+++ b/dotfiles/hyprland/.config/themes/hudson/waybar.css
@@ -49,7 +49,7 @@ window#waybar {
#cpu,
#temperature,
#memory,
-#disk,
+#custom-disk,
#custom-netspeed,
#battery,
#wireplumber,
@@ -73,7 +73,7 @@ window#waybar {
#cpu:hover,
#temperature:hover,
#memory:hover,
-#disk:hover,
+#custom-disk:hover,
#custom-netspeed:hover,
#wireplumber:hover,
#sysmonitor:hover,
@@ -94,6 +94,22 @@ window#waybar {
color: #ff5858;
}
+#temperature.warning {
+ color: #daa520;
+}
+
+#temperature.critical {
+ color: #ff5858;
+}
+
+#custom-disk.warning {
+ color: #daa520;
+}
+
+#custom-disk.critical {
+ color: #ff5858;
+}
+
#battery.warning {
color: #daa520;
}
diff --git a/dotfiles/hyprland/.config/waybar/config b/dotfiles/hyprland/.config/waybar/config
index 5b9879e..fdff160 100644
--- a/dotfiles/hyprland/.config/waybar/config
+++ b/dotfiles/hyprland/.config/waybar/config
@@ -28,7 +28,7 @@
"cpu",
"temperature",
"memory",
- "disk",
+ "custom/disk",
"battery"
]
},
@@ -62,6 +62,7 @@
"interval": 10,
"hwmon-path-abs": "/sys/devices/pci0000:00/0000:00:18.3/hwmon",
"input-filename": "temp1_input",
+ "warning-threshold": 70,
"critical-threshold": 80,
"format": "<span size='large'>󰔏</span> {temperatureC}°C",
"format-critical": "<span size='large'>󰸁</span> {temperatureC}°C",
@@ -74,10 +75,11 @@
"on-click": "toggle-scratchpad monitor"
},
- "disk": {
+ "custom/disk": {
+ "exec": "waybar-disk",
+ "return-type": "json",
"interval": 30,
- "format": "<span size='large'>󰆼</span> {percentage_used}%",
- "path": "/",
+ "format": "<span size='large'>󰆼</span> {}",
"on-click": "toggle-scratchpad monitor"
},
diff --git a/dotfiles/hyprland/.config/waybar/style.css b/dotfiles/hyprland/.config/waybar/style.css
index 4ee0615..299f1c2 100644
--- a/dotfiles/hyprland/.config/waybar/style.css
+++ b/dotfiles/hyprland/.config/waybar/style.css
@@ -49,7 +49,7 @@ window#waybar {
#cpu,
#temperature,
#memory,
-#disk,
+#custom-disk,
#custom-netspeed,
#battery,
#wireplumber,
@@ -73,7 +73,7 @@ window#waybar {
#cpu:hover,
#temperature:hover,
#memory:hover,
-#disk:hover,
+#custom-disk:hover,
#custom-netspeed:hover,
#wireplumber:hover,
#sysmonitor:hover,
@@ -94,6 +94,22 @@ window#waybar {
color: #ff5858;
}
+#temperature.warning {
+ color: #daa520;
+}
+
+#temperature.critical {
+ color: #ff5858;
+}
+
+#custom-disk.warning {
+ color: #daa520;
+}
+
+#custom-disk.critical {
+ color: #ff5858;
+}
+
#battery.warning {
color: #daa520;
}
diff --git a/dotfiles/hyprland/.local/bin/waybar-disk b/dotfiles/hyprland/.local/bin/waybar-disk
new file mode 100755
index 0000000..6050653
--- /dev/null
+++ b/dotfiles/hyprland/.local/bin/waybar-disk
@@ -0,0 +1,7 @@
+#!/bin/sh
+# Waybar disk usage module with warning/critical states
+PCT=$(df --output=pcent / | tail -1 | tr -d ' %')
+CLASS=""
+[ "$PCT" -ge 80 ] && CLASS="warning"
+[ "$PCT" -ge 90 ] && CLASS="critical"
+printf '{"text": "%s%%", "class": "%s", "tooltip": "Root: %s%% used"}\n' "$PCT" "$CLASS" "$PCT"
diff --git a/todo.org b/todo.org
index dfcce09..59eeff2 100644
--- a/todo.org
+++ b/todo.org
@@ -121,11 +121,10 @@ The script handles edge cases gracefully, provides detailed error messages with
*** TODO [#A] Make Hyprland Bulletproof and Comfy
-**** TODO [#A] Change cursor theme (curren theme's cross too small for screenshots)
-**** TODO [#B] waybar's temperature monitor should change color when hot.
+**** DONE [#B] waybar's temperature monitor should change color when hot.
Consider the temperature at which the CPU is getting "too hot". define two temperature thresholds that are "approaching too hot" (when the user should begin paying attention) and "nearly too hot" (when it's approaching a temperature where the user should take action). have the color change to yellow when it's approaching the first threshold, and red when it approaches the second. we'll be using themed colors from the dupre theme.
-**** TODO [#B] waybar's storage monitor should change color when approaching full.
+**** DONE [#B] waybar's storage monitor should change color when approaching full.
waybar's storage monitor should change color when it approaches full, to allow the user to take action. note that since this system could be running on zfs, btrfs, and ext4 file systems, this should work no matter which of these filesystems we are running on. When storage is at or over 80% full, the color of the storage icon on the waybar panel should turn yellow. When the storage is at or over 90$ full, it should be red. we'll be using themed colors form the dupre theme.
**** TODO [#D] Consider Customizing Hyprland Animations
@@ -227,6 +226,9 @@ Implementation:
bind = $mod, Z, togglespecialworkspace, desktop
#+end_src
+**** DONE [#A] Change cursor theme (curren theme's cross too small for screenshots)
+CLOSED: [2026-01-27 Tue]
+Switched to Bibata-Modern-Ice across all configs (hyprland, Xresources, GTK, archsetup).
**** DONE [#B] new master windows do not have focus
CLOSED: [2026-01-27 Tue]
Added focus_on_activate = true to misc section in hyprland.conf.