#!/bin/bash

# app executer and window switcher by shitpoet@gmail.com
# $1 - app title, $2 - exe path

if list=`wmctrl -l | grep "$1"`; then
  activeid=`xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)" | sed -e 's/^_NET_ACTIVE_WINDOW(WINDOW): window id # //'`
  activeid=`printf %d $activeid`
  if test=`xprop -id $activeid | grep TITLE | grep "$1"`; then
#    echo active $activeid
#    echo list:
#    echo "$list"
#    echo end of list
#    echo "$list" | head -n 1
    n=`wmctrl -l | grep "$1" | wc -l`
#    echo total $n
    # select next window in list
    m=0
    id1=$(printf "%d" "`echo "$list" | head -n 1 | tail -n 1 | sed -e 's/\s.*//'`")
    id2=$(printf "%d" "`echo "$list" | head -n 2 | tail -n 1 | sed -e 's/\s.*//'`")
    id3=$(printf "%d" "`echo "$list" | head -n 3 | tail -n 1 | sed -e 's/\s.*//'`")
    id4=$(printf "%d" "`echo "$list" | head -n 4 | tail -n 1 | sed -e 's/\s.*//'`")
    id5=$(printf "%d" "`echo "$list" | head -n 5 | tail -n 1 | sed -e 's/\s.*//'`")
    id6=$(printf "%d" "`echo "$list" | head -n 6 | tail -n 1 | sed -e 's/\s.*//'`")
    id7=$(printf "%d" "`echo "$list" | head -n 7 | tail -n 1 | sed -e 's/\s.*//'`")
    id8=$(printf "%d" "`echo "$list" | head -n 8 | tail -n 1 | sed -e 's/\s.*//'`")
    id9=$(printf "%d" "`echo "$list" | head -n 9 | tail -n 1 | sed -e 's/\s.*//'`")             
    if [ "$activeid" == "$id1" ]; then m=1; fi    
    if [ "$activeid" == "$id2" ]; then m=2; fi    
    if [ "$activeid" == "$id3" ]; then m=3; fi    
    if [ "$activeid" == "$id4" ]; then m=4; fi
    if [ "$activeid" == "$id5" ]; then m=5; fi
    if [ "$activeid" == "$id6" ]; then m=6; fi
    if [ "$activeid" == "$id7" ]; then m=7; fi
    if [ "$activeid" == "$id8" ]; then m=8; fi
    if [ "$activeid" == "$id9" ]; then m=9; fi                    
#    echo number $m
  	if (( $m >= $n )); then m=1; else m=`echo "$m+1"|bc`; fi
#  	echo number $m
	
	  idm=$(printf "%d" "`echo "$list" | head -n $m | tail -n 1 | sed -e 's/\s.*//'`")      
	  idm=$(printf "0x%x" "$idm")
#	echo $idm
	  wmctrl -ia $idm  
  else
    wmctrl -a "$1" 
  fi

else 
  $2 & 
fi 
