41 lines
1.2 KiB
Bash
41 lines
1.2 KiB
Bash
#!/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
|
|
|