#!/usr/bin/env bash
#  ╔═╗═╗ ╦╔╦╗╔═╗╦═╗╔╗╔╔═╗╦    ╦═╗╦ ╦╦  ╔═╗╔═╗
#  ║╣ ╔╩╦╝ ║ ║╣ ╠╦╝║║║╠═╣║    ╠╦╝║ ║║  ║╣ ╚═╗
#  ╚═╝╩ ╚═ ╩ ╚═╝╩╚═╝╚╝╩ ╩╩═╝  ╩╚═╚═╝╩═╝╚═╝╚═╝
#

wid=$1
class=$2
instance=$3
consequences=$4

main () {
case "$class" in
	FloaTerm)
		eval "$consequences"
		[ "$state" ] || echo "state=floating center=on rectangle=780x450+0+0"
		;;
	Updates)
		eval "$consequences"
		[ "$state" ] || echo "state=floating  rectangle=650x268+200+72  sticky=on"
		;;
	Updating)
		eval "$consequences"
		[ "$state" ] || echo "state=floating  rectangle=419x268+200+72  sticky=on"
		;;
	Ranger)
		eval "$consequences"
		[ "$state" ] || echo "state=floating rectangle=811x286+0+0 center=on"
		;;
	MusicPlayer)
		eval "$consequences"
		[ "$state" ] || echo "state=floating rectangle=525x370+0+0 center=on"
		;;
	Sysfetch)
		eval "$consequences"
		[ "$state" ] || echo "state=floating rectangle=352x550+1250+72 sticky=on"
		;;
	mpv|vlc)
	    eval "$consequences"
		[ "$state" ] || echo "state=floating focus=on center=on rectangle=849x477+0+0"
		;;
	Viewnior|obs|Inkscape|feh)
	    eval "$consequences"
	    [ "$state" ] || echo "state=floating focus=on center=on"
		;;
	whatsapp-nativefier-d40211|TelegramDesktop|discord)
	    eval "$consequences"
	    [ "$state" ] || echo "state=pseudo_tiled center=on follow=on rectangle=930x617+0+0"
		;;
	retroarch)
	    eval "$consequences"
	    [ "$state" ] || echo "state=pseudo_tiled  center=on follow=on"
	    ;;
	ranger)
	    eval "$consequences"
	    [ "$state" ] || echo "state=floating rectangle=811x316+0+0 center=on"
	    ;;
	Pavucontrol|stacer|Lxappearance|Xfce4-power-manager-settings|System-config-printer.py|Lxtask|Lxrandr|Arandr|Exo-helper-1)
	    eval "$consequences"
	    [ "$state" ] || echo "state=floating center=on"
	    ;;
	Virt-manager)
	    eval "$consequences"
	    [ "$state" ] || echo "state=floating  follow=on center=on"
	    ;;
	Thunar)
	    eval "$consequences"
	    [ "$state" ] || echo "state=pseudo_tiled  rectangle=966x576+0+0 follow=on center=on"
	    ;;
	firefox|Navigator)
	    eval "$consequences"
	    [ "$state" ] || echo  "follow=on"
	    ;;
	 Transmission-gtk|qBittorrent)
	    eval "$consequences"
	    [ "$state" ] || echo "follow=on"
	    ;;
	  Spotify)
		eval "$consequences"
	    [ "$state" ] || echo "state=pseudo_tiled center=on rectangle=1125x600 follow=on"
		;;
		"") ## spotify hack
        sleep 0.5
		wm_class=($(xprop -id $wid | grep "WM_CLASS" | grep -Po '"\K[^,"]+'))
		class=${wm_class[-1]}
		[[ ${#wm_class[@]} == "2" ]] && instance=${wm_class[0]}
		[[ -n "$class" ]] && main
		;;
esac
}

main
case "$instance" in
     Toolkit)
        eval "$consequences"
        [ "$state" ] || echo "state=floating sticky=on rectangle=500x290+1054+593"
	    ;;
esac  
