Skip to content

Instantly share code, notes, and snippets.

@kLabz
Created May 22, 2022 12:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kLabz/ea2fc75ea8534cefaf5832ac3c4704be to your computer and use it in GitHub Desktop.
Save kLabz/ea2fc75ea8534cefaf5832ac3c4704be to your computer and use it in GitHub Desktop.
Monitor Geom
#!/bin/bash
MONITORS=$(xrandr | grep -o '[0-9]*x[0-9]*[+-][0-9]*[+-][0-9]*')
# Get the location of the mouse
XMOUSE=$(xdotool getmouselocation | awk -F "[: ]" '{print $2}')
YMOUSE=$(xdotool getmouselocation | awk -F "[: ]" '{print $4}')
for mon in ${MONITORS}; do
# Parse the geometry of the monitor
MONW=$(echo ${mon} | awk -F "[x+]" '{print $1}')
MONH=$(echo ${mon} | awk -F "[x+]" '{print $2}')
MONX=$(echo ${mon} | awk -F "[x+]" '{print $3}')
MONY=$(echo ${mon} | awk -F "[x+]" '{print $4}')
# Use a simple collision check
if (( ${XMOUSE} >= ${MONX} )); then
if (( ${XMOUSE} <= ${MONX}+${MONW} )); then
if (( ${YMOUSE} >= ${MONY} )); then
if (( ${YMOUSE} <= ${MONY}+${MONH} )); then
# We have found our monitor!
echo "${MONW}x${MONH}+${MONX}+${MONY}"
exit 0
fi
fi
fi
fi
done
echo "Oh no the mouse is in the void!"
exit 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment