--- /dev/null
+#!/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