#!/usr/bin/env bash # Toggle dedicated vs integrated GPU mode via supergfxd (for hybrid gpu laptops, like Asus G14). # Declarative enablement + Runtime mode switching for Nnomarchy NixOS. STATE_FILE="/etc/nixos/state.json" # Check if supergfxd is enabled in config if [[ $(sudo jq -r '.features.hybridGPU // false' "$STATE_FILE") != "true" ]]; then if gum confirm "Hybrid GPU support is not enabled. Enable it now? (Requires sys-update)"; then sudo jq ".features.hybridGPU = true" "$STATE_FILE" > /tmp/state.json && sudo mv /tmp/state.json "$STATE_FILE" echo "Hybrid GPU support enabled in configuration. Applying changes..." sudo sys-update echo "Please run this command again after the update." exit 0 fi exit 1 fi if ! command -v supergfxctl &> /dev/null; then echo "supergfxctl not found. Is the system updated?" exit 1 fi gpu_mode=$(supergfxctl -g) echo "Current GPU mode: $gpu_mode" case "$gpu_mode" in "Integrated") if gum confirm "Switch to Hybrid mode (enables dGPU) and reboot?"; then supergfxctl -m Hybrid echo "Switching to Hybrid mode..." nnomarchy-system-reboot fi ;; "Hybrid") if gum confirm "Switch to Integrated mode (disables dGPU) and reboot?"; then supergfxctl -m Integrated echo "Switching to Integrated mode..." nnomarchy-system-reboot fi ;; *) echo "Hybrid GPU in unknown mode: $gpu_mode. Try 'supergfxctl -m Hybrid' manually." exit 1 ;; esac