#!/bin/bash

if [ -z "$(pgrep -f "xterm -geometry 30x2")" ]; then
    /usr/bin/xterm -geometry 30x2 -bg LightYellow2 -fg black -fa monospace:pixelsize=16 -e $0 &
    exit 0
fi

prp="$(xprop)"
prop="$(grep _NET_WM_PID <<< $prp | sed 's/_NET_WM_PID(CARDINAL) = //')"
if [ -z "$prop" ]; then
    prop="$(grep WM_CLASS <<< $prp)"
    app="$(echo "$prop" | sed 's/.*, //; s/\"//g')"
else
    ps_prop="$(ps ww -o ppid=,pid=,cmd= -q $prop)"
    ps_prop=$(echo $ps_prop)
    id1="$(echo "$ps_prop" | cut -d\  -f1)"
    id2="$(echo "$ps_prop" | cut -d\  -f2)"
    [ $id1 -gt 1 ] && id=$id1 || id=$id2
    app="$(ps ww -o cmd= -q $id | cut -d\  -f2)"
    [[ "${app:2:7}" =~ base|calc|draw|impress|math|writer ]] && app="libreoffice-${app:2}"
    [[ "$app" =~ \.html?$|^https?\: ]] && app="google-chrome"
fi
app="$(basename "$app" 2>/dev/null)"
[ $? -gt 0 ] && id=$id2 && app="$(ps ww -o cmd= -q $id | cut -d\  -f2)" && app="$(basename "$app" 2>/dev/null)" || :
([ $? -gt 0 ] || [ -z "$app" ]) && id=$id2 && app="$(ps ww -o cmd= -q $id | cut -d\  -f3)" && app="$(basename "$app" 2>/dev/null)" || :
[ $? -gt 0 ] && app="$(ps ww -o cmd= -q $id | cut -d\  -f1)" && app="$(basename "$app" 2>/dev/null)" || :
[ -z "$app" ] && app="yad"
[ "$app" = "systray-item-edit" ] && app="$(ps ww -o cmd= -q $id | cut -d\  -f3)" && app="$(basename "$app")"
[ "$app" = "gtk-theme" ] && app="$(ps ww -o cmd= -q $id | cut -d\  -f4)" && app="$(basename "$app")"

case "$app" in
	calibre-gui) app="calibre" ;;
	calibre-ebook-viewer) app="ebook-viewer" ;;
	skype) app="skypeforlinux" ;;
esac

echo $app
read

while pgrep -f "xterm -geometry 30x2" > /dev/null; do kill "$(pgrep -f "xterm -geometry 30x2" | head -1)"; done
