diff --git a/README.md b/README.md index 50fb0d1..1fc783e 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,14 @@ Useful utility scripts. `install.sh` -- install all files in `./src/` to install directory (`/usr/local/bin/`). +`install.sh -o` -- overwrite pre-existing files in destination directory. + `install.sh -u` -- uninstall all files in `./src/` from install directory. +### Dependencies + +* `xtitle` - available in AUR. + ## Files | Script | Comment | @@ -15,4 +21,5 @@ Useful utility scripts. |newsh ["command"]|Create executable `sh` script. Optionally add `command`.| |pam-say |Tells Pamela to say something.| |qutesesh|Open a Qutebrowser session.| +|window-select|Use Dmenu to select from all windows.| diff --git a/src/window-select b/src/window-select new file mode 100755 index 0000000..cfcec2d --- /dev/null +++ b/src/window-select @@ -0,0 +1,20 @@ +#!/bin/bash + +# dependency - xtitle + +. "$HOME/.config/dmenu/dmenurc" + +if command -v bspc ; then + # adapted from: https://www.reddit.com/r/bspwm/comments/er2olp/dmenu_window_picker/ff16ff0/ + ids=($(bspc query -N -n .window)) + options="$(xtitle "${ids[@]}" | awk '{ print ++i": "$0 }')" + + [[ -n "$options" ]] || exit + + id_index="$(<<< "$options" dmenu $DMENU_OPTIONS | cut -d: -f1)" + [[ -n "$id_index" ]] || exit + 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