#!/usr/bin/env bash

LAYOUTS=(dwindle scrolling monocle master)

INFO=$(hyprctl activeworkspace -j)

LAYOUT=$(printf '%s' "$INFO" | jq -r '.tiledLayout')
WORKSPACE_ID=$(printf '%s' "$INFO" | jq -r '.id')
WORKSPACE_NAME=$(printf '%s' "$INFO" | jq -r '.name')

CURRENT=0

for i in "${!LAYOUTS[@]}"; do
  if [ "${LAYOUTS[i]}" = "$LAYOUT" ]; then
    CURRENT=i
    break
  fi
done

if [[ "$1" == "--prev" ]]; then 
  TARGET=$(( (i - 1) % ${#LAYOUTS[@]} ))
else
  TARGET=$(( (i + 1) % ${#LAYOUTS[@]} ))
fi

# CLI used before v0.55.0
# hyprctl keyword workspace "$WORKSPACE_ID", layout:"${LAYOUTS[$TARGET]}" > /dev/null

hyprctl eval "hl.workspace_rule({ workspace = '$WORKSPACE_ID', layout = '${LAYOUTS[$TARGET]}' })" > /dev/null

notify-send --icon state-information \
            --app-name $0 \
            -h "string:x-canonical-private-synchronous:$0" \
            "Workspace layout was changed" "Layout for workspace $WORKSPACE_NAME: - ${LAYOUTS[$TARGET]}"
