LittleBigMouse
LittleBigMouse copied to clipboard
On undock mouse is locked in area of laptop (primary) screen
I have a surface book 2 which I connect to 2x HP 1920x1080 screens through a HP Universal dock. I installed LBM as I have issues moving off the RHS corners of the SB screen onto HP due to theSB using 200% scaling and the HPs 100%. LB Solves this issue for me, but when I undock the mouse cant go below about 2/3 of the way down the SB screen until I kill the LBM deamon via task manager.
I'm aware of the software will often not detect display configuration changes. Maybe you can try to configure and save while in single monitor and do it again in multi monitor config. I think my multi config thing is not so useful like it is done. I'll try to think about it.
Maybe an option to load/unload on a device being connected/disconnected could be a good workaround?
I had this exact issue and solved it using AHK to start or kill LBM whenever I add or remove a second monitor. I have the script below
;On startup check if need to run LittleBigMouse SysGet, mCount, MonitorCount if (mCount = 2) Run, LittleBigMouse_Daemon.exe --start, C:\Program Files\LittleBigMouse
;Upon resolution change, will either kill LittleBigMouse or start it #Persistent OnMessage(0x7E, "WM_DISPLAYCHANGE") return WM_DISPLAYCHANGE(wParam, lParam) { Sleep 1000 SysGet, mCount, MonitorCount if (mCount = 1) { Run runas %comspec% /k taskkill /im LittleBigMouse /f,,Hide } else { Process, Exist, LittleBigMouse* if(!errorlevel) { Run, LittleBigMouse_Daemon.exe --start, C:\Program Files\LittleBigMouse } } }
I wrote an AHK script similar to @ccz-2 above, but I had to use a different line for killing the daemon. I also found that launching the daemon directly did nothing, so I'm content with launching the LBM control application when my second monitor is attached. The most annoying part is having to kill the daemon without full mouse control, and this does that automatically.
; On startup check if need to run LittleBigMouse SysGet, mCount, MonitorCount if (mCount = 2) Run, LittleBigMouse_Control.exe, C:\Program Files\LittleBigMouse
; Info about this message # here: https://www.autohotkey.com/docs/misc/SendMessageList.htm OnMessage(0x007E, "monitorChange") monitorChange() { SysGet, newMonitorCount, MonitorCount if(2 = newMonitorCount) { ; Trying to be specific to my home office monitor. ; If specificity is not desired, remove the following SysGet and extract the Run statement from the if block. SysGet name, MonitorName if("\.\DISPLAY2" = name) { Run, LittleBigMouse_Control.exe, C:\Program Files\LittleBigMouse } } if(1 = newMonitorCount) { ; Tried a dozen ways to kill it and finally found this one that works Run wmic process where name='LittleBigMouse_Daemon.exe' delete } }
I did a bit of playing and created a AHK app (small tray icon) using a bit of the logic from the above two scripts and then commands from LBM's docs that basically resets (turns off and back on) LBM every time the monitors change. Seems to work fine for me so I've uploaded it for others to use on GitHub. I've also made a release (compiled AHK and the script into an exe) also on GitHub if you're not sure how to use AutoHotKey.
The main logic is:
; Catch any monitor changes and run the RestartDaemon code
OnMessage(0x007E, "RestartDaemon")
; This simply restarts the Little Big Mouse deamon to force it to look at the monitors...
RestartDaemon() {
; Stop LBM
Run, "C:\Program Files\LittleBigMouse\LittleBigMouse_Daemon.exe" --stop
; Wait for a bit
Sleep, 1000
; Restart LBM
Run, "C:\Program Files\LittleBigMouse\LittleBigMouse_Daemon.exe" --start
}