diff options
Diffstat (limited to 'dotfiles')
| -rw-r--r-- | dotfiles/hyprland/.config/hypr/hyprland.conf | 7 | ||||
| -rwxr-xr-x | dotfiles/hyprland/.local/bin/cycle-layout | 5 | ||||
| -rwxr-xr-x | dotfiles/hyprland/.local/bin/layout-navigate | 6 | ||||
| -rwxr-xr-x | dotfiles/hyprland/.local/bin/layout-resize | 24 | ||||
| -rwxr-xr-x | dotfiles/hyprland/.local/bin/waybar-layout | 5 |
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" |
