Swap i3 displays / workspaces between displays
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
# requires jq | |
DISPLAY_CONFIG=($(i3-msg -t get_outputs | jq -r '.[]|"\(.name):\(.current_workspace)"')) | |
for ROW in "${DISPLAY_CONFIG[@]}" | |
do | |
IFS=':' | |
read -ra CONFIG <<< "${ROW}" | |
if [ "${CONFIG[0]}" != "null" ] && [ "${CONFIG[1]}" != "null" ]; then | |
echo "moving ${CONFIG[1]} right..." | |
i3-msg -- workspace --no-auto-back-and-forth "${CONFIG[1]}" | |
i3-msg -- move workspace to output right | |
fi | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
i3 v4.20.1
throws an error for this:And I've found it's not needed at all, the
i3-msg -- workspace "${ACTIVE_WS}"
will switch to the output anyway.But it also needs
--no-auto-back-and-forth
in order to work as expected.