From bc436988442c2d7e5b405f3670f43e33dfebdbbd Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Fri, 6 Feb 2026 10:14:33 -0600 Subject: feat(hyprland): waybar scratchpad toggles, remove hy3, fix cursor warp Waybar modules now toggle pyprland scratchpads on click: sysmonitor group opens btop, netspeed opens nmtui, pulseaudio opens pulsemixer. Consolidated pyprland config to canonical ~/.config/pypr/config.toml. Removed hy3 plugin from all configs and scripts (disabled since crash). Added $mod+N for network scratchpad. Set cursor:no_warps to prevent cursor jumping to window center on focus change. --- dotfiles/hyprland/.config/hypr/hyprland.conf | 33 +++++++--------------------- dotfiles/hyprland/.config/pypr/config.toml | 7 ++++++ dotfiles/hyprland/.config/waybar/config | 14 ++++++------ 3 files changed, 22 insertions(+), 32 deletions(-) (limited to 'dotfiles/hyprland/.config') diff --git a/dotfiles/hyprland/.config/hypr/hyprland.conf b/dotfiles/hyprland/.config/hypr/hyprland.conf index 3abf43f..d79738d 100644 --- a/dotfiles/hyprland/.config/hypr/hyprland.conf +++ b/dotfiles/hyprland/.config/hypr/hyprland.conf @@ -11,7 +11,7 @@ monitor=,preferred,auto,auto # Startup Applications # ============================================================================ # Portal and D-Bus setup FIRST (other apps depend on these) -exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP +exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP HYPRLAND_INSTANCE_SIGNATURE exec-once = systemctl --user start xdg-desktop-portal-hyprland xdg-desktop-portal # Core services @@ -99,6 +99,10 @@ dwindle { # ============================================================================ # Input # ============================================================================ +cursor { + no_warps = true +} + input { kb_layout = us kb_options = ctrl:nocaps @@ -131,27 +135,6 @@ xwayland { force_zero_scaling = true } -# ============================================================================ -# Plugins -# ============================================================================ -plugin { - hy3 { - tabs { - col.active = rgba(444444ff) - col.active.text = rgba(bbbbbbff) - col.active.border = rgba(daa520ff) - col.focused = rgba(444444ff) - col.focused.text = rgba(bbbbbbff) - col.focused.border = rgba(daa520ff) - col.inactive = rgba(333333ff) - col.inactive.text = rgba(888888ff) - col.inactive.border = rgba(333333ff) - col.urgent = rgba(cc6666ff) - col.locked = rgba(8abeb7ff) - } - } -} - # ============================================================================ # Window Rules (Hyprland 0.53+ syntax: match:CONDITION, RULE) # ============================================================================ @@ -187,7 +170,7 @@ bind = $mod, Y, exec, set-theme --toggle bind = $mod SHIFT, Y, exec, set-theme --pick # Window management (from DWM) -# Layout-aware navigation (works across master, scrolling, hy3) +# Layout-aware navigation (works across master, scrolling) bind = $mod, J, exec, layout-navigate next bind = $mod, K, exec, layout-navigate prev bind = $mod SHIFT, J, exec, layout-navigate next move @@ -199,10 +182,9 @@ bind = $mod, G, centerwindow bind = $mod, TAB, workspace, previous bind = $mod SHIFT, C, killactive -# Layouts: master -> tab group (monocle) -> scrolling -> floating +# Layouts: master -> scrolling -> floating # Click waybar layout icon to cycle, or use direct keybindings: bind = $mod SHIFT, T, exec, hyprctl keyword general:layout master && hyprctl keyword master:orientation left -bind = $mod SHIFT, M, exec, hyprctl keyword general:layout hy3 && hyprctl dispatch hy3:changegroup tab bind = $mod SHIFT, S, exec, hyprctl keyword general:layout scrolling bind = $mod SHIFT, F, togglefloating bind = $mod SHIFT, SPACE, togglefloating @@ -268,6 +250,7 @@ bind = $mod SHIFT, RETURN, exec, pypr toggle term bind = $mod, I, exec, pypr toggle term2 bind = $mod, A, exec, pypr toggle audio bind = $mod, M, exec, pypr toggle monitor +bind = $mod, N, exec, pypr toggle network bind = $mod, SLASH, exec, pypr toggle music # Magnify (zoom) diff --git a/dotfiles/hyprland/.config/pypr/config.toml b/dotfiles/hyprland/.config/pypr/config.toml index e496cd9..9db048f 100644 --- a/dotfiles/hyprland/.config/pypr/config.toml +++ b/dotfiles/hyprland/.config/pypr/config.toml @@ -53,3 +53,10 @@ class = "foot-music" size = "60% 60%" position = "20% 20%" animation = "fromBottom" + +[scratchpads.network] +command = "foot --app-id foot-network nmtui" +class = "foot-network" +size = "60% 60%" +position = "20% 20%" +animation = "fromBottom" diff --git a/dotfiles/hyprland/.config/waybar/config b/dotfiles/hyprland/.config/waybar/config index 7853326..422096f 100644 --- a/dotfiles/hyprland/.config/waybar/config +++ b/dotfiles/hyprland/.config/waybar/config @@ -55,7 +55,7 @@ "cpu": { "interval": 10, "format": "󰍛 {}%", - "on-click": "toggle-scratchpad monitor" + "on-click": "pypr toggle monitor" }, "temperature": { @@ -66,13 +66,13 @@ "critical-threshold": 80, "format": "󰔏 {temperatureC}°C", "format-critical": "󰸁 {temperatureC}°C", - "on-click": "toggle-scratchpad monitor" + "on-click": "pypr toggle monitor" }, "memory": { "interval": 30, "format": "󰘚 {}%", - "on-click": "toggle-scratchpad monitor" + "on-click": "pypr toggle monitor" }, "custom/disk": { @@ -80,14 +80,14 @@ "return-type": "json", "interval": 30, "format": "󰆼 {}", - "on-click": "toggle-scratchpad monitor" + "on-click": "pypr toggle monitor" }, "custom/netspeed": { "exec": "waybar-netspeed", "return-type": "json", "interval": 2, - "on-click": "toggle-scratchpad network" + "on-click": "pypr toggle network" }, "battery": { @@ -105,7 +105,7 @@ "tray": { "icon-size": 22, - "spacing": 10 + "spacing": 4 }, "clock": { @@ -123,7 +123,7 @@ "format-muted": "󰝟 Muted", "format-icons": {"default": ["󰕿", "󰖀", "󰕾"]}, "on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle", - "on-click-right": "toggle-scratchpad audio", + "on-click-right": "pypr toggle audio", "on-scroll-up": "pactl set-sink-volume @DEFAULT_SINK@ +5%", "on-scroll-down": "pactl set-sink-volume @DEFAULT_SINK@ -5%" }, -- cgit v1.2.3