dots-of-war/files/.config/bspwm/bspwm_scripts/bringwindow

26 lines
838 B
Text
Raw Normal View History

2020-04-27 15:21:09 +00:00
#!/bin/bash
case $1 in "-a") PROMPT="Goto:"; MODE="go" ;; "-R") PROMPT="Bring:"; MODE="bring" ;; esac
if [ -n "$2" ]; then
WINDOW="$2"
else
WINDOW=$(paste \
<(xdotool search .) \
<(xdotool search . get_desktop_for_window %@ 2> /dev/null) \
<(xdotool search . getwindowname %@) |\
awk '{FS="\t"; if($2 != -1) printf "%10d [%d] %s\n",$1,$2+1,$3}' |\
vmenu --no-refocus -p $PROMPT |\
sed 's/^ *//g' |\
cut -d ' ' -f 1)
fi
if [ -n "$WINDOW" ]; then
if [ bring = $MODE ]; then
if DESK=$(xdotool get_desktop 2> /dev/null); then
xdotool set_desktop_for_window "$WINDOW" $DESK
sleep 0.005 # wait for wm to notice
fi
fi
xdotool windowmap "$WINDOW" windowactivate "$WINDOW" windowfocus "$WINDOW" windowraise "$WINDOW"
fi