Numpad-QWERTY, one-handed-typing without using spacebar

Ever getting tired of switching your hand to and from the mouse? Ever wondering how to type fast and leisurely with a single hand, while use another hand to do other things?

You may have already known there are some expensive hardwares for one hand typing, such as half-qwerty keyboard and Frogpad.

There are also free software ones, such as the sing-hand AHK script available from the AutoHotkey forum. But you may not like to freqently press “Space bar” as this largely slows down the speed. Moreover if you type fast without switch off “Spacebar mode”, there are some interferences.

There are also some single hand keyboard layouts exist, such as “one hand Drovak” and “Left hand Ngaih”. However switching the keyboard layout in a daily usage is really troublesome. No to say learning a new keyboard layout can often be a disaster for most people.

Another approach is to use f, g, h and j as home positions, but it needs long range hand movements and hence a long time to master. You may also feel tired soon since the exercise is too intensive.

So most of us are not satisfied with existing methods. Moreover, most of them can not be easily customerized and the typing speed is limited. Indeed some people only use single-hand typing for 30~40% of their time, and it is preferable that single hand typing and two hand typing can co-exist without switching. A novel free tool is then presented here. Let’s find more …

We will use the Number pad and 9 others key. The mapping is basically: [PgDn = a], [7 = s], [8 = d], [9 = f], [+ = g], ……, For some keys, simply simutaneously press two-keys: [7 & 8 = j], [8 & 9 = k], [7 & 8 = j], [7 & 9 = l], ……. Try a few times and you will master it. You will find keys for CapsLock , . 1, 2 3 4 backspace, enter etc, 99% of time without moving your hand.

The procedures to install it are as follows:

1 Download Keytweak.exe and remap NumLock <-> F9 (or another key not frequently used), Restart your PC to make the remap effective.
2 Download Numpad-QWERTY.exe or the script here and run.
3 Press F9 to deactivate the Numpad (with NumLock light off), then you can type on the numpad.
4 Press F9 again to activate the Numpad if you need it. If you need F9, press NumLock instead.

A keyboard-on-screen can be provided if you want, so you can see what you are pressing, and also see hints for keys.

The following is the basic scripts. Scipts for send capital letters can be added by detecting a holding-down time. Or use the corresponding shortcuts.


#NoTrayIcon

NumpadIns::CapsLock ;

*Home::Send {Blind}{Home}
*End::Send {Blind}{End}

F9 & PgUp::
PgUp & F9::Send {NumLock} ; PgUp NumLock

NumpadUp & NumpadRight::
NumpadRight & NumpadUp::Send {Backspace} ; 8 6

PgUp::
If !GetKeyState("NumLock","T")
Send {Blind}q
else
Send {PgUp}
return

F9::Send {Blind}w
NumpadDiv::Send {Blind}e
NumpadMult::Send {Blind}r
NumpadSub::Send {Blind}t

PgDn::
If !GetKeyState("NumLock","T")
Send {Blind}a
else
Send {PgDn}
return

NumpadHome::Send {Blind}s
NumpadUp::Send {Blind}d
NumpadPgUp::Send {Blind}f
NumpadAdd::Send {Blind}g

NumpadLeft::Send {Blind}x
NumpadClear::Send {Blind}c
NumpadRight::Send {Blind}v

NumpadEnter::
If !GetKeyState("NumLock","T")
Send {Blind}b
else
Send {Blind}{Enter}
return

NumpadDel::
If !GetKeyState("NumLock","T")
Send {Blind}{Space}
else
Send .
return

; ===============================================================================================
F9 & NumpadMult::
NumpadMult & F9::Send ( ; lock *
NumpadEnd & NumpadPgDn::
NumpadPgDn & NumpadEnd::Send ) ; 1 3
NumpadDiv & NumpadSub::
NumpadSub & NumpadDiv::Send ! ; / -
NumpadClear & NumpadPgDn::
NumpadPgDn & NumpadClear::Send ? ; 5 3

