first commit
This commit is contained in:
43
internal/hhkb/keymap.go
Normal file
43
internal/hhkb/keymap.go
Normal file
@@ -0,0 +1,43 @@
|
||||
package hhkb
|
||||
|
||||
// Mode is the keyboard personality selected by the DIP switches.
|
||||
type Mode byte
|
||||
|
||||
const (
|
||||
ModeHHK Mode = iota
|
||||
ModeMac
|
||||
ModeLite
|
||||
ModeSecret
|
||||
)
|
||||
|
||||
func (m Mode) String() string {
|
||||
switch m {
|
||||
case ModeHHK:
|
||||
return "HHK"
|
||||
case ModeMac:
|
||||
return "Mac"
|
||||
case ModeLite:
|
||||
return "Lite"
|
||||
case ModeSecret:
|
||||
return "Secret"
|
||||
}
|
||||
return "unknown"
|
||||
}
|
||||
|
||||
// LayerLen is the size of one key layer. A key's number indexes directly into
|
||||
// the layer to give its scancode.
|
||||
const LayerLen = 128
|
||||
|
||||
// Layer holds the scancode assigned to every key on one layer.
|
||||
type Layer [LayerLen]byte
|
||||
|
||||
// Key describes one physical key: its protocol key number, factory default
|
||||
// scancode, visual row, and position/width in key units (as in QMK layouts,
|
||||
// where 1.0 is a normal keycap). The key tables live in models.go.
|
||||
type Key struct {
|
||||
Num int
|
||||
Def byte
|
||||
Row int
|
||||
X float64
|
||||
W float64
|
||||
}
|
||||
Reference in New Issue
Block a user