#!/usr/bin/perl # Copyright (C) 2019 Sean Whitton # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or (at # your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . use 5.028; use strict; use warnings; our $tolerance = 50; our $jitter = 50; my $xdpyinfo = `xdpyinfo`; $xdpyinfo =~ /dimensions: ([0-9]+)x([0-9]+)/; my ($width, $height) = ($1, $2); my $getmouselocation = `xdotool getmouselocation`; $getmouselocation =~ /x:([0-9]+) y:([0-9]+)/; my ($x, $y) = ($1, $2); if ($width - $x > 0 && $width - $x < $tolerance) { move(-$jitter, 0); } elsif ($x < $tolerance) { move($jitter, 0); } if ($height - $y > 0 && $height - $y < $tolerance) { move(0, -$jitter); } elsif ($y < $tolerance) { move(0, $jitter); } sub move { system "xdotool mousemove_relative --sync -- $_[0] $_[1]" }