diff options
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/bin/move_workspace | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/bin/bin/move_workspace b/bin/bin/move_workspace new file mode 100755 index 0000000..d7944de --- /dev/null +++ b/bin/bin/move_workspace @@ -0,0 +1,21 @@ +#!/usr/bin/env bash + +wkspces=$(i3-msg -t get_workspaces | grep -Po '"name":.*?[^\\]"' | sed 's/"name":"\([^"]\+\)"/\1/g') +focused=$(i3-msg -t get_workspaces | grep -Po '{[^}]*"focused":true[^}]*}' | sed 's/.*"name":"\([^"]*\)".*$/\1/g') + +focused_number=${focused%%:*} +focused_name=${focused#*:} + +[[ $1 = 'n' ]] && new_number=$((focused_number + 1)) +[[ $1 = 'p' ]] && new_number=$((focused_number - 1)) + +next=$(echo "${wkspces}" | grep "^${new_number}") + +i3-msg rename workspace to ${new_number}:${focused_name} + +if [[ ! -z "${next// }" ]]; then + name_next=${next#*:} + i3-msg workspace "${next}" + i3-msg rename workspace to ${focused_number}:${name_next} + i3-msg workspace "${new_number}:${focused_name}" +fi |