Showing the changes to README.md (1 of 4 files). Show all
Unified · Split
| @@ -0,0 +1,28 @@ | ||
| 1 | +# aux/kbfind | |
| 2 | + | |
| 3 | +Finds the correct `/dev/kbmap` entry for a non-working key on your | |
| 4 | +keyboard, in 9front. | |
| 5 | + | |
| 6 | +## Process | |
| 7 | + | |
| 8 | +1) after installing (`mk install`) run `aux/kbfind`. | |
| 9 | +2) press the non-working key _once_ | |
| 10 | +3) press any other _working_ key _once_ (or Delete to exit) | |
| 11 | +4) go to step 2 | |
| 12 | + | |
| 13 | +If the key was not mapped before and is producing scancodes, | |
| 14 | +eventually the program will print out the needed entry that needs to | |
| 15 | +be put into `/dev/kbmap` for the key to work. Replace the last `0` of | |
| 16 | +that entry to whichever Rune you want your key to produce, converted | |
| 17 | +to a number, see `/sys/include/keyboard.h` for some of the existing | |
| 18 | +"special" keys. | |
| 19 | + | |
| 20 | +## How does this work | |
| 21 | + | |
| 22 | +Unmapped entries in `/dev/kbmap` have the Rune (third number) set to | |
| 23 | +0. `aux/kbfind` sets those entries to a custom Rune and awaits for | |
| 24 | +key presses to be available on `/dev/kbd`. If the custom Rune was | |
| 25 | +found the entries currently enabled are cut into half to see whether | |
| 26 | +the key would still produce the rune. If not, the other half is | |
| 27 | +enabled instead and the process is repeated, cutting the number of | |
| 28 | +keys to test in half every time. | |