#!/bin/sh

# set the following quirk in .config/spectrwm/spectrwm.conf
# quirk[XConsole] = FLOAT + ANYWHERE

# get XConsole window id
WID=$(wmctrl -x -l XConsole | fgrep '.XConsole' | cut -d" " -f1)

if [ -z "$WID" ]
then
   xconsole &
else
    # check if window is iconfified or on another WS (or both)
    if xwininfo -id $WID | fgrep -q IsUnMapped
    then
        # move window to current workspace
        wmctrl -i -r $WID -t $(xprop -root _NET_CURRENT_DESKTOP | cut -d'=' -f2)
        #wmctrl -i -r $WID -t $_SWM_WS
        # remove hidden flag
        wmctrl -i -r $WID -b remove,hidden
    else
        wmctrl -i -r $WID -t 11
        # window is visible => hide
        wmctrl -i -r $WID -b add,hidden
    fi
fi