summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dotfiles/hyprland/.config/hypr/hyprland.conf7
-rwxr-xr-xdotfiles/hyprland/.local/bin/cycle-layout5
-rwxr-xr-xdotfiles/hyprland/.local/bin/layout-navigate6
-rwxr-xr-xdotfiles/hyprland/.local/bin/layout-resize24
-rwxr-xr-xdotfiles/hyprland/.local/bin/waybar-layout5
5 files changed, 39 insertions, 8 deletions
diff --git a/dotfiles/hyprland/.config/hypr/hyprland.conf b/dotfiles/hyprland/.config/hypr/hyprland.conf
index 96d9725..a71bc09 100644
--- a/dotfiles/hyprland/.config/hypr/hyprland.conf
+++ b/dotfiles/hyprland/.config/hypr/hyprland.conf
@@ -192,17 +192,18 @@ bind = $mod, J, exec, layout-navigate next
bind = $mod, K, exec, layout-navigate prev
bind = $mod SHIFT, J, exec, layout-navigate next move
bind = $mod SHIFT, K, exec, layout-navigate prev move
-bind = $mod, H, splitratio, -0.05
-bind = $mod, L, splitratio, +0.05
+bind = $mod, H, exec, layout-resize shrink
+bind = $mod, L, exec, layout-resize grow
bind = $mod, RETURN, layoutmsg, swapwithmaster master
bind = $mod, G, centerwindow
bind = $mod, TAB, workspace, previous
bind = $mod SHIFT, C, killactive
-# Layouts: master -> scrolling -> floating
+# Layouts: master -> scrolling -> monocle -> 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, S, exec, hyprctl keyword general:layout scrolling
+bind = $mod SHIFT, M, exec, hyprctl keyword general:layout monocle
bind = $mod SHIFT, F, exec, hyprctl dispatch workspaceopt allfloat
bind = $mod SHIFT, SPACE, togglefloating
diff --git a/dotfiles/hyprland/.local/bin/cycle-layout b/dotfiles/hyprland/.local/bin/cycle-layout
index a632142..310c182 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 -> scrolling -> floating -> master
+# Cycle: master -> scrolling -> monocle -> floating -> master
LAYOUT=$(hyprctl getoption general:layout -j | jq -r '.str')
FLOATING=$(hyprctl activewindow -j 2>/dev/null | jq -r '.floating // false')
@@ -11,6 +11,9 @@ case "$LAYOUT" in
hyprctl keyword general:layout scrolling
;;
scrolling)
+ hyprctl keyword general:layout monocle
+ ;;
+ monocle)
# Switch to master but float all windows
hyprctl keyword general:layout master
hyprctl dispatch workspaceopt allfloat
diff --git a/dotfiles/hyprland/.local/bin/layout-navigate b/dotfiles/hyprland/.local/bin/layout-navigate
index 085df22..07f748a 100755
--- a/dotfiles/hyprland/.local/bin/layout-navigate
+++ b/dotfiles/hyprland/.local/bin/layout-navigate
@@ -10,12 +10,12 @@ LAYOUT=$(hyprctl getoption general:layout -j | jq -r '.str')
case "$LAYOUT" in
scrolling)
- # Swap directions: J (next) goes left, K (prev) goes right
+ # J (next) goes left, K (prev) goes right
if [ "$MOVE" = "move" ]; then
if [ "$DIR" = "next" ]; then
- hyprctl dispatch layoutmsg movewindowto l
+ hyprctl dispatch swapwindow l
else
- hyprctl dispatch layoutmsg movewindowto r
+ hyprctl dispatch swapwindow r
fi
else
if [ "$DIR" = "next" ]; then
diff --git a/dotfiles/hyprland/.local/bin/layout-resize b/dotfiles/hyprland/.local/bin/layout-resize
new file mode 100755
index 0000000..c7e0151
--- /dev/null
+++ b/dotfiles/hyprland/.local/bin/layout-resize
@@ -0,0 +1,24 @@
+#!/bin/sh
+# Layout-aware resize for Hyprland
+# Usage: layout-resize <grow|shrink>
+
+DIR="$1"
+LAYOUT=$(hyprctl getoption general:layout -j | jq -r '.str')
+
+case "$LAYOUT" in
+ scrolling)
+ if [ "$DIR" = "grow" ]; then
+ hyprctl dispatch resizeactive 50 0
+ else
+ hyprctl dispatch resizeactive -50 0
+ fi
+ ;;
+ *)
+ # master, dwindle, etc.
+ if [ "$DIR" = "grow" ]; then
+ hyprctl dispatch splitratio 0.05
+ else
+ hyprctl dispatch splitratio -0.05
+ fi
+ ;;
+esac
diff --git a/dotfiles/hyprland/.local/bin/waybar-layout b/dotfiles/hyprland/.local/bin/waybar-layout
index 1750eff..083e9ef 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 -> scrolling -> floating
+# Layouts: master -> scrolling -> monocle -> floating
# Check if hyprctl is reachable
if ! hyprctl version >/dev/null 2>&1; then
@@ -22,6 +22,9 @@ if [ "$LAYOUT" = "master" ] && echo "$WSRULES" | grep -q "allfloat"; then
elif [ "$LAYOUT" = "scrolling" ]; then
ICON="󰯍"
TOOLTIP="Scrolling"
+elif [ "$LAYOUT" = "monocle" ]; then
+ ICON="󰊓"
+ TOOLTIP="Monocle"
elif [ "$LAYOUT" = "master" ]; then
ICON="󰕰"
TOOLTIP="Master"