Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Locked thread
Stabby McDamage
Dec 11, 2005

Doctor Rope
I just finished building a 4-monitor setup, and it's great, but one problem:

When I try to click something at the top of the main screen, I instead end up clicking something at the bottom of the screen above it. I'm used to having monitors left and right of my main, but this is the first time I've had a monitor above my main.

Is there a tool or app to have the mouse 'snap' to the edges of a monitor? I know Windows 8.1 does this, but I'm running Windows 7 and am not upgrading right now.

Obligatory pic:

Adbot
ADBOT LOVES YOU

Stabby McDamage
Dec 11, 2005

Doctor Rope
I've been able to make a half-decent sticky boundary by playing with AutoHotKey. I'm using this script now:
code:
SetupClipCheck() ; enable the mouse confinement system (defined below)

; get access to the winapi ClipCursor function, which limits cursor boundaries
ClipCursor( Confine=True, x1=0 , y1=0, x2=1, y2=1 ) 
{
 VarSetCapacity(R,16,0),  NumPut(x1,&R+0),NumPut(y1,&R+4),NumPut(x2,&R+8),NumPut(y2,&R+12)
 Return Confine ? DllCall( "ClipCursor", UInt,&R ) : DllCall( "ClipCursor" )
}

; count the number of loop iterations the mouse has been near the top and un-confine the mouse if there's been enough
SetupClipCheck() {
 SetTimer, ClipCheck, 10
 return
}

top_tick_count := 0   
ClipCheck:
 CoordMode, Mouse, Screen
 MouseGetPos,x,y
 ;ToolTip,%x%:%y%:%top_tick_count%

 If (y < 10) {
   top_tick_count++
 } Else {
   top_tick_count := 0
 }

 if (top_tick_count>15) {
   ClipCursor(False)
 } Else {
   ClipCursor(True, -10000, 0, 10000, 10000)
 }
 return
Feel free to post if you have a better way.

Stabby McDamage fucked around with this message at 00:42 on Nov 30, 2014

Bruegels Fuckbooks
Sep 14, 2004

Now, listen - I know the two of you are very different from each other in a lot of ways, but you have to understand that as far as Grandpa's concerned, you're both pieces of shit! Yeah. I can prove it mathematically.
One thing you could do is stagger the monitors so they are like:
code:
   [_]
[_]
Instead of straight on top of each other, and move mouse to upper right if you need to go to the top monitor.

  • Locked thread