summaryrefslogtreecommitdiff
path: root/dotfiles/hyprland/.config
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-02-06 10:14:33 -0600
committerCraig Jennings <c@cjennings.net>2026-02-06 10:14:33 -0600
commitbc436988442c2d7e5b405f3670f43e33dfebdbbd (patch)
tree0c26b8b8a7947fec4f2df6491ef7bab9b9af9957 /dotfiles/hyprland/.config
parent32d08f9cbef94bd777b72c4e96a58a88c35dcfdf (diff)
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.
Diffstat (limited to 'dotfiles/hyprland/.config')
-rw-r--r--dotfiles/hyprland/.config/hypr/hyprland.conf33
-rw-r--r--dotfiles/hyprland/.config/pypr/config.toml7
-rw-r--r--dotfiles/hyprland/.config/waybar/config14
3 files changed, 22 insertions, 32 deletions
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
@@ -132,27 +136,6 @@ xwayland {
}
# ============================================================================
-# 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)
# ============================================================================
# Floating windows (from DWM rules)
@@ -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": "<span size='large'>󰍛</span> {}%",
- "on-click": "toggle-scratchpad monitor"
+ "on-click": "pypr toggle monitor"
},
"temperature": {
@@ -66,13 +66,13 @@
"critical-threshold": 80,
"format": "<span size='large'>󰔏</span> {temperatureC}°C",
"format-critical": "<span size='large'>󰸁</span> {temperatureC}°C",
- "on-click": "toggle-scratchpad monitor"
+ "on-click": "pypr toggle monitor"
},
"memory": {
"interval": 30,
"format": "<span size='large'>󰘚</span> {}%",
- "on-click": "toggle-scratchpad monitor"
+ "on-click": "pypr toggle monitor"
},
"custom/disk": {
@@ -80,14 +80,14 @@
"return-type": "json",
"interval": 30,
"format": "<span size='large'>󰆼</span> {}",
- "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": "<span size='large'>󰝟</span> 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%"
},