Can touch pads substitute mice? I am not sure, but I prefer to use touch pad. It has functionality that matches mouses. Surely some operations like drag and drop, mouse is still superior operation device, but daily situation, like web surfing, I think touch pad is good enough.
My keyboard has number pad that I seldom use but requires me extra space and more distance to reach my mouse or touch pad. So I decide to make a touch mount above keyboard. It would not work with mouse, but was very suitable for touch pad.
1. hardware
It is very simple to make touch pad mount. Just salvage some metal (or al, copper...) plate from old gadgets and vend it for your taste. And then place your touch pad on it. That's all.
I was able to get some copper plate and used it as my own touch pad mount. This mount can be placed anywhere around or above the keyboard. It keeps my hand moving shorter as possible, comporting my wrist.
2. software
There is truth. Touch pad is different device from mouse. Commonly touch pad has smaller surface than mouse can move. It means that, to move some screen position, maybe touch pad needs more sweep operation than mouse move. To solve this problem, touch pad should be given some inertia for mouse pointer movement. We are used at scroll inertia, but mouse pointer movement inertia is not so common. I was not able to find suitable driver for my need, so I made one :)
Below is my auto hot key script to enable inertia applied mouse pointer movement. It worked well with my logitech touch pad.
#HotkeyInterval 1000
#MaxHotkeysPerInterval 100
#SingleInstance force
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn ; Enable warnings to assist with detecting common errors.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
Started = FALSE
OX = -1
OY = -1
DX = 0
DY = 0
Auto = FALSE
loop
{
sleep, 20
if(GetKeyState("LButton")==0 && GetKeyState("MButton")==0 && GetKeyState("RButton")==0) {
MouseGetPos, X, Y
if(X != OX || Y != OY) {
;MsgBox, moving
DX := DX * 0.1 + (X - OX) * 0.9
DY := DX * 0.1 + (Y - OY) * 0.9
if (OX == -1) {
DX := 0
}
if (OY == -1) {
DY := 0
}
if(Abs(DX) > 100) {
DX := 0
}
if(Abs(DY) > 100) {
DY := 0
}
}
else {
DX := DX * 0.6
DY := DY * 0.8
MouseMove DX,DY,0,R
;MsgBox, %DX% %DY%
if(Abs(DX) < 1) {
DX := 0
}
if(Abs(DY) < 1) {
DY := 0
}
}
OX := X
OY := Y
}
else {
MouseGetPos, X, Y
OX := X
OY := Y
}
}
$WheelUp::
Send {WheelDown}
Return
$WheelDown::
Send {WheelUp}
Return
Note that last two blocks - WheelUp and WheelDown event handler is for reverse scroll. If you don't want this feature, you can remove these blocks.





