#!/bin/bash source ~/.config/i3/common_var.sh source $GENERATED_MONITOR_CONF $MONITOR_CONF # Apply configured layout function process_workspace () { WORKSPACE_NUMBER=$(echo $1 | cut -d ',' -f1) OUTPUT_NAME=$(echo $1 | cut -d ',' -f2) NEW_OUTPUT_NAME=${SCREENS[$(($WORKSPACE_NUMBER / 10))]} if [[ "$OUTPUT_NAME" != "$NEW_OUTPUT_NAME" ]]; then echo "WORKSPACE_NUMBER: $WORKSPACE_NUMBER | OUTPUT: $OUTPUT_NAME | NEW_OUTPUT: $NEW_OUTPUT_NAME" echo move workspace number $WORKSPACE_NUMBER to output $NEW_OUTPUT_NAME $MSG_COMMAND move workspace number \"$WORKSPACE_NUMBER\" to output $NEW_OUTPUT_NAME fi } function reconfigure_workspaces () { # Create new workspace for multiple screen at first index of relative index # Ex: SCREEN 2 => WORKSPACE NUMBER => 20 for i in $(seq 2 $SCREEN_NUMBER); do INDEX=$(($i - 1)) SCREEN=${SCREENS[$INDEX]} echo workspace number $(($INDEX * 10)) to output $SCREEN $MSG_COMMAND workspace number \"$(($INDEX * 10))\" to output $SCREEN done $MSG_COMMAND -t get_workspaces \ | jq -c '.[] | [.num, .output] | @csv' \ | sed 's/"//g' | sed 's/\\//g' | while IFS=$'\n' read -r c; do process_workspace $c done } # reconfigure_workspaces