diff options
-rwxr-xr-x | dswitcher | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/dswitcher b/dswitcher new file mode 100755 index 0000000..00504a5 --- /dev/null +++ b/dswitcher @@ -0,0 +1,23 @@ +#!/usr/bin/env bash + +# Date format, for use as the prompt. +date=$(date +"%Y.%m.%d..%H.%M") + +# dmenu cannot display more than 30 lines, to avoid screen clutter. Only +# relevant if you have more than 30 windows open. +height=$(wmctrl -l | wc -l) +if [[ $height -gt 30 ]] + then heightfit=30 + else heightfit=$height +fi + +num=$(wmctrl -l \ + | sed 's/ / /' \ + | cut -d " " -f 4- \ + | nl -w 3 -n rn \ + | sed -r 's/^([ 0-9]+)[ \t]*(.*)$/\1 - \2/' \ + | dmenu -i -p "$date" -l $heightfit \ + | cut -d '-' -f -1 +) +[[ -z "$num" ]] && exit +wmctrl -l | sed -n "$num p" | cut -c -10 | xargs wmctrl -i -a |