NumpadDiv & NumpadMult::
NumpadMult & NumpadDiv::Send {Blind}? ; / *
NumpadPgUp & F9::
F9 & NumpadPgUp::Send {Blind}`" ; lock 9
NumpadPgUp & PgUp::
PgUp & NumpadPgUp::Send {Blind}' ; pgup 9

NumpadPgDn & PgDn::
PgDn & NumpadPgDn::Send {Blind}: ; pgdn 3

;================================================

NumpadAdd & NumpadMult::
NumpadMult & NumpadAdd::Send {Blind}y ; + *
F9 & NumpadDiv::
NumpadDiv & F9::Send {Blind}o ; lock /
NumpadDiv & NumpadPgUp::
NumpadPgUp & NumpadDiv::Send {Blind}i ; / 9
NumpadAdd & PgDn::
PgDn & NumpadAdd::Send {Blind}h ; pgdn +
NumpadRight & PgDn::
PgDn & NumpadRight::Send {Blind}p ; pgdn 6

NumpadHome & PgDn::
PgDn & NumpadHome::Send {Blind}z ; pgdn 7

NumpadPgUp & PgDn::
PgDn & NumpadPgUp::Send {Blind}u ; pgdn 9

NumpadUp & NumpadHome::
NumpadHome & NumpadUp::Send {Blind}k ; 7 8
NumpadUp & NumpadPgUp::
NumpadPgUp & NumpadUp::Send {Blind}j ; 8 9
NumpadHome & NumpadPgUp::
NumpadPgUp & NumpadHome::Send {Blind}l ; 7 9

NumpadLeft & NumpadClear::
NumpadClear & NumpadLeft::Send {Blind}m ; 4 5
NumpadClear & NumpadRight::
NumpadRight & NumpadClear::Send {Blind}n ; 5 6

NumpadLeft & NumpadRight::
NumpadRight & NumpadLeft::Send {Esc} ; 4 6

NumpadEnd & NumpadDown::
NumpadDown & NumpadEnd::Send {Home} ; 1 2
NumpadDown & NumpadPgDn::
NumpadPgDn & NumpadDown::Send {End} ; 2 3

NumpadDown::Send . ; 1
NumpadEnd::Send `, ; 2
NumpadPgDn::Send {Enter} ; 3

Insert::
If !GetKeyState("NumLock","T")
Send {Backspace}
else
Send {Insert}
return

PgUp & NumpadMult::
NumpadMult & PgUp::Send {Space} ; pgup *

PrintScreen::
If !GetKeyState("NumLock","T")
Send 2
else
Send {Blind}{PrintScreen}
return

ScrollLock::
If !GetKeyState("NumLock","T")
Send 3
else
Send {Blind}{ScrollLock}
return

Pause::
If !GetKeyState("NumLock","T")
Send 4
else
Send {Blind}{Pause}
return

Delete::
Send {Delete}
return

PrintScreen & Insert::
Insert & PrintScreen:: Send {PrintScreen}

ScrollLock & Home::
Home & ScrollLock::Send {ScrollLock}

ScrollLock & Pause::
Pause & ScrollLock::Send {Pause}

Insert & Home::
Home & Insert::Send {Insert}

PgUp & Home::
Home & PgUp::Send {PgUp}

PgDn & End::
End & PgDn:: Send {PgDn}

NumpadDel & NumpadIns:: Send 0
NumpadDel & NumpadEnd:: Send 1
NumpadDel & NumpadDown:: Send 2
NumpadDel & NumpadPgDn:: Send 3
NumpadDel & NumpadLeft:: Send 4
NumpadDel & NumpadClear:: Send 5
NumpadDel & NumpadRight:: Send 6
NumpadDel & NumpadHome:: Send 7
NumpadDel & NumpadUp:: Send 8
NumpadDel & NumpadPgUp:: Send 9

End & PgUp:: Send Q
End & F9:: Send W
End & NumpadDiv:: Send E
End & NumpadMult:: Send R
End & NumpadSub:: Send T

NumpadEnter & PgDn:: Send A
Home & PgDn:: Send A
End & NumpadHome:: Send S
End & NumpadUp:: Send D
End & NumpadPgUp:: Send F
End & NumpadAdd:: Send G

End & NumpadLeft:: Send X
End & NumpadClear:: Send C
End & NumpadRight:: Send V
End & NumpadEnter:: Send B

NumpadEnter & PgUp:: Send P
NumpadEnter & F9:: Send O
NumpadEnter & NumpadDiv:: Send I
NumpadEnter & NumpadMult:: Send U
NumpadEnter & NumpadSub:: Send Y

NumpadEnter & NumpadHome:: Send L
NumpadEnter & NumpadUp:: Send K
NumpadEnter & NumpadPgUp:: Send J
NumpadEnter & NumpadAdd:: Send H

NumpadEnter & NumpadLeft:: Send Z
NumpadEnter & NumpadClear:: Send M
NumpadEnter & NumpadRight:: Send N

Alternate key layout, much easier to remember

[PgUp = q] [NL =w] [/ = e] [ * = r] [ – = t]
[PgDn = a] [ 7 = s ] [8 = d] [9 = f] [+ = g]
[ PgDn&7 = z ] [ 4 = x ] [ 5 = c ] [6 = v] [Enter = b]
———————————–
[*&+=y] [ 8&6=u] [/&9=i] [NL&/=o] [PgDn&6=p]
[Pgdn&+=h] [ 8&9=j] [7&8=k] [7&9=l] [PgDn&9=;]
[5&6=n] [4&5=m]

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *