dotfiles/i3/rename.sh
2022-06-11 20:00:32 +02:00

48 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//"/\\"}\""