add options for current monitor/desktop and all windows

This commit is contained in:
Ray Elliott 2020-04-01 15:23:49 +01:00
parent 11e4a397a1
commit aa0d70f8b3
1 changed files with 15 additions and 3 deletions

View File

@ -2,11 +2,25 @@
# dependency - xtitle # dependency - xtitle
# arguments:
# none - select from windows on current desktop
# 'monitor' - select from all windows.
# 'all' - select from all windows.
. "$HOME/.config/dmenu/dmenurc" . "$HOME/.config/dmenu/dmenurc"
if command -v bspc ; then if command -v bspc ; then
# adapted from: https://www.reddit.com/r/bspwm/comments/er2olp/dmenu_window_picker/ff16ff0/ # adapted from: https://www.reddit.com/r/bspwm/comments/er2olp/dmenu_window_picker/ff16ff0/
ids=($(bspc query -N -n .window)) # NOTE: query can be '.window', '.local.window', '.local.tiled' (to only have tiled windows
# as options) or '.local.window.!fullscreen.!floating' (to only have tiled and pseudo_tiled windows as options).
if [ "$1" = all ] ; then
ids=($(bspc query -N -n ".window"))
elif [ "$1" = monitor ] ; then
ids=($(bspc query -N -m "focused"))
else
# current desktop
ids=($(bspc query -N -n ".local.window"))
fi
options="$(xtitle "${ids[@]}" | awk '{ print ++i": "$0 }')" options="$(xtitle "${ids[@]}" | awk '{ print ++i": "$0 }')"
[[ -n "$options" ]] || exit [[ -n "$options" ]] || exit
@ -15,6 +29,4 @@ if command -v bspc ; then
[[ -n "$id_index" ]] || exit [[ -n "$id_index" ]] || exit
bspc node "${ids[$((id_index - 1))]}" -f bspc node "${ids[$((id_index - 1))]}" -f
# NOTE: you can change the query from '.window' to '.local.window', '.local.tiled' (to only have tiled windows
# as options) or '.local.window.!fullscreen.!floating' (to only have tiled and pseudo_tiled windows as options).
fi fi