#!/bin/bash

# omarchy:summary=Toggle to pop-out a tile to stay fixed on a display basis.
# omarchy:args=[width height x y]

width=${1:-1300}
height=${2:-900}
x=${3:-}
y=${4:-}

active=$(hyprctl activewindow -j)
pinned=$(echo "$active" | jq ".pinned")
addr=$(echo "$active" | jq -r ".address")

if [[ $pinned == "true" ]]; then
  hyprctl -q --batch \
    "dispatch pin address:$addr;" \
    "dispatch togglefloating address:$addr;" \
    "dispatch tagwindow -pop address:$addr;"
elif [[ -n $addr ]]; then
  hyprctl dispatch togglefloating address:$addr
  hyprctl dispatch resizeactive exact $width $height address:$addr

  if [[ -n $x && -n $y ]]; then
    hyprctl dispatch moveactive $x $y address:$addr
  else
    hyprctl dispatch centerwindow address:$addr
  fi

  hyprctl -q --batch \
    "dispatch pin address:$addr;" \
    "dispatch alterzorder top address:$addr;" \
    "dispatch tagwindow +pop address:$addr;"
fi
