-$b "$@" &
-
-# on a fast computer, .5 is too fast, 1 is ok. on x200, 1 is too fast, 2 is ok.
-sleep 2
-# debug
-#printf "%s\n" "$*" >> /tmp/a
-if (( $# == 0 )) && ! i3-msg -t get_tree | jq --stream -r 'select(.[1]|scalars!=null) | "\(.[0]|join(".")): \(.[1]|tojson)"' | grep 'marks.0: "abrowser"$' &>/dev/null; then
- # explaining this jq nonsense. when the abrowser window starts, it
- # might be in a vertical split container, and then it is nested down
- # another level. the best way I could find to look in both levels was
- # to get both, then combine them with + (and you have to turn them
- # into a single array instead of a list of arrays with [.[]], or else
- # it will add the arrays a bunch of times and give several results.
- # comm gives us just the new id.
- id=$(i3-msg -t get_tree | jq -e '.nodes[].nodes[].nodes[].nodes | [.[]] + ( [.[].nodes[]]) + ( [.[].nodes[].nodes[]]) + ( [.[].nodes[].nodes[].nodes[]]) | .[] | select(.window_properties.class=="'$b'") | .id' | comm -23 - $tmpf | head -n1)
- rm -f $tmpf
- if [[ $id ]]; then
- i3-msg "[con_id=$id] mark abrowser"
- fi
-fi
-
-wait