#!/bin/sh

icon_intel="#1"
icon_nvidia="#2"
icon_hybrid="#3"

hybrid_switching=0


gpu_current() {
	mode=$(optimus-manager --print-mode)

    echo "$mode" | cut -d ' ' -f 5 | tr -d '[:space:]'
}

gpu_switch() {
    mode=$(gpu_current)

	if [ "$mode" = "intel" ]; then
		next="nvidia"
	elif [ "$mode" = "nvidia" ]; then
		if [ "$hybrid_switching" = 1 ]; then
			next="hybrid"
		else
			next="intel"
		fi
	elif [ "$mode" = "hybrid" ]; then
		next="nvidia"
	fi

	optimus-manager --switch "$next" --no-confirm
}

gpu_display(){
    mode=$(gpu_current)

    if [ "$mode" = "intel" ]; then
		echo "$icon_intel"
	elif [ "$mode" = "nvidia" ]; then
		echo "$icon_nvidia"
	elif [ "$mode" = "hybrid" ]; then
		echo "$icon_hybrid"
	fi
}

case "$1" in
	--switch)
        gpu_switch
        ;;
    *)
        gpu_display
        ;;
esac
