support autodetection of current workspace; convert spaces to tabs

This commit is contained in:
ch1p 2021-03-04 21:14:08 +03:00
parent 339f942f00
commit f21e07d674
2 changed files with 50 additions and 35 deletions

View File

@ -1,6 +1,6 @@
BSD 2-Clause License BSD 2-Clause License
Copyright (c) 2017, 2020, Evgeny Zinoviev Copyright (c) 2017, 2020, 2021 Evgeny Zinoviev
All rights reserved. All rights reserved.
Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or without

View File

@ -1,5 +1,9 @@
#!/bin/bash #!/bin/bash
current_workspace() {
wmctrl -d | awk '{print $1" "$2}' | grep "*" | awk '{print $1}'
}
workspace_exists() { workspace_exists() {
wmctrl -d | awk '{print $1}' | grep -w -- "${1}" wmctrl -d | awk '{print $1}' | grep -w -- "${1}"
} }
@ -22,17 +26,24 @@ move_window() {
wmctrl -i -r "$1" -t "$2" wmctrl -i -r "$1" -t "$2"
} }
USAGE="A program to move all windows from workspace <1> to workspace <2> and usage() {
cat <<-_EOF
A program to move all windows from workspace <1> to workspace <2> and
vice versa. vice versa.
If the first workspace number is not specified, current workspace is assumed.
Workspace numbering starts with 0.
This is useful when you want to reorder workspaces but your DE doesn't have such This is useful when you want to reorder workspaces but your DE doesn't have such
feature (XFCE as an example). feature.
Usage: Usage:
$(basename "$0") <1> <2> $(basename "$0") [<1>] <2>
Dependencies: Dependencies:
wmctrl" wmctrl
_EOF
}
FROM=$1 FROM=$1
TO=$2 TO=$2
@ -42,10 +53,14 @@ if [ ! -x "$(command -v wmctrl)" ]; then
exit 1 exit 1
fi fi
if [ -z "$FROM" ] || [ -z "$TO" ]; then if [ -z "$TO" ]; then
if [ -z "$FROM" ]; then
echo "$USAGE" echo "$USAGE"
exit 1 exit 1
fi fi
TO="$FROM"
FROM=$(current_workspace)
fi
if [ "$FROM" == "$TO" ]; then if [ "$FROM" == "$TO" ]; then
exit exit