The tables go now from rune to rune, not from scancode to rune. This means that the tables are smaller. They are inside /sys/src/cmd/usb/hid/map.c For example, this is the ukkbmap now: Rmap ukkbmap[] = { {L'"', L'@'}, // 0x0022 -> 0x0040 {L'#', L'£'}, // 0x0023 -> 0x00a3 {L'α', L'\\'}, // 0x0000 -> 0x005c {L'β', L'|'}, // 0x0000 -> 0x007c {L'γ', L'¬'}, // 0x0000 -> 0x00ac {L'@', L'"'}, // 0x0040 -> 0x0022 {L'\\', L'#'}, // 0x005c -> 0x0023 {L'|', L'~'}, // 0x007c -> 0x007e {L'~', L'¬'}, // 0x007e -> 0x00ac {0, 0}, }; You have a xxkbmap[] per keyboard type. Also, you may have a xxaltkbmap[] if you happen to have AltGr. The two arrays maps[] and altmaps[] in the same file (map.c) glue all the tables together.