diff --git a/.config/waybar/base.jsonc##hostname.cn-arch b/.config/waybar/base.jsonc##hostname.cn-arch
index e133f91..c0f778a 100644
--- a/.config/waybar/base.jsonc##hostname.cn-arch
+++ b/.config/waybar/base.jsonc##hostname.cn-arch
@@ -8,7 +8,7 @@
"passthrough": false,
"fixed-center": true,
"height": 32,
- "spacing": 8,
+ "spacing": 0,
// Hyprland
"hyprland/workspaces": {
"icon-size": 26,
@@ -91,7 +91,7 @@
"tooltip": true,
"on-click": "pavucontrol",
"on-click-right": "pactl set-sink-mute @DEFAULT_SINK@ toggle",
- "on-click-middle": "bash -lc \"next=$(pactl list short sinks | awk '{print \\$1}' | awk -v cur=$(pactl get-default-sink) '\\$0!=cur{print; exit}'); if [ -n \\\"$next\\\" ]; then pactl set-default-sink $next; notify-send -a waybar 'Audio' 'Switched default sink to '$next; fi\"",
+ "on-click-middle": "$HOME/.config/waybar/scripts/cycle_sinks.sh",
"format-icons": {
"alsa_output.usb-SteelSeries_Arctis_7_-00.analog-stereo": "",
"alsa_output.pci-0000_0a_00.4.iec958-stereo": "",
@@ -147,12 +147,14 @@
"on-click": "pkill -SIGRTMIN+4 waybar",
},
"custom/temps": {
- "exec-if": "command -v sensors >/dev/null",
- "exec": "bash -lc \"sensors | awk '/Tctl|Tdie|Package id 0/{gsub(/\\+|°C/,\\\"\\\"); print int($2); exit}'\"",
+ "exec-if": "[ -x $HOME/.config/waybar/scripts/temps.sh ]",
+ "exec": "$HOME/.config/waybar/scripts/temps.sh",
"interval": 5,
- "format": " {output}°C",
+ "format": " {}°C",
"tooltip": true,
- "on-click": "alacritty -e watch -n 1 sensors",
+ "signal": 6,
+ "on-click": "pkill -SIGRTMIN+6 waybar",
+ "on-click-right": "alacritty -e watch -n 1 sensors"
},
"custom/hyprsysteminfo": {
"exec-if": "[ -x $HOME/.config/waybar/scripts/hyprsysteminfo.sh ]",
@@ -160,7 +162,9 @@
"return-type": "json",
"interval": 5,
"tooltip": true,
- "on-click": "bash -lc 'command -v hyprsysteminfo >/dev/null && uwsm app -- hyprsysteminfo'",
+ "signal": 7,
+ "on-click": "pkill -SIGRTMIN+7 waybar",
+ "on-click-right": "bash -lc 'command -v hyprsysteminfo >/dev/null && uwsm app -- hyprsysteminfo'"
},
"custom/hyprsunset": {
"exec-if": "[ -x $HOME/.config/waybar/scripts/hyprsunset_toggle.sh ]",
@@ -175,8 +179,14 @@
// Right click: manual on/off (doesn’t touch auto flag)
"on-click-right": "bash -lc '$HOME/.config/waybar/scripts/hyprsunset_toggle.sh --toggle && pkill -SIGRTMIN+5 waybar'",
// Scroll: fine tune manual temp (useful when AUTO is OFF)
- "on-scroll-up": "bash -lc 't=$($HOME/.config/waybar/scripts/hyprsunset_toggle.sh --print | sed -n \"s/.* \\([0-9]\\+\\)K.*/\\1/p\"); [ -z \"$t\" ] && t=3800; t=$((t+200)); $HOME/.config/waybar/scripts/hyprsunset_toggle.sh --set $t && pkill -SIGRTMIN+5 waybar'",
- "on-scroll-down": "bash -lc 't=$($HOME/.config/waybar/scripts/hyprsunset_toggle.sh --print | sed -n \"s/.* \\([0-9]\\+\\)K.*/\\1/p\"); [ -z \"$t\" ] && t=3800; t=$((t-200)); if [ $t -lt 1000 ]; then t=1000; fi; $HOME/.config/waybar/scripts/hyprsunset_toggle.sh --set $t && pkill -SIGRTMIN+5 waybar'",
+ "on-scroll-up": "$HOME/.config/waybar/scripts/hyprsunset_toggle.sh --increase && pkill -SIGRTMIN+5 waybar",
+ "on-scroll-down": "$HOME/.config/waybar/scripts/hyprsunset_toggle.sh --decrease && pkill -SIGRTMIN+5 waybar",
+ },
+ "custom/updates": {
+ "exec": "$HOME/.config/waybar/scripts/updates.sh",
+ "return-type": "json",
+ "interval": 3600,
+ "on-click": "alacritty -e sudo pacman -Syu"
},
// Tray / Clock / Privacy
"tray": {
@@ -201,4 +211,4 @@
"icon-size": 16,
"tooltip": true,
},
-}
+}
\ No newline at end of file
diff --git a/.config/waybar/conf.d/dp1.jsonc##hostname.cn-arch b/.config/waybar/conf.d/dp1.jsonc##hostname.cn-arch
index 725ee57..0d9c25f 100644
--- a/.config/waybar/conf.d/dp1.jsonc##hostname.cn-arch
+++ b/.config/waybar/conf.d/dp1.jsonc##hostname.cn-arch
@@ -1,20 +1,18 @@
{
"name": "bar-dp1",
"output": "DP-1",
- "spacing": 8,
- "modules-left": ["hyprland/workspaces", "hyprland/window"],
- "modules-center": ["privacy", "mpris"],
+ "spacing": 0,
+ "modules-left": ["hyprland/workspaces", "privacy", "hyprland/window"],
+ "modules-center": ["clock"],
"modules-right": [
"group/sys",
+ "custom/updates",
+ "custom/alhp",
"network",
"pulseaudio",
- "bluetooth",
- "battery",
"power-profiles-daemon",
- "custom/hyprsysteminfo",
"custom/hyprsunset",
- "tray",
- "clock",
+ "tray"
],
"hyprland/window": {
"max-length": 60,
diff --git a/.config/waybar/conf.d/dp2.jsonc##hostname.cn-arch b/.config/waybar/conf.d/dp2.jsonc##hostname.cn-arch
index 9c5a530..521ce61 100644
--- a/.config/waybar/conf.d/dp2.jsonc##hostname.cn-arch
+++ b/.config/waybar/conf.d/dp2.jsonc##hostname.cn-arch
@@ -1,26 +1,25 @@
{
"name": "bar-dp2",
"output": "DP-2",
- "spacing": 10,
- "modules-left": ["hyprland/workspaces", "hyprland/window"],
- "modules-center": ["privacy", "mpris"],
+ "spacing": 0,
+ "modules-left": ["hyprland/workspaces", "privacy", "hyprland/window"],
+ "modules-center": ["clock"],
"modules-right": [
"cpu",
"memory",
"disk#nvme0",
"disk#nvme1",
+ "custom/temps",
+ "custom/updates",
+ "custom/alhp",
"network",
"pulseaudio",
"bluetooth",
- "battery",
"power-profiles-daemon",
- "custom/alhp",
"custom/razer-mouse-battery",
- "custom/temps",
"custom/hyprsysteminfo",
"custom/hyprsunset",
- "tray",
- "clock",
+ "tray"
],
"hyprland/window": {
"max-length": 80,
diff --git a/.config/waybar/conf.d/hdmi.jsonc##hostname.cn-arch b/.config/waybar/conf.d/hdmi.jsonc##hostname.cn-arch
index 250f4ac..df5f46e 100644
--- a/.config/waybar/conf.d/hdmi.jsonc##hostname.cn-arch
+++ b/.config/waybar/conf.d/hdmi.jsonc##hostname.cn-arch
@@ -2,18 +2,15 @@
"name": "bar-hdmi",
"output": "HDMI-A-1",
"height": 28,
- "spacing": 6,
- "modules-left": ["hyprland/workspaces", "hyprland/window"],
- "modules-center": ["privacy", "mpris"],
+ "spacing": 0,
+ "modules-left": ["hyprland/workspaces", "privacy", "hyprland/window"],
+ "modules-center": ["clock"],
"modules-right": [
+ "custom/updates",
+ "custom/alhp",
"network",
"pulseaudio",
- "bluetooth",
- "battery",
- "custom/hyprsysteminfo",
- "custom/hyprsunset",
- "tray",
- "clock",
+ "tray"
],
"hyprland/workspaces": {
"icon-size": 22,
diff --git a/.config/waybar/scripts/alhp.sh b/.config/waybar/scripts/alhp.sh
index 01a193c..bb2acf1 100755
--- a/.config/waybar/scripts/alhp.sh
+++ b/.config/waybar/scripts/alhp.sh
@@ -45,7 +45,7 @@ esac
# Emit compact JSON for Statusbar
jq -nc \
- --arg text "$icon $text" \
+ --arg text "$icon $text" \
--arg class "$class" \
--arg tooltip "$tooltip" \
'{text: $text, class: $class, tooltip: $tooltip}'
diff --git a/.config/waybar/scripts/hyprsunset_toggle.sh b/.config/waybar/scripts/hyprsunset_toggle.sh
index deca346..f56e68c 100755
--- a/.config/waybar/scripts/hyprsunset_toggle.sh
+++ b/.config/waybar/scripts/hyprsunset_toggle.sh
@@ -53,6 +53,21 @@ print_json() {
fi
}
+increase_temp() {
+ local t="$(cur_temp)"
+ [ -z "$t" ] && t=3800
+ t=$((t+200))
+ set_temp "$t"
+}
+
+decrease_temp() {
+ local t="$(cur_temp)"
+ [ -z "$t" ] && t=3800
+ t=$((t-200))
+ if [ "$t" -lt 1000 ]; then t=1000; fi
+ set_temp "$t"
+}
+
case "${1:---print}" in
--print) print_json ;;
--auto-on) echo -n "1" > "$AUTO_FILE" ; print_json ;;
@@ -84,6 +99,14 @@ case "${1:---print}" in
set_temp "$t"
print_json
;;
- *) echo "Usage: $0 [--print|--toggle-auto|--auto-on|--auto-off|--toggle|--set TEMP]" >&2; exit 1 ;;
+ --increase)
+ increase_temp
+ print_json
+ ;;
+ --decrease)
+ decrease_temp
+ print_json
+ ;;
+ *) echo "Usage: $0 [--print|--toggle-auto|--auto-on|--auto-off|--toggle|--set TEMP|--increase|--decrease]" >&2; exit 1 ;;
esac
diff --git a/.config/waybar/scripts/razer_basilisk_v3_pro_battery_info.sh b/.config/waybar/scripts/razer_basilisk_v3_pro_battery_info.sh
index 9cc919d..576127f 100755
--- a/.config/waybar/scripts/razer_basilisk_v3_pro_battery_info.sh
+++ b/.config/waybar/scripts/razer_basilisk_v3_pro_battery_info.sh
@@ -32,7 +32,7 @@ else
fi
jq -nc \
- --arg text "$icon $text" \
+ --arg text "$icon $text" \
--arg class "$class" \
--arg tooltip "$tooltip" \
'{text: $text, class: $class, tooltip: $tooltip}'
diff --git a/.config/waybar/style.css##default b/.config/waybar/style.css##default
index 4cb289f..923d55f 100644
--- a/.config/waybar/style.css##default
+++ b/.config/waybar/style.css##default
@@ -26,7 +26,7 @@
/* Bar Background */
window#waybar {
- background: @bg_main;
+ background: linear-gradient(90deg, @bg_main, rgba(21, 37, 53, 0.85));
border-top: 1px solid @border_main;
}
@@ -52,16 +52,14 @@ tooltip {
/* Module Spacing & Hover */
.module {
padding: 0 6px;
- margin: 0 2px;
+ margin: 0;
}
.module:hover {
background: @bg_hover;
+ transition: background-color 0.3s ease;
}
-/* HDMI: tighter modules to free center space */
-window#waybar.bar-hdmi .module {
- padding: 0 4px;
-}
+
/* Collapse empty/noise modules */
#mpris.empty,
@@ -80,11 +78,15 @@ window#waybar.bar-hdmi .module {
#network,
#pulseaudio,
#bluetooth,
+#battery,
#power-profiles-daemon,
#custom-alhp,
#custom-razer-mouse-battery,
-#custom-hyprsunset {
- /* ← new module gets a separator too */
+#custom-temps,
+#custom-hyprsysteminfo,
+#custom-hyprsunset,
+#custom-updates,
+#tray {
border-right: 1px solid @border_main;
}
@@ -93,7 +95,7 @@ window#waybar.bar-hdmi .module {
margin: 0 2px;
}
#workspaces button {
- padding: 4px 6px;
+ min-width: 30px;
color: @content_inactive;
}
#workspaces button:hover {
@@ -114,19 +116,19 @@ window#waybar.bar-hdmi .module {
#window {
min-width: 0;
font-weight: 500;
- padding: 0 6px;
}
/* MPRIS */
#mpris {
min-width: 0;
- padding: 0 6px;
}
/* Tray & Clock */
#tray,
#clock {
- padding: 0 6px;
+}
+#privacy {
+ min-width: 30px;
}
#tray > .passive {
opacity: 0.7;
@@ -153,16 +155,15 @@ window#waybar.bar-hdmi .module {
#bluetooth,
#mpris,
#custom-hyprsunset {
- color: #dee6f7; /* very light tint; still reads as white on dark */
+ color: #FFFFFF; /* very light tint; still reads as white on dark */
}
/* Drawer polish (DP-1) */
#custom-sys {
- padding: 0 8px;
+ min-width: 30px;
font-weight: 600;
}
.sys {
- padding: 0 6px;
}
.revealed .sys {
background: rgba(79, 132, 204, 0.12);
@@ -172,7 +173,6 @@ window#waybar.bar-hdmi .module {
#custom-alhp,
#custom-razer-mouse-battery,
#custom-hyprsunset {
- padding: 0 6px;
}
/* Network states */
@@ -186,6 +186,6 @@ window#waybar.bar-hdmi .module {
#temperature.critical { color: #FFCC33; font-weight: 600; }
/* Backlight spacing */
-#backlight { padding: 0 6px; border-right: 1px solid @border_main; }
-#custom-mic, #custom-touchpad { padding: 0 6px; }
+#backlight { border-right: 1px solid @border_main; }
+#custom-mic, #custom-touchpad { }