--- /dev/null
+#!/bin/bash
+set -e; . /usr/local/lib/bash-bear; set +e
+
+## based on:
+## https://github.com/i3/i3/issues/2971
+
+window=$(xdotool getwindowfocus)
+
+# this brings in variables WIDTH and HEIGHT
+eval "$(xdotool getwindowgeometry --shell $window)"
+
+
+if (( HEIGHT > 100 )); then
+ TX=$(( WIDTH / 2))
+ TY=$(( HEIGHT / 2))
+
+ xdotool mousemove -window $window $TX $TY
+ # iank, original says "Check for height of 100 assumes that anything
+ # less than that means no window", and this condition is for "when I
+ # am navigating to a screen that does not have an open window on it". I don't think
+else
+ rect=$(i3-msg -t get_workspaces | jq -r '.[] | select(.focused==true).rect')
+
+ x=$(jq -r '.x' <<< $rect)
+ y=$(jq -r '.y' <<< $rect)
+ w=$(jq -r '.width' <<< $rect)
+ h=$(jq -r '.height' <<< $rect)
+ TX=$(( x + w / 2))
+ TY=$(( y + h / 2))
+ xdotool mousemove -window $window $TX $TY
+fi