#!/usr/bin/env zsh if [[ -f $HOME/.zsh_alias ]]; then source $HOME/.zsh_alias fi local dmenu_string="Wrong parameter" case $1 in "goto") dmenu_string="Switch to desktop: " ;; "move") dmenu_string="Move node to desktop: " ;; "movefollow") dmenu_string="Move and follow node to desktop: " ;; esac local desktop=$(bspc query -m focused -D --names | dmenu -i -fn $(get-font) -nb "#282a36" -nf "#f8f8f2" -sb "#44475a" -sf "#f8f8f2" -p "$dmenu_string") local found=false local desktop_list=$(bspc query -m focused -D --names) local desktop_array=("${(f)desktop_list}") if [[ $desktop != "" ]]; then for name in $desktop_array; do if [[ $name == $desktop ]]; then found=true fi done fi if [ ! $found = true ]; then bspc monitor -d $desktop_array $desktop fi case $1 in "goto") bspc desktop -f $desktop ;; "move") bspc node -d $desktop ;; "movefollow") bspc node -d $desktop --follow ;; esac