summaryrefslogtreecommitdiff
path: root/dotfiles/hyprland/.local/bin
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/.local/bin
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/.local/bin')
-rwxr-xr-xdotfiles/hyprland/.local/bin/cycle-layout7
-rwxr-xr-xdotfiles/hyprland/.local/bin/hyprland-plugins-setup16
-rwxr-xr-xdotfiles/hyprland/.local/bin/layout-navigate15
-rwxr-xr-xdotfiles/hyprland/.local/bin/set-theme24
-rwxr-xr-xdotfiles/hyprland/.local/bin/toggle-scratchpad40
-rwxr-xr-xdotfiles/hyprland/.local/bin/waybar-layout5
6 files changed, 2 insertions, 105 deletions
diff --git a/dotfiles/hyprland/.local/bin/cycle-layout b/dotfiles/hyprland/.local/bin/cycle-layout
index ebfd2e0..a632142 100755
--- a/dotfiles/hyprland/.local/bin/cycle-layout
+++ b/dotfiles/hyprland/.local/bin/cycle-layout
@@ -1,6 +1,6 @@
#!/bin/sh
# Cycle through Hyprland layouts
-# Cycle: master -> hy3 (tab/monocle) -> scrolling -> floating -> master
+# Cycle: master -> scrolling -> floating -> master
LAYOUT=$(hyprctl getoption general:layout -j | jq -r '.str')
FLOATING=$(hyprctl activewindow -j 2>/dev/null | jq -r '.floating // false')
@@ -8,11 +8,6 @@ FLOATING=$(hyprctl activewindow -j 2>/dev/null | jq -r '.floating // false')
# Check if we're in "all floating" mode by checking layout
case "$LAYOUT" in
master)
- hyprctl keyword general:layout hy3
- # Create tab group for monocle behavior
- hyprctl dispatch hy3:changegroup tab
- ;;
- hy3)
hyprctl keyword general:layout scrolling
;;
scrolling)
diff --git a/dotfiles/hyprland/.local/bin/hyprland-plugins-setup b/dotfiles/hyprland/.local/bin/hyprland-plugins-setup
index f0181c8..e780cb7 100755
--- a/dotfiles/hyprland/.local/bin/hyprland-plugins-setup
+++ b/dotfiles/hyprland/.local/bin/hyprland-plugins-setup
@@ -37,22 +37,6 @@ for plugin in hyprscrolling xtra-dispatchers; do
fi
done
-# Add hy3 repository
-log "Adding hy3 repository..."
-if hyprpm add https://github.com/outfoxxed/hy3 2>&1 | tee -a "$LOGFILE"; then
- log "hy3 repository added"
-else
- log "Failed to add hy3 repository"
-fi
-
-# Enable hy3
-log "Enabling hy3..."
-if hyprpm enable hy3 2>&1 | tee -a "$LOGFILE"; then
- log "hy3 enabled"
-else
- log "Failed to enable hy3"
-fi
-
# Reload plugins into Hyprland
log "Reloading plugins..."
hyprpm reload 2>&1 | tee -a "$LOGFILE"
diff --git a/dotfiles/hyprland/.local/bin/layout-navigate b/dotfiles/hyprland/.local/bin/layout-navigate
index 4fc02c2..085df22 100755
--- a/dotfiles/hyprland/.local/bin/layout-navigate
+++ b/dotfiles/hyprland/.local/bin/layout-navigate
@@ -25,21 +25,6 @@ case "$LAYOUT" in
fi
fi
;;
- hy3)
- if [ "$MOVE" = "move" ]; then
- if [ "$DIR" = "next" ]; then
- hyprctl dispatch hy3:movewindow r
- else
- hyprctl dispatch hy3:movewindow l
- fi
- else
- if [ "$DIR" = "next" ]; then
- hyprctl dispatch hy3:movefocus r
- else
- hyprctl dispatch hy3:movefocus l
- fi
- fi
- ;;
*)
# master, dwindle, etc.
if [ "$MOVE" = "move" ]; then
diff --git a/dotfiles/hyprland/.local/bin/set-theme b/dotfiles/hyprland/.local/bin/set-theme
index 9bbcbd4..075e47b 100755
--- a/dotfiles/hyprland/.local/bin/set-theme
+++ b/dotfiles/hyprland/.local/bin/set-theme
@@ -53,35 +53,11 @@ apply_theme() {
# Window borders
hyprctl keyword general:col.active_border "rgba(d7af5fff)"
hyprctl keyword general:col.inactive_border "rgba(474544ff)"
- # hy3 tab bar (monocle mode)
- hyprctl keyword plugin:hy3:tabs:col.active "rgba(474544ff)"
- hyprctl keyword plugin:hy3:tabs:col.active.text "rgba(969385ff)"
- hyprctl keyword plugin:hy3:tabs:col.active.border "rgba(d7af5fff)"
- hyprctl keyword plugin:hy3:tabs:col.focused "rgba(474544ff)"
- hyprctl keyword plugin:hy3:tabs:col.focused.text "rgba(969385ff)"
- hyprctl keyword plugin:hy3:tabs:col.focused.border "rgba(d7af5fff)"
- hyprctl keyword plugin:hy3:tabs:col.inactive "rgba(2a2725ff)"
- hyprctl keyword plugin:hy3:tabs:col.inactive.text "rgba(6c6a60ff)"
- hyprctl keyword plugin:hy3:tabs:col.inactive.border "rgba(2a2725ff)"
- hyprctl keyword plugin:hy3:tabs:col.urgent "rgba(d47c59ff)"
- hyprctl keyword plugin:hy3:tabs:col.locked "rgba(8a9496ff)"
;;
hudson)
# Window borders
hyprctl keyword general:col.active_border "rgba(daa520ff)"
hyprctl keyword general:col.inactive_border "rgba(444444ff)"
- # hy3 tab bar (monocle mode)
- hyprctl keyword plugin:hy3:tabs:col.active "rgba(444444ff)"
- hyprctl keyword plugin:hy3:tabs:col.active.text "rgba(bbbbbbff)"
- hyprctl keyword plugin:hy3:tabs:col.active.border "rgba(daa520ff)"
- hyprctl keyword plugin:hy3:tabs:col.focused "rgba(444444ff)"
- hyprctl keyword plugin:hy3:tabs:col.focused.text "rgba(bbbbbbff)"
- hyprctl keyword plugin:hy3:tabs:col.focused.border "rgba(daa520ff)"
- hyprctl keyword plugin:hy3:tabs:col.inactive "rgba(333333ff)"
- hyprctl keyword plugin:hy3:tabs:col.inactive.text "rgba(888888ff)"
- hyprctl keyword plugin:hy3:tabs:col.inactive.border "rgba(333333ff)"
- hyprctl keyword plugin:hy3:tabs:col.urgent "rgba(cc6666ff)"
- hyprctl keyword plugin:hy3:tabs:col.locked "rgba(8abeb7ff)"
;;
esac
diff --git a/dotfiles/hyprland/.local/bin/toggle-scratchpad b/dotfiles/hyprland/.local/bin/toggle-scratchpad
deleted file mode 100755
index b3da6b4..0000000
--- a/dotfiles/hyprland/.local/bin/toggle-scratchpad
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/sh
-# Toggle a special workspace from waybar click
-# Tracks state to handle focus-loss auto-close issue
-# Usage: toggle-scratchpad <name>
-
-NAME="$1"
-if [ -z "$NAME" ]; then
- echo "Usage: toggle-scratchpad <name>"
- exit 1
-fi
-
-# Auto-detect current Hyprland socket if env var is stale
-if ! hyprctl version >/dev/null 2>&1; then
- # Find the most recent Hyprland instance with a socket
- for dir in /run/user/"$(id -u)"/hypr/*/; do
- if [ -S "${dir}.socket.sock" ]; then
- export HYPRLAND_INSTANCE_SIGNATURE="$(basename "$dir")"
- break
- fi
- done
-fi
-
-STATEFILE="/tmp/scratchpad-$NAME-open"
-NOW=$(date +%s)
-
-# If state file exists and recent, scratchpad was open and just closed by focus loss
-# Don't reopen it - user intended to close
-if [ -f "$STATEFILE" ]; then
- LAST=$(cat "$STATEFILE")
- AGE=$((NOW - LAST))
- rm -f "$STATEFILE"
- if [ "$AGE" -lt 2 ]; then
- # Was just open, user clicked to close - don't reopen
- exit 0
- fi
-fi
-
-# Opening the scratchpad - mark timestamp
-echo "$NOW" > "$STATEFILE"
-hyprctl dispatch togglespecialworkspace "$NAME"
diff --git a/dotfiles/hyprland/.local/bin/waybar-layout b/dotfiles/hyprland/.local/bin/waybar-layout
index 62470aa..1750eff 100755
--- a/dotfiles/hyprland/.local/bin/waybar-layout
+++ b/dotfiles/hyprland/.local/bin/waybar-layout
@@ -1,7 +1,7 @@
#!/bin/sh
# Hyprland layout indicator for waybar
# Shows current layout with nerd font icons
-# Layouts: master -> tab group (monocle) -> scrolling -> floating
+# Layouts: master -> scrolling -> floating
# Check if hyprctl is reachable
if ! hyprctl version >/dev/null 2>&1; then
@@ -22,9 +22,6 @@ if [ "$LAYOUT" = "master" ] && echo "$WSRULES" | grep -q "allfloat"; then
elif [ "$LAYOUT" = "scrolling" ]; then
ICON="󰯍"
TOOLTIP="Scrolling"
-elif [ "$LAYOUT" = "hy3" ]; then
- ICON="󰖯"
- TOOLTIP="Tab Group (Monocle)"
elif [ "$LAYOUT" = "master" ]; then
ICON="󰕰"
TOOLTIP="Master"