#!/usr/bin/env bash

set -euo pipefail

# [[ "$XDG_CURRENT_DESKTOP" != "niri" ]] && exit 1

# if grep -q 'prefer_order=(nvidia intel)' "$HOME/.local/snippets/set_display"; then
if grep -q '[^[:space:]]' "$HOME/.config/niri/config/prime.kdl"; then
	sed -i -E 's/prefer_order=\([^)]*\)/prefer_order=(intel nvidia)/' "$HOME/.local/snippets/set_display"
	echo "" >"$HOME/.config/niri/config/prime.kdl"
	echo "Disabled global Nvidia Prime offloading."
else
	sed -i -E 's/prefer_order=\([^)]*\)/prefer_order=(nvidia intel)/' "$HOME/.local/snippets/set_display"
	cat >"$HOME/.config/niri/config/prime.kdl" <<EOF
environment {
    __NV_PRIME_RENDER_OFFLOAD "1"
    __VK_LAYER_NV_optimus "NVIDIA_only"
    __GLX_VENDOR_LIBRARY_NAME "nvidia"
}
EOF
	echo "Enabled global Nvidia Prime offloading."
fi

# Restart session

if [[ $XDG_CURRENT_DESKTOP == niri ]]; then
	printf "Session restart is required to apply changes.\nDo it now? (Y/n): "
	read -r answer
	if [[ $answer =~ ^[Yy]$ || -z $answer ]]; then
		niri msg action quit
	fi
fi
