#!/bin/zsh

command -v scwrypts &>/dev/null || {
	[ -f $HOME/.local/bin/scwrypts ] \
		&& scwrypts() { $HOME/.local/bin/scwrypts $@; } \
		|| scwrypts() { $HOME/.wryn/zsh/plugins/scwrypts/scwrypts $@; } \
		;
}

case $1 in
	( next | previous | play-pause ) playerctl $1 ;;
	( fastforward ) playerctl position 5+ ;;
	( rewind      ) playerctl position 5- ;;

	( volumedown ) scwrypts -n desktop pulseaudio -- sink down ;;
	( volumeup   ) scwrypts -n desktop pulseaudio -- sink up ;;
	( volumemute ) scwrypts -n desktop pulseaudio -- sink mute ;;
	( micmute    ) scwrypts -n desktop pulseaudio -- source mute ;;

	( backlightup   ) scwrypts -n desktop backlight -- up ;;
	( backlightdown ) scwrypts -n desktop backlight -- down ;;

	( lock ) scwrypts -n desktop lock i3 -- ;;

	( bgrandomize ) scwrypts desktop set i3 background -- random ;;

	( logout ) scwrypts desktop i3 logout -- ;;

	( launch )
		local PROGRAM
		local ARGS=()
		case $2 in
			messages ) PROGRAM=slack ARGS+=(-c Slack --has-statusbar-icon) ;;
			voice    ) PROGRAM=google-voice-desktop ;;
			ytmusic  ) PROGRAM=youtubemusic-nativefier ;;

			1pass    ) PROGRAM=1password   ARGS+=(-c 1Password) ;;
			discord  ) PROGRAM=discord     ARGS+=(--has-statusbar-icon) ;;
			obs      ) PROGRAM=obs         ARGS+=(-c '^obs' -n -l --has-statusbar-icon) ;;
			pavuctrl ) PROGRAM=pavucontrol ARGS+=(-s 0.5 -c '^Pavucontrol') ;;
			scrcpy   ) PROGRAM=scrcpy      ARGS+=(-n -l) ;;
			spotify  ) PROGRAM=spotify     ARGS+=(-c Spotify) ;;

			*        ) PROGRAM=$2 ;;
		esac
		scwrypts i3 launch or show -- $PROGRAM ${ARGS[@]}
		;;

	( screenshot )
		command -v deepin-screen-recorder || notify-send "I3 UTILS" "no screenshot application available"
		deepin-screen-recorder
		DEEPIN_CONFIG="$HOME/.config/deepin/deepin-screen-recorder/deepin-screen-recorder.conf"

		: \
			&& echo "fixing stupid settings" \
			&& mv $DEEPIN_CONFIG $DEEPIN_CONFIG.bak \
			&& sed '/specifiedSavepath=.*home.*Pictures/d' $DEEPIN_CONFIG.bak > $DEEPIN_CONFIG \
			|| mv $DEEPIN_CONFIG.bak $DEEPIN_CONFIG.conf \
			;
		;;
esac