#!/bin/bash moveto=0 if [ "$1" = "--move" ]; then moveto=1 shift fi get_workspaces() { workspace_json="$(i3-msg -t get_workspaces)" IFS=',' read -ra split <<< "$workspace_json" for entry in "${split[@]}"; do if [[ "$entry" == *"name"* ]]; then IFS='"' read -ra split <<< "$entry" echo "${split[3]}" fi done } selection=$(get_workspaces | rofi -dmenu "$@") if [[ $moveto -eq 0 ]]; then i3-msg workspace "$selection" else i3-msg move container to workspace "$selection" fi # vim: expandtab sw=2 ts=2