geekhack
geekhack Community => Input Devices => Topic started by: Symmetry on Mon, 13 April 2015, 16:16:38
-
The poll is located here (https://www.massdrop.com/vote/trackballs-4). I've added fingerballs for now, since they're my favorite, but anything is welcome!
-
There's already a buy up for the CST LaserTRAC: https://www.massdrop.com/buy/cst-lasertrac-trackball
-
I like the CST mouse quite a bit, but it being a 3 button mouse makes it very limited. The 5W is the only one I would personally buy, but im not too sure how inclined people are to make their own buttons (this is GH so I imagine most here would). This is what I have on my desk now and really enjoy it. I still wish it had the scroll ring like on the Kensington Expert mouse though, since the scroll wheel on the CST sort of forces you to move your wrist to be able to reach it (and I dont have small hands).
That NSI thumb-ball mouse looks like the first nice thumb ball mouse ive ever seen. Most of the ones ive ever used have a really plastic and cheap feel to them. I would be interested in trying this mouse, but if that $430 retail price is accurate, im not really sure that it would be reasonable. I definitely dont need a waterproof mouse, but damn does it look nice. Anybody here have experience with this mouse?
-
As far as scrolling, I've found this script to be incredibly useful (open through autohotkey):
$*RButton::
Hotkey, $*RButton Up, RButtonup, off
;KeyWait, RButton, T0.4
;If ErrorLevel = 1
;{
Hotkey, $*RButton Up, RButtonup, on
MouseGetPos, ox, oy
SetTimer, WatchTheMouse, 5
movedx := 0
movedy := 0
pixelsMoved := 0
; TrayTip, Scrolling started, Emulating scroll wheel
;}
;Else
; Send {RButton}
return
RButtonup:
Hotkey, $*RButton Up, RButtonup, off
SetTimer, WatchTheMouse, off
;TrayTip
If (pixelsMoved = 0)
{
;The mouse was not moved, send the click event
; (May want to make it PGUP or something)
Send {RButton}
Send {RButtonUp}
}
return
WatchTheMouse:
MouseGetPos, nx, ny
movedx := movedx+nx-ox
movedy := movedy+ny-oy
pixelsMoved := pixelsMoved + Abs(nx-ox) + Abs(ny-oy)
timesX := Abs(movedx) / 8
ControlGetFocus, control, A
Loop, %timesX%
{
If (movedx > 0)
{
SendMessage, 0x114, 1, 0, %control%, A ; 0x114 is WM_HSCROLL
movedx := movedx - 4
}
Else
{
SendMessage, 0x114, 0, 0, %control%, A ; 0x114 is WM_HSCROLL
movedx := movedx + 4
}
}
timesY := Abs(movedy) / 4
Loop, %timesY%
{
If (movedy > 0)
{
Click WheelDown
movedy := movedy - 4
}
Else
{
Click WheelUp
movedy := movedy + 4
}
}
MouseMove ox, oy
return
Change RButton to whatever button you prefer; the way it's set now, you hold RButton and move the ball to scroll the mouse.