feat(core): migrate system state to unified declarative JSON
- Consolidate all configuration toggles (suspend, idle, waybar, etc.) into ~/.config/home-manager/state.json - Introduce nomarchy.toggles and nomarchy.hyprland options in Nix - Inject toggle states into all bin/ scripts via environment variables - Update toggle scripts to mutate JSON and trigger background rebuilds - Add a migration script to transition legacy flag files to the new format
This commit is contained in:
@@ -2,14 +2,14 @@
|
||||
|
||||
# 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"
|
||||
STATE_FILE="$HOME/.config/home-manager/state.json"
|
||||
mkdir -p "$(dirname "$STATE_FILE")"
|
||||
|
||||
if [ ! -f "$STATE_FILE" ]; then
|
||||
echo '{"gaps_out": 10, "gaps_in": 5, "border_size": 2}' > "$STATE_FILE"
|
||||
echo "{}" > "$STATE_FILE"
|
||||
fi
|
||||
|
||||
gaps=$(jq -r '.gaps_out' "$STATE_FILE")
|
||||
gaps=$(jq -r '.hyprland.gaps_out // 10' "$STATE_FILE")
|
||||
|
||||
if [[ $gaps == "0" ]]; then
|
||||
NEW_STATE='{"gaps_out": 10, "gaps_in": 5, "border_size": 2}'
|
||||
@@ -23,5 +23,7 @@ else
|
||||
hyprctl keyword general:border_size 0
|
||||
fi
|
||||
|
||||
echo "$NEW_STATE" > "$STATE_FILE"
|
||||
TMP_JSON=$(mktemp)
|
||||
jq ".hyprland = $NEW_STATE" "$STATE_FILE" > "$TMP_JSON" && mv "$TMP_JSON" "$STATE_FILE"
|
||||
|
||||
echo "Toggled gaps to $NEW_STATE declaratively."
|
||||
|
||||
Reference in New Issue
Block a user