summaryrefslogtreecommitdiffstats
path: root/lib/key-codes.tcl
blob: 35bbe9653509b8195eecdbc175d4a225a273eb4e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
set KeyCodes [dict create]

proc keydef {code val {shiftVal ""}} {
  upvar KeyCodes KeyCodes
  if {$shiftVal == ""} {
    set shiftVal $val
  }
  dict set KeyCodes $code [list $val $shiftVal]
}

proc keyFromCode {code {shift false}} {
  upvar KeyCodes KeyCodes
  if {[dict exists $KeyCodes $code]} {
    set vals [dict get $KeyCodes $code]
    return [lindex $vals [expr {$shift ? 1 : 0}]]
  }
  puts "WARNING: unknown key code \"$code\""
  return ""
}

# Keycodes from https://github.com/torvalds/linux/blob/master/include/uapi/linux/input-event-codes.h
keydef 0		{RESERVED}
keydef 1		{ESC}
keydef 2		{1} {!}
keydef 3		{2} {@}
keydef 4		{3} {#}
keydef 5		{4} {$}
keydef 6		{5} {%}
keydef 7		{6} {^}
keydef 8		{7} {&}
keydef 9		{8} {*}
keydef 10		{9} {(}
keydef 11		{0} {)}
keydef 12		{-} {_}
keydef 13		{=} {+}
keydef 14		{BACKSPACE}
keydef 15		{TAB}
keydef 16		{q} {Q}
keydef 17		{w} {W}
keydef 18		{e} {E}
keydef 19		{r} {R}
keydef 20		{t} {T}
keydef 21		{y} {Y}
keydef 22		{u} {U}
keydef 23		{i} {I}
keydef 24		{o} {O}
keydef 25		{p} {P}
keydef 26		{[} "\{"
keydef 27		{]} "\}"
keydef 28		{ENTER}
keydef 29		{LEFTCTRL}
keydef 30		{a} {A}
keydef 31		{s} {S}
keydef 32		{d} {D}
keydef 33		{f} {F}
keydef 34		{g} {G}
keydef 35		{h} {H}
keydef 36		{j} {J}
keydef 37		{k} {K}
keydef 38		{l} {L}
keydef 39		{;} {:}
keydef 40		{'} "\""
keydef 41		{`} {~}
keydef 42		{LEFTSHIFT}
keydef 43		"\\" {|}
keydef 44		{z} {Z}
keydef 45		{x} {X}
keydef 46		{c} {C}
keydef 47		{v} {V}
keydef 48		{b} {B}
keydef 49		{n} {N}
keydef 50		{m} {M}
keydef 51		{,} {<}
keydef 52		{.} {>}
keydef 53		{/} {?}
keydef 54		{RIGHTSHIFT}
keydef 55		{KPASTERISK}
keydef 56		{LEFTALT}
keydef 57		{ } ;# SPACE
keydef 58		{CAPSLOCK}
keydef 59		{F1}
keydef 60		{F2}
keydef 61		{F3}
keydef 62		{F4}
keydef 63		{F5}
keydef 64		{F6}
keydef 65		{F7}
keydef 66		{F8}
keydef 67		{F9}
keydef 68		{F10}
keydef 69		{NUMLOCK}
keydef 70		{SCROLLLOCK}
keydef 71		{KP7}
keydef 72		{KP8}
keydef 73		{KP9}
keydef 74		{KPMINUS}
keydef 75		{KP4}
keydef 76		{KP5}
keydef 77		{KP6}
keydef 78		{KPPLUS}
keydef 79		{KP1}
keydef 80		{KP2}
keydef 81		{KP3}
keydef 82		{KP0}
keydef 83		{KPDOT}

keydef 85		{ZENKAKUHANKAKU}
keydef 86		{102ND}
keydef 87		{F11}
keydef 88		{F12}
keydef 89		{RO}
keydef 90		{KATAKANA}
keydef 91		{HIRAGANA}
keydef 92		{HENKAN}
keydef 93		{KATAKANAHIRAGANA}
keydef 94		{MUHENKAN}
keydef 95		{KPJPCOMMA}
keydef 96		{KPENTER}
keydef 97		{RIGHTCTRL}
keydef 98		{KPSLASH}
keydef 99		{SYSRQ}
keydef 100		{RIGHTALT}
keydef 101		{LINEFEED}
keydef 102		{HOME}
keydef 103		{UP}
keydef 104		{PAGEUP}
keydef 105		{LEFT}
keydef 106		{RIGHT}
keydef 107		{END}
keydef 108		{DOWN}
keydef 109		{PAGEDOWN}
keydef 110		{INSERT}
keydef 111		{DELETE}
keydef 112		{MACRO}
keydef 113		{MUTE}
keydef 114		{VOLUMEDOWN}
keydef 115		{VOLUMEUP}
keydef 116		{POWER}
keydef 117		{KPEQUAL}
keydef 118		{KPPLUSMINUS}
keydef 119		{PAUSE}
keydef 120		{SCALE}