t9 script: speed on key input vs lookup table

Get help with using AutoHotkey (v1.1 and older) and its commands and hotkeys
alevinetx
Posts: 1
Joined: 14 Jan 2019, 03:49

t9 script: speed on key input vs lookup table

14 Jan 2019, 04:10

i broke my wrist, and came across this script in an attempt to find a t9 entry for english:
https://autohotkey.com/board/topic/3065 ... he-numpad/

i truly appreciate the work @icarus did on this, and it should make the next few months more productive at work.

it seems to work mostly well for my needs. the problem i'm having is i key entirely too fast for it to keep up with me, which means words dont resolve, even simple ones like "hello", unless i consciously type slowly (which doesnt last long)

Can anyone provide some insight on the speed issues im having? I dont know if its the layers to processing and translating, or the lookup table. I tried adjusting a few timing settings, but they didnt seem to have any impact.


win7, 64b, ahk 1.1.30.01


thank you!!
User avatar
TheDewd
Posts: 1513
Joined: 19 Dec 2013, 11:16
Location: USA

Re: t9 script: speed on key input vs lookup table

14 Jan 2019, 09:53

I don't have a solution for your problem yet, but I wanted to share my attempt at a T9 system. Doesn't use a word dictionary. Single keys, one at a time...

Code: Select all

#SingleInstance, Force

KeyCount := 0 ; Initialize variable

Numpad0::
Numpad1::
Numpad2::
Numpad3::
Numpad4::
Numpad5::
Numpad6::
Numpad7::
Numpad8::
Numpad9::
NumpadDot::
	KeyCount++
	SetTimer, KeyTimer, 600
return

KeyTimer:
	SetTimer, KeyTimer, Off
	GoSub, KeyAction
	KeyCount := 0
return

KeyAction:
	CapsLockState := GetKeyState("CapsLock", "T")

	If (A_ThisHotkey = "Numpad0") {
		Send, {Space}
	} Else If (A_ThisHotkey = "Numpad1") {
		Send, % (CapsLockState ? "+{" : "{") (KeyCount = 1 ? "p" : KeyCount = 2 ? "q" : KeyCount = 3 ? "r" : "s") "}"
	} Else If (A_ThisHotkey = "Numpad2") {
		Send, % (CapsLockState ? "+{" : "{") (KeyCount = 1 ? "t" : KeyCount = 2 ? "u" : "v") "}"
	} Else If (A_ThisHotkey = "Numpad3") {
		Send, % (CapsLockState ? "+{" : "{") (KeyCount = 1 ? "w" : KeyCount = 2 ? "x" : KeyCount = 3 ? "y" : "z") "}"
	} Else If (A_ThisHotkey = "Numpad4") {
		Send, % (CapsLockState ? "+{" : "{") (KeyCount = 1 ? "g" : KeyCount = 2 ? "h" : "i") "}"
	} Else If (A_ThisHotkey = "Numpad5") {
		Send, % (CapsLockState ? "+{" : "{") (KeyCount = 1 ? "j" : KeyCount = 2 ? "k" : "l") "}"
	} Else If (A_ThisHotkey = "Numpad6") {
		Send, % (CapsLockState ? "+{" : "{") (KeyCount = 1 ? "m" : KeyCount = 2 ? "n" : "o") "}"
	} Else If (A_ThisHotkey = "Numpad7") {
		Send, % (KeyCount = 1 ? "," : KeyCount = 2 ? "." : KeyCount = 3 ? "?" : "!")
	} Else If (A_ThisHotkey = "Numpad8") {
		Send, % (CapsLockState ? "+{" : "{") (KeyCount = 1 ? "a" : KeyCount = 2 ? "b" : "c") "}"
	} Else If (A_ThisHotkey = "Numpad9") {
		Send, % (CapsLockState ? "+{" : "{") (KeyCount = 1 ? "d" : KeyCount = 2 ? "e" : "f") "}"
	} Else If (A_ThisHotkey = "NumpadDot") {
		SetCapsLockState, % (CapsLockState ? "Off" : "On")
	}
return

/*
+-------+------+------+
|  7    |  8   |  9   |
| ,.?!  | ABC  | DEF  |
+-------+------+------+
|  4    |  5   |  6   |
| GHI   | JKL  | MNO  |
+-------+------+------+
|  1    |  2   |  3   |
| PQRS  | TUV  | WXYZ |
+-------+------+------+
|  0    |  .   |      |
| SPACE | CASE |      |
+-------+------+------+
*/

Return to “Ask for Help (v1)”

Who is online

Users browsing this forum: No registered users and 253 guests