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. | ||