X-Git-Url: https://iankelling.org/git/?p=distro-setup;a=blobdiff_plain;f=obs-i3-monitor;fp=obs-i3-monitor;h=26d17f8b75b4c5396a29024f774f28992f3f92d2;hp=0000000000000000000000000000000000000000;hb=d67edcdca8795a4bca116aa532d02dda246a6f53;hpb=a9e3d60b4254cd5c6216c4b3e7f8cd5cc5107fad diff --git a/obs-i3-monitor b/obs-i3-monitor new file mode 100755 index 0000000..26d17f8 --- /dev/null +++ b/obs-i3-monitor @@ -0,0 +1,27 @@ +#!/bin/bash + +set -e; . /usr/local/lib/bash-bear; set +e + +try() { + "$@" || printf "warning: failed %s\n" "$*" +} + +while true; do + while read -r line ; do + mark=$(printf "%s\n" "$line" | jq -r 'select (.change == "focus") | .container.marks[0]') ||: + if [[ $mark && $mark != null ]]; then + echo $mark > /tmp/last-obs-i3-mark + if [[ ! -e /tmp/no-obs-auto-scene-switch ]]; then + p=$(cat /p/obs-ws-pass) + try obs-cmd -w obsws://localhost:4455/$p scene switch $mark + fi + fi + # debugging + #printf "%s\n" "$line" | jq + + + # intentional process substitution to properly exit on kill + # ||: avoids error messages + done < <(i3-msg -t subscribe -m '[ "window" ]' ||:) + sleep 5 +done