47 lines
1,017 B
Bash
Executable file
47 lines
1,017 B
Bash
Executable file
#!/bin/bash
|
|
|
|
set -euo pipefail
|
|
|
|
with_number=false
|
|
if test "${1:-}" = --with-number; then with_number=true; fi
|
|
|
|
cur_ws="$(swaymsg -t get_workspaces | jq '.[] | select(.focused==true)')"
|
|
cur_ws_number="$(echo "$cur_ws" | jq '.num')"
|
|
|
|
cur_ws_fullname="$(echo "$cur_ws" | jq --raw-output '.name')"
|
|
# Strip workspace number from name
|
|
if [[ $cur_ws_fullname == [0-9] ]]; then
|
|
cur_ws_name=""
|
|
else
|
|
cur_ws_name="${cur_ws_fullname#-}"
|
|
cur_ws_name="${cur_ws_fullname#[0-9]:}"
|
|
cur_ws_name="${cur_ws_name# }"
|
|
fi
|
|
|
|
if test "$with_number" = true; then
|
|
prompt="rename and renumber workspace $cur_ws_number:"
|
|
default="$cur_ws_fullname"
|
|
else
|
|
prompt="rename workspace $cur_ws_number:"
|
|
default="$cur_ws_name"
|
|
fi
|
|
|
|
newname="$(
|
|
rofi -dmenu -p "$prompt"
|
|
)"
|
|
|
|
if test "$with_number" = true; then
|
|
if test -z "$newname"; then
|
|
exit 1
|
|
fi
|
|
else
|
|
if test -z "$newname"; then
|
|
newname="$cur_ws_number"
|
|
else
|
|
newname="$cur_ws_number: $newname"
|
|
fi
|
|
fi
|
|
|
|
echo "renaming to \`$newname\`"
|
|
|
|
swaymsg "rename workspace to \"${newname//"/\\"}\""
|