package hhkb // KeycodeGroup is one labelled section of the keycode palette. type KeycodeGroup struct { Name string Codes []byte } // Palette groups the assignable scancodes for the editor, roughly the way the // official tool and QMK present them. var Palette = []KeycodeGroup{ {"Letters", codeRange(0x04, 0x1d)}, {"Numbers", codeRange(0x1e, 0x27)}, {"Symbols", []byte{0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38}}, {"Editing", []byte{0x29, 0x2a, 0x2b, 0x28, 0x2c, 0x39}}, {"Navigation", codeRange(0x49, 0x52)}, {"Function", codeRange(0x3a, 0x45)}, {"Modifiers", []byte{0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7}}, {"Media", []byte{0xe8, 0xe9, 0xea, 0xeb}}, {"Special", []byte{0x00, 0x01, 0x46, 0x47, 0x48}}, } func codeRange(lo, hi byte) []byte { out := make([]byte, 0, int(hi-lo)+1) for c := lo; c <= hi; c++ { out = append(out, c) } return out }