From cdadceda6b54a41237c5e0380e17d2f7e48a2ece Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Wed, 28 Jan 2026 13:10:02 -0600 Subject: feat(hyprland): add monitor-dashboard, remove htop scratchpad - Monitor scratchpad now launches monitor-dashboard (tmux session with btop, s-tui, nvtop, duf, bandwhich, wavemon, powertop) - Remove htop scratchpad ($mod+Shift+H now free) --- dotfiles/hyprland/.config/hypr/hyprland.conf | 9 +------ dotfiles/hyprland/.local/bin/monitor-dashboard | 37 ++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 8 deletions(-) create mode 100755 dotfiles/hyprland/.local/bin/monitor-dashboard (limited to 'dotfiles/hyprland') diff --git a/dotfiles/hyprland/.config/hypr/hyprland.conf b/dotfiles/hyprland/.config/hypr/hyprland.conf index 67604c0..3eae5b6 100644 --- a/dotfiles/hyprland/.config/hypr/hyprland.conf +++ b/dotfiles/hyprland/.config/hypr/hyprland.conf @@ -269,9 +269,8 @@ bind = $mod SHIFT, PERIOD, movewindow, mon:+1 # Workspace rules (auto-launch apps when workspace first accessed) workspace = special:term, on-created-empty:foot --app-id foot-term tmux workspace = special:audio, on-created-empty:foot --app-id foot-audio pulsemixer -workspace = special:monitor, on-created-empty:foot --app-id foot-monitor gotop +workspace = special:monitor, on-created-empty:foot --app-id foot-monitor monitor-dashboard workspace = special:music, on-created-empty:foot --app-id foot-music ncmpcpp -workspace = special:htop, on-created-empty:foot --app-id foot-htop htop workspace = special:network, on-created-empty:foot --app-id foot-network nmtui workspace = special:effects, on-created-empty:easyeffects @@ -280,7 +279,6 @@ bind = $mod SHIFT, RETURN, togglespecialworkspace, term bind = $mod, A, togglespecialworkspace, audio bind = $mod, M, togglespecialworkspace, monitor bind = $mod, SLASH, togglespecialworkspace, music -bind = $mod SHIFT, H, togglespecialworkspace, htop bind = $mod SHIFT, A, togglespecialworkspace, effects # Window rules (using app-id/class matching, Hyprland 0.53+ syntax) @@ -304,11 +302,6 @@ windowrule = match:class ^(foot-music)$, float on windowrule = match:class ^(foot-music)$, size (monitor_w*0.6) (monitor_h*0.6) windowrule = match:class ^(foot-music)$, center on -# Htop -windowrule = match:class ^(foot-htop)$, float on -windowrule = match:class ^(foot-htop)$, size (monitor_w*0.6) (monitor_h*0.6) -windowrule = match:class ^(foot-htop)$, center on - # Network manager windowrule = match:class ^(foot-network)$, float on windowrule = match:class ^(foot-network)$, size (monitor_w*0.6) (monitor_h*0.6) diff --git a/dotfiles/hyprland/.local/bin/monitor-dashboard b/dotfiles/hyprland/.local/bin/monitor-dashboard new file mode 100755 index 0000000..9236d20 --- /dev/null +++ b/dotfiles/hyprland/.local/bin/monitor-dashboard @@ -0,0 +1,37 @@ +#!/bin/sh +# monitor-dashboard - tmux session with system monitoring tools +# Each tool gets its own window for full screen real estate + +SESSION="monitor" + +# Check if system has a battery +has_battery() { + [ -d /sys/class/power_supply/BAT0 ] || [ -d /sys/class/power_supply/BAT1 ] +} + +# Attach to existing session or create new one +if tmux has-session -t "$SESSION" 2>/dev/null; then + exec tmux attach-session -t "$SESSION" +fi + +# Create new session with btop in first window +tmux new-session -d -s "$SESSION" -n btop btop + +# Add windows for other monitoring tools (grouped logically) +# CPU/GPU +tmux new-window -t "$SESSION" -n s-tui s-tui +tmux new-window -t "$SESSION" -n nvtop nvtop +# Disk +tmux new-window -t "$SESSION" -n duf "watch --color -n 60 duf" +# Network +tmux new-window -t "$SESSION" -n bandwhich "sudo bandwhich" +tmux new-window -t "$SESSION" -n wavemon wavemon +# Power (laptop only) +if has_battery; then + tmux new-window -t "$SESSION" -n powertop "sudo powertop" +fi + +# Start on btop window +tmux select-window -t "$SESSION:btop" + +exec tmux attach-session -t "$SESSION" -- cgit v1.2.3