#!/bin/sh # Cycle Hyprland layout forward (next) or backward (prev) # Usage: layout-cycle next | layout-cycle prev LAYOUTS="master scrolling monocle" CURRENT=$(hyprctl getoption general:layout -j | jq -r '.str') DIR="${1:-next}" set -- $LAYOUTS COUNT=$# INDEX=0 i=0 for layout in $LAYOUTS; do if [ "$layout" = "$CURRENT" ]; then INDEX=$i break fi i=$((i + 1)) done if [ "$DIR" = "next" ]; then INDEX=$(( (INDEX + 1) % COUNT )) else INDEX=$(( (INDEX - 1 + COUNT) % COUNT )) fi i=0 for layout in $LAYOUTS; do if [ $i -eq $INDEX ]; then hyprctl keyword general:layout "$layout" break fi i=$((i + 1)) done