#!/usr/bin/env bash # Toggles the window gaps globally between no gaps and the default 10/5/2, declaratively and instantly. STATE_DIR="$HOME/.config/nomarchy" STATE_FILE="$STATE_DIR/state.json" mkdir -p "$STATE_DIR" if [ ! -f "$STATE_FILE" ]; then echo "{}" > "$STATE_FILE" fi gaps=$(jq -r '.hyprland.gaps_out // 10' "$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 TMP_JSON=$(mktemp) jq --argjson state "$NEW_STATE" '.hyprland = $state' "$STATE_FILE" > "$TMP_JSON" && mv "$TMP_JSON" "$STATE_FILE" echo "Toggled gaps to $NEW_STATE declaratively."