Skip to content

Instantly share code, notes, and snippets.

@Akselmo
Last active August 11, 2023 04:33
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save Akselmo/d4f35798a222b9af5d0c0f1b4021d11d to your computer and use it in GitHub Desktop.
Save Akselmo/d4f35798a222b9af5d0c0f1b4021d11d to your computer and use it in GitHub Desktop.
Restrict mouse to screen
#!/bin/bash
#Not my script! Found it when searching the web for this kind of option.
#Saved for future reference
#Run with "bash restrictmouse.sh 0 0 1919 1080" to restrict the mouse to your first monitor
#Run inside terminal so it's easier to close the script when done
#Needs xdotool to work
borderxl=$1
borderyu=$2
borderxr=$3
borderyd=$4
check=0
echo "Restricting mouse $borderxl $borderyu $borderxr $borderyd"
if [ $borderxl -gt $borderxr ]
then
check=1
fi
if [ $borderyu -gt $borderyd ]
then
check=1
fi
if [ $check -ge "1" ]
then
echo "Make sure the first coordinate pair refers to the upper left corner"
echo "and the second pair refers to the lower right one."
fi
if [ $check -lt "1" ]
then
while [ true ]
do
check=0
xpos=`xdotool getmouselocation | awk '{ print $1}'`
xpos=${xpos:2}
#xpos=`getcurpos | awk '{ print $1}'`
ypos=`xdotool getmouselocation | awk '{ print $2}'`
ypos=${ypos:2}
#ypos=`getcurpos | awk '{ print $2}'`
if [ $xpos -gt $borderxr ]
then
check=1
xpos=$borderxr
fi
if [ $ypos -gt $borderyd ]
then
check=1
ypos=$borderyd
fi
if [ $xpos -lt $borderxl ]
then
check=1
xpos=$borderxl
fi
if [ $ypos -lt $borderyu ]
then
check=1
ypos=$borderyu
fi
if [ $check -ge "1" ]
then
xdotool mousemove $xpos $ypos
fi
done
fi
#!/bin/sh
if [ "$XDG_SESSION_TYPE" == "wayland" ]
then
exit
fi
scriptpath='/path/to/pointebarrier/pointer_barrier.sh'
if ! pgrep -f "$scriptpath"
then
notify-send "Pointer locked to first monitor"
bash "$scriptpath" 5 5 1901 1075 &
else
notify-send "Pointer unlocked"
pkill -f "$scriptpath"
fi
Copy link

ghost commented Aug 13, 2021

Try wayland, sway has options for this in there config map-output/map-region

@Akselmo
Copy link
Author

Akselmo commented Aug 13, 2021

Try wayland, sway has options for this in there config map-output/map-region

I plan to switch to it at some point! Probably when some major distros are changing to it, like Kubuntu which is what I'm using.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment