https://typetimer.netlify.app/
https://joltfly.com/keyboard-keys-latency-test/
https://joltfly.com/keyboard-scan-rate-test
https://joltfly.com/mouse-latency-test/
https://monkeytype.com/
This document details the scientific study I made on the keyboard.
It concerns keypresses and other details.
The best timings for double tapping a key on a keyboard are as follows:
8th of a second is 125 milliseconds, this is the starting point for taps.
9th of a second is 111 milliseconds, this is a good average between accidental triggers and not triggering.
10th of a second is 100 milliseconds, this will miss for slow typists and people who can not double‑tap fast enough.
Syntax Examples using AutoHotkey;
if (A_PriorHotkey == "*CapsLock Up" and A_TimeSincePriorHotkey <= 125)
if (A_PriorHotkey == "*CapsLock Up" and A_TimeSincePriorHotkey <= 111)
if (A_PriorHotkey == "*CapsLock Up" and A_TimeSincePriorHotkey <= 100)
What this code does is that it waits for the second key to be pressed 100 milliseconds from the press of the first key. It does not expect the typist to hit two keys within 100 milliseconds, it expects the typist to hit one more key from the press of the first key to trigger a condition.
The best timings for holding a key on a keyboard are as follows:
3rd of a second is 333 milliseconds, this is the starting point for holds.
4th of a second is 250 milliseconds, this is a good average between accidental triggers and not triggering.
5th of a second is 200 milliseconds, it should never be faster than this to prevent accidental triggers.
200 milliseconds have to be used if the "Repeat delay" is set to the 4th increment (the fastest) at "Keyboard Properties".
200 and 250 milliseconds can be used if the "Repeat delay" is set to 333 milliseconds utilising the program "keyrate".
200, 250, and 333 milliseconds can be used if the "Repeat delay" is set to the default 3rd increment at "Keyboard Properties".
The duration for which the keys are held during regular tapping of the keyboard varies but typically does not exceed about 133 milliseconds (7.5th of a second). For this reason, the keyboard "Repeat delay" should not be set to a speed faster than 7th of a second which is 143 milliseconds. A setting of a fast "Repeat delay" can be useful in spamming keys. For example, RTS games in unit creation. Otherwise, it is too fast for typing words.
If a human tries to press a key as fast as possible repeatedly, he cannot beat about 10 times per second, that is 100 milliseconds intervals. It is the same speed for the mouse button presses as well.
On the fastest Windows setting, the computer averages at 33.5 milliseconds. I suggest not instructing a machine to send keys faster than 33 milliseconds.
Open the run window (windows+r) and type "control keyboard".
When we hold down a key on the keyboard, it does not spam‑send that key. It sends the key once and waits a set amount of time before repeatedly sending it again. The "Repeat delay" is the delay between the first send and the consecutive sends. On the default setting, the third setting, it is set at 500 milliseconds. The first selection is 1000 milliseconds (1 second), the second selection is 750 milliseconds, the third selection is 500 milliseconds, and the fourth selection is 250 milliseconds, which is the fastest setting.
The default setting is good and does not require a modification for ordinary typists. However, if you want to be able to delete words a little faster and want more speed and response from your keyboard, you can select the fourth selection at 250 milliseconds. I think 333 milliseconds is also a good option, especially for doing holds at 250 milliseconds. However, this setting itself cannot be set at this window.
The "Repeat rate" setting has 32 increments. By default, it is at the fastest selection, the last selection. What this setting controls is how quickly and repeatedly the keys are sent when held down. That is, after the first delay, as discussed above. On the default fastest selection, the delays between sends are between 25 and 41 milliseconds with an average of 33.5 milliseconds. This is the reason that spam send commands should not exceed 33 milliseconds in computer programming.
The default setting itself is good and does not require a modification for ordinary typists. However, if you want to be able to delete words a little faster and want more speed and response from your keyboard, you can select the fourth selection at 250 milliseconds. I think 333 milliseconds is also a good option, especially for doing holds at 250 milliseconds. However, this setting itself cannot be set at this window.
The "Repeat rate" setting has 32 increments. By default, it is at the fastest selection, the last selection. What this setting controls is how quickly and repeatedly the keys are sent when held down. That is, after the first delay, as discussed above. On the default fastest selection, the delays between sends are between 25 and 41 milliseconds with an average of 33.5 milliseconds. This is the reason that spam send commands should never exceed 25 milliseconds or 1/40 of a second. I think a setting of 33 milliseconds is the safest fastest speed for a computer.
At the mid setting, at the 16th increment, the delays between sends are 58 to 75 milliseconds, with an average of 66.5 milliseconds.
At the slowest setting, the delays between sends are at 500 milliseconds or half a second.
The "Cursor blink rate" setting has 12 increments and the default setting is at the 8th increment. The first setting makes the blinker not blink at all. This only works on Windows File Explorer, Windows Notepad and some other internal elements. On some third‑party programs, it looks like this setting does not change anything. I recommend not modifying this setting or setting it at the 10th increment so it blinks faster.
Computer\HKEY_CURRENT_USER\Control Panel\Accessibility\Keyboard Response
DEFAULT SETTINGS, WINDOWS 11 24H2:
[HKEY_CURRENT_USER\Control Panel\Accessibility\Keyboard Response]
"AutoRepeatDelay"="0"
"AutoRepeatRate"="0"
"BounceTime"="0"
"DelayBeforeAcceptance"="0"
"Flags"="122"
"Last BounceKey Setting"=dword:00000000
"Last Valid Delay"=dword:00000000
"Last Valid Repeat"=dword:00000000
"Last Valid Wait"=dword:000003e8
I tried changing the "AutoRepeatDelay"="0"
to "AutoRepeatDelay"="333"
but it did not change it to 333 milliseconds, it was still the setting as set in Keyboard Properties.
Changing "Flags"="122"
to "Flags"="59"
disabled the repeat altogether, meaning the keys do not spam upon being held down at all. To send it again, you have to press the key again.
Modifier keys are not toggle keys. They are supposed to release when they stop being pressed. However, I observed that sometimes they become stuck. In this case, I found that pressing both the left modifier key and the right modifier key several times together can cause the keys to become unstuck. For example, if the shift key is still held down after letting go, you can press the left and the right shift keys together several times to "unstick" the shift key. The same is true for the control and the alt keys as well.
The Fn key (function key) is a modifier key that is found in some laptops and is supposed to be combined with other keys similar to ctrl and alt. Its purpose is being able to press the top row function keys by pressing the fn‑key and then pressing the top row number keys from (1) to (=) key on keyboards that do not have a separate row of function keys such as in some laptop keyboards. This is also how function keys are pressed using the On‑Screen Keyboard (OSK).
AltGr (AltGraph) is a modifier key that is an extra modifier key. Typically, it replaces right alt on certain keyboards, but it is not found in most US keyboards where there is another copy alt key instead. Hitting ctrl+alt also gives us the AltGr key on keyboards where there is AltGr. I introduce AltGr in my keyboard layout "US Modified Plus".
https://en.wikipedia.org/wiki/AltGr_key
One thing that I came up with was an idea to turn the capslock key into a modifier key by making it holdable instead of its default toggle function. This meant that I would have a convenient extra modifier key above the shift key for repurposing the capslock key for alphabets and writing systems that are unicameral (making no distinction between upper and lower case, but rather having only one case). This program can be found here:
https://github.com/SalviaSage/Autohotkey-Scripts-Repository/tree/master/Typing%20Scripts/Holdable%20CapsLock
Toggle keys are different than modifier keys in the sense that you turn them on or off. During my testing, I saw that numlock is the only toggle key that preserves through restarts and shutdowns of the computer. I saw that the numlock toggle state is memorised by Windows and set accordingly after logging in to Windows while BIOS and the login screen turns numlock on. Capslock and scrolllock turn off and do not come back on through a restart or a shutdown. I think this is an appropriate behaviour and does not necessarily need modification. Using the third‑party program called "NumLocker" we can make it so that they toggle on or off at Windows boot, but we can also lock the key states and prevent them from being changed from the keyboard while they can be changed from the "NumLocker" menu or if we exit the program. This program is an AutoHotkey program.
There are at least three other toggle keys that are typically not present on a keyboard. These are called "Kana", "Roya", and "Loya". They may be found on the Japanese keyboard. Although, programmatically they are present on the keyboard, there isn't a way to turn these on or off unless you know computer programming. They can also be set to be used as hold keys instead of toggle keys. I successfully used these extra toggle keys making a computer program for typing Khmer in typing the subscript consonants and symbols for calendar days.
There are 104 keys on a full‑size ANSI‑104 keyboard. There are 17 keys on the numpad part of the keyboard. Without the numpad, we have 87 keys. There are keyboard specifications where the numpad is excluded such as in laptops, to conserve space. All of the keys on the numpad are also present on the left side of the keyboard, so if the keyboard does not have a numpad, it doesn't actually miss any keys. The numpads purpose is to enter numbers, decimal spaces and the four arithmetic operations in a quick and easy way. The numbers are also located on the top row of the keyboard. Above the top row number keys, there are function keys. Although keyboards typically come with 12 function keys, there are 24 function keys in total. On my "US Modified Plus" keyboard layout, I made it so that the function keys from 13 to 24 can still be pressed on a 12 function key keyboard by pressing ctrl+shift+F1~F12. There are also keyboards where all 24 function keys are present. A full‑size keyboard with 24 function keys should have 116 keys in total, and if it doesn't have a numpad, 99 keys. There are also media keys on some keyboards that typically control things like video playback, stop and volume controls. On some keyboards, there is a "game mode" that disables and enables the Windows key.
Next to the right control key, there is a menu key, sometimes called an fn key Its purpose is to open the drop menu or the right click context menu that many programs have. There is a "pause‑break" key on keyboards. There are actually two keys here programmatically. By default, we press the pause key and if we hit ctrl+pause we press the "break" or the "cancel" key. The pause key is supposed to pause or suspend programs while the break key serves a purpose similar to the escape key, albeit it is a key that is very rarely used. There is also a sleep button which is not present on all keyboards.
There are about 18 multimedia keys. A list of which is as follows:
key | Function |
---|---|
Browser_Back | Back |
Browser_Forward | Forward |
Browser_Refresh | Refresh |
Browser_Stop | Stop |
Browser_Search | Search |
Browser_Favorites | Favorites |
Browser_Home | Homepage |
Volume_Mute | Mute the volume |
Volume_Down | Lower the volume |
Volume_Up | Increase the volume |
Media_Next | Next Track |
Media_Prev | Previous Track |
Media_Stop | Stop |
Media_Play_Pause | Play/Pause |
Launch_Mail | Launch default e-mail program |
Launch_Media | Launch default media player |
Launch_App1 | Launch This PC (formerly My Computer or Computer) |
Launch_App2 | Launch Calculator |
Normally, the keyboard operates in the "insert" mode. İf you hit the "insert" key on the keyboard, you will switch to the "override" mode and this writes over the other letters. It works like that in the programs "Notepad" and "Notepad++". If you accidentally turn on the "override" mode, you just have to hit the "insert" key to go back to normal operation.