#!/usr/bin/env bash

# Toggles the window gaps globally between no gaps and the default 10/5/2, declaratively and instantly.

STATE_FILE="$HOME/.config/home-manager/hyprland-state.json"
mkdir -p "$(dirname "$STATE_FILE")"

if [ ! -f "$STATE_FILE" ]; then
    echo '{"gaps_out": 10, "gaps_in": 5, "border_size": 2}' > "$STATE_FILE"
fi

gaps=$(jq -r '.gaps_out' "$STATE_FILE")

if [[ $gaps == "0" ]]; then
  NEW_STATE='{"gaps_out": 10, "gaps_in": 5, "border_size": 2}'
  hyprctl keyword general:gaps_out 10
  hyprctl keyword general:gaps_in 5
  hyprctl keyword general:border_size 2
else
  NEW_STATE='{"gaps_out": 0, "gaps_in": 0, "border_size": 0}'
  hyprctl keyword general:gaps_out 0
  hyprctl keyword general:gaps_in 0
  hyprctl keyword general:border_size 0
fi

echo "$NEW_STATE" > "$STATE_FILE"
echo "Toggled gaps to $NEW_STATE declaratively."
