Files
Nomarchy/bin/nomarchy-toggle-screensaver
Bernardo Magri cfd5e4bb65 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
2026-04-04 10:11:09 +01:00

26 lines
702 B
Bash
Executable File

#!/usr/bin/env bash
# Toggles the screensaver availability.
# Hybrid: updates state.json and runs env-update for persistence.
STATE_FILE="$HOME/.config/home-manager/state.json"
mkdir -p "$(dirname "$STATE_FILE")"
# Initialize if doesn't exist
[[ ! -f $STATE_FILE ]] && echo "{}" > "$STATE_FILE"
if [[ $NOMARCHY_TOGGLE_SCREENSAVER == "false" ]]; then
NEW_VALUE="true"
notify-send -u low "󱄄 Screensaver enabled"
else
NEW_VALUE="false"
notify-send -u low "󱄄 Screensaver disabled"
fi
TMP_JSON=$(mktemp)
jq ".screensaver = $NEW_VALUE" "$STATE_FILE" > "$TMP_JSON" && mv "$TMP_JSON" "$STATE_FILE"
echo "Screensaver state set to $NEW_VALUE. Updating environment..."
env-update