upgrade FreeBSD neo.kbd for vt(4) (“Newcons”)

* `syscons(4)` limitations severly restrict(ed) the use of `neo.kbd`.
  Users choose `vt(4)` if they intend to use `neo.kbd`.
  Therefore design `neo.kbd` for `vt(4)`
  disregarding incompatibilities it causes with `syscons(4)`.
* Widen source code: 80-character width limit is unnecessary nowadays.
This commit is contained in:
Kai Burghardt 2023-05-30 03:08:29 +00:00
parent 076b8a6155
commit b64104cf61
Signed by untrusted user: root
GPG Key ID: 8789EADA0E6C1EC8

View File

@ -1,143 +1,395 @@
# $FreeBSD: src/share/syscons/keymaps/german.iso.acc.kbd,v 1.1 2003/06/19 08:34:38 murray Exp $
# Neo Layout 2 based on linux/console/neo.map, v0.1 Hendrik Grahl
# TODO: Get M4 modifier and be able to call it
# TODO: Include non ascii characters apart from the umlaute
# TODO: Lv 5 & 6 probably impossible due to ISO reliance
# alt
# scan cntrl alt alt cntrl lock
# code base shift cntrl shift alt shift cntrl shift state
# ------------------------------------------------------------------
000 nop nop nop nop nop nop nop nop O
001 esc esc esc esc esc esc debug esc O
002 '1' '!' nop nop '1' '!' nop nop O
003 '2' '"' nop nop 178 178 nop nop O
004 '3' 167 nop nop 179 179 nop nop O
005 '4' 171 nop nop '4' '$' nop nop O
006 '5' 187 nop nop '5' '%' nop nop O
007 '6' 164 nop nop 164 '&' nop nop O
008 '7' '$' nop nop '{' '{' nop nop O
009 '8' '"' esc esc '[' '[' esc esc O
010 '9' '"' gs gs ']' ']' gs gs O
011 '0' '"' nop nop '}' '}' nop nop O
012 '-' '-' fs fs nop nop fs fs O
013 dacu dgra nop nop 179 180 nop nop O
014 bs bs del del bs bs del del O
015 ht btab nop nop ht btab nop nop O
016 'x' 'X' can can '@' '@' can can C
017 'v' 'V' syn syn '_' '_' syn syn C
018 'l' 'L' ff ff '[' '[' ff ff C
019 'c' 'C' etx etx ']' ']' etx etx C
020 'w' 'W' etb etb '^' '^' etb etb C
021 'k' 'K' vt vt '!' '!' vt vt C
022 'h' 'H' bs bs '<' '<' bs bs C
023 'g' 'G' bel bel '>' '>' bel bel C
024 'f' 'F' ack ack '=' '=' ack ack C
025 'q' 'Q' dc1 dc1 '&' '&' nul nul C
026 223 nop nop nop 252 220 esc nop C
027 dtil '*' nop nop duml duml nop nop O
028 cr cr nl nl cr cr nl nl O
029 lctrl lctrl lctrl lctrl lctrl lctrl lctrl lctrl O
030 'u' 'U' nak nak '\' '\' nak nak C
031 'i' 'I' ht ht '/' '/' ht ht C
032 'a' 'A' soh soh '{' '{' soh soh C
033 'e' 'E' enq enq '}' '}' enq enq C
034 'o' 'O' si si '*' '*' si si C
035 's' 'S' dc3 dc3 '?' '?' dc3 dc3 C
036 'n' 'N' so so '(' '(' so so C
037 'r' 'R' dc2 dc2 ')' ')' vt vt C
038 't' 'T' dc4 dc4 '-' '-' dc2 dc2 C
039 'd' 'D' eot eot ':' ':' eot eot C
040 'y' 'Y' em em '@' '@' nop nop C
041 dcir 176 rs rs '^' 176 em em O
042 lshift lshift lshift lshift lshift lshift lshift lshift O
043 ralt ralt ralt ralt ralt ralt ralt ralt O
044 252 220 nop nop '#' '#' nop nop C
045 246 214 nop nop '$' '$' nop nop C
046 228 196 etx etx '|' '|' etx etx C
047 'p' 'P' dle dle '~' '~' dle dle C
048 'z' 'Z' sub sub '`' '`' sub sub C
049 'b' 'B' stx stx '+' '+' stx stx C
050 'm' 'M' cr cr '%' '%' cr cr C
051 ',' ';' nop nop '"' '"' nop nop O
052 '.' ':' nop nop ''' ''' nop nop O
053 'j' 'J' nl nl ';' ';' nl nl O
054 rshift rshift rshift rshift rshift rshift rshift rshift O
055 '*' '*' '*' '*' '*' '*' '*' '*' O
056 lalt lalt lalt lalt lalt lalt lalt lalt O
057 ' ' ' ' nul ' ' ' ' ' ' susp ' ' O
058 ralt ralt ralt ralt ralt ralt ralt ralt O
059 fkey01 fkey13 fkey25 fkey37 scr01 scr11 scr01 scr11 O
060 fkey02 fkey14 fkey26 fkey38 scr02 scr12 scr02 scr12 O
061 fkey03 fkey15 fkey27 fkey39 scr03 scr13 scr03 scr13 O
062 fkey04 fkey16 fkey28 fkey40 scr04 scr14 scr04 scr14 O
063 fkey05 fkey17 fkey29 fkey41 scr05 scr15 scr05 scr15 O
064 fkey06 fkey18 fkey30 fkey42 scr06 scr16 scr06 scr16 O
065 fkey07 fkey19 fkey31 fkey43 scr07 scr07 scr07 scr07 O
066 fkey08 fkey20 fkey32 fkey44 scr08 scr08 scr08 scr08 O
067 fkey09 fkey21 fkey33 fkey45 scr09 scr09 scr09 scr09 O
068 fkey10 fkey22 fkey34 fkey46 scr10 scr10 scr10 scr10 O
069 nlock nlock nlock nlock nlock nlock nlock nlock O
070 slock slock slock slock slock slock slock slock O
071 fkey49 '7' '7' '7' '7' '7' '7' '7' N
072 fkey50 '8' '8' '8' '8' '8' '8' '8' N
073 fkey51 '9' '9' '9' '9' '9' '9' '9' N
074 fkey52 '-' '-' '-' '-' '-' '-' '-' N
075 fkey53 '4' '4' '4' '4' '4' '4' '4' N
076 fkey54 '5' '5' '5' '5' '5' '5' '5' N
077 fkey55 '6' '6' '6' '6' '6' '6' '6' N
078 fkey56 '+' '+' '+' '+' '+' '+' '+' N
079 fkey57 '1' '1' '1' '1' '1' '1' '1' N
080 fkey58 '2' '2' '2' '2' '2' '2' '2' N
081 fkey59 '3' '3' '3' '3' '3' '3' '3' N
082 fkey60 '0' '0' '0' '0' '0' '0' '0' N
083 del '.' '.' '.' '.' '.' boot boot N
084 nop nop nop nop nop nop nop nop O
085 nop nop nop nop nop nop nop nop O
086 '<' '>' nop nop '|' 166 nop nop O
087 fkey11 fkey23 fkey35 fkey47 scr11 scr11 scr11 scr11 O
088 fkey12 fkey24 fkey36 fkey48 scr12 scr12 scr12 scr12 O
089 cr cr nl nl cr cr nl nl O
090 rctrl rctrl rctrl rctrl rctrl rctrl rctrl rctrl O
091 '/' '/' '/' '/' '/' '/' '/' '/' N
092 nscr pscr debug debug nop nop nop nop O
093 ralt ralt ralt ralt ralt ralt ralt ralt O
094 fkey49 fkey49 fkey49 fkey49 fkey49 fkey49 fkey49 fkey49 O
095 fkey50 fkey50 fkey50 fkey50 fkey50 fkey50 fkey50 fkey50 O
096 fkey51 fkey51 fkey51 fkey51 fkey51 fkey51 fkey51 fkey51 O
097 fkey53 fkey53 fkey53 fkey53 fkey53 fkey53 fkey53 fkey53 O
098 fkey55 fkey55 fkey55 fkey55 fkey55 fkey55 fkey55 fkey55 O
099 fkey57 fkey57 fkey57 fkey57 fkey57 fkey57 fkey57 fkey57 O
100 fkey58 fkey58 fkey58 fkey58 fkey58 fkey58 fkey58 fkey58 O
101 fkey59 fkey59 fkey59 fkey59 fkey59 fkey59 fkey59 fkey59 O
102 fkey60 paste fkey60 fkey60 fkey60 fkey60 fkey60 fkey60 O
103 fkey61 fkey61 fkey61 fkey61 fkey61 fkey61 boot fkey61 O
104 slock saver slock saver susp nop susp nop O
105 fkey62 fkey62 fkey62 fkey62 fkey62 fkey62 fkey62 fkey62 O
106 fkey63 fkey63 fkey63 fkey63 fkey63 fkey63 fkey63 fkey63 O
107 fkey64 fkey64 fkey64 fkey64 fkey64 fkey64 fkey64 fkey64 O
108 nop nop nop nop nop nop nop nop O
# v0.2 Kai Burghardt
dgra '`' ( 'a' 224 ) ( 'A' 192 ) ( 'e' 232 ) ( 'E' 200 )
( 'i' 236 ) ( 'I' 204 ) ( 'o' 242 ) ( 'O' 210 )
( 'u' 249 ) ( 'U' 217 )
dacu 180 ( 'a' 225 ) ( 'A' 193 ) ( 'e' 233 ) ( 'E' 201 )
( 'i' 237 ) ( 'I' 205 ) ( 'o' 243 ) ( 'O' 211 )
( 'u' 250 ) ( 'U' 218 ) ( 'y' 253 ) ( 'Y' 221 )
dcir '^' ( 'a' 226 ) ( 'A' 194 ) ( 'e' 234 ) ( 'E' 202 )
( 'i' 238 ) ( 'I' 206 ) ( 'o' 244 ) ( 'O' 212 )
( 'u' 251 ) ( 'U' 219 )
dtil '~' ( 'a' 227 ) ( 'A' 195 ) ( 'n' 241 ) ( 'N' 209 )
( 'o' 245 ) ( 'O' 213 )
dmac 000
dbre 000
ddot 000
duml 168 ( 'a' 228 ) ( 'A' 196 ) ( 'e' 235 ) ( 'E' 203 )
( 'i' 239 ) ( 'I' 207 ) ( 'o' 246 ) ( 'O' 214 )
( 'u' 252 ) ( 'U' 220 ) ( 'y' 255 )
dsla 000
drin 176 ( 'a' 229 ) ( 'A' 197 )
dced 184 ( 'c' 231 ) ( 'C' 199 )
dapo 000
ddac 000
dogo 000
dcar 000
# ⚠ This keyboard layout breaks customary switching between virtual terminals
# via Alt-F1 through Alt-F12 (and Shift-Alt-F1 through Shift-Alt-F12) [cmp. vt(4)].
# This keymap(5) does not contain the customary Ctrl-Alt-Del reboot command either.
#
# In this keymap(5) file “Alt” is the key that is known as Caps Lock on a typewriter.
# In the context of the NEO keyboard layout this key is known as “Mod3”.
# By holding down Mod3 (without other modifier keys) “level 3” is accessed.
#
# Since the symbol “alt” is used for Mod3, the actual Alt key is left unmapped.
# Instead Ctrl-Left and Ctrl-Right allow access to the previous and next screen.
#
# Some pitfall:
# If `kern.vt.enable_altgr` is `1`, `ralt` and `lalt`/`alt` are not treated equally.
# 2 control control control control
# scan 4 alt alt alt alt lock
# code 1 shift shift shift shift state
# ───────────────────────────────────────────────────────────────────────────
000 nop nop nop nop nop nop nop nop O
001 esc esc nop nop esc esc debug esc O
002 '1' 0x00B0 nop nop 0x00B9 0x2081 nop nop O
003 '2' 0x00A7 nul nul 0x00B2 0x2082 nul nul O
004 '3' 0x2113 nop nop 0x00B3 0x2083 nop nop O
005 '4' 0x00BB nop nop 0x203A 0x2640 nop nop O
006 '5' 0x00AB nop nop 0x2039 0x2642 nop nop O
007 '6' '$' rs rs 0x00A2 0x26A5 rs rs O
008 '7' 0x20AC nop nop 0x00A5 0x03F0 nop nop O
009 '8' 0x201E nop nop 0x201A 0x27E8 nop nop O
010 '9' 0x201C nop nop 0x2018 0x27E9 nop nop O
011 '0' 0x201D nop nop 0x2019 0x2080 nop nop O
012 '-' 0x2014 us nop nop 0x2011 us nop O
013 dgra dced nop nop drin nop nop nop O
014 bs bs nop nop bs bs nop nop O
015 ht ht nop nop ht alta nop nop O
016 'x' 'X' can can 0x2026 0x03BE nop nop C
017 'v' 'V' syn syn '_' nop us nop C
018 'l' 'L' ff ff '[' 0x03BB esc nop C
019 'c' 'C' etx etx ']' 0x03C7 gs nop C
020 'w' 'W' etb etb '^' 0x03C9 rs nop C
021 'k' 'K' vt vt '!' 0x03BA nop nop C
022 'h' 'H' bs bs '<' 0x03C8 nop nop C
023 'g' 'G' bel bel '>' 0x03B3 nop nop C
024 'f' 'F' ack ack '=' 0x03C6 nop nop C
025 'q' 'Q' dc1 dc1 '&' 0x03D5 nop nop C
026 0x00DF 0x1E9E nop nop 0x017F 0x03C2 nop nop C
027 dacu dtil nop nop dsla nop nop nop O
028 nl nl nop nop nl nl nop nop O
029 lctrl lctrl lctrl lctrl lctrl lctrl lctrl lctrl O
030 'u' 'U' nak nak '\' nop fs nop C
031 'i' 'I' ht ht '/' 0x03B9 us nop C
032 'a' 'A' soh soh '{' 0x03B1 esc nop C
033 'e' 'E' enq enq '}' 0x03B5 gs nop C
034 'o' 'O' si si '*' 0x03BF nop nop C
035 's' 'S' dc3 dc3 '?' 0x03C3 nop nop C
036 'n' 'N' so so '(' 0x03BD nop nop C
037 'r' 'R' dc2 dc2 ')' 0x03C1 nop nop C
038 't' 'T' dc4 dc4 '-' 0x03C4 nop nop C
039 'd' 'D' eot eot ':' 0x03B4 nop nop C
040 'y' 'Y' em em '@' 0x03C5 nul nop C
041 dcir dcar nop nop nop nop nop nop O
042 lshift clock lshift clock lshift clock lshift clock O
043 ralt ralt ralt ralt ralt ralt ralt ralt O # Mod3 (right)
044 0x00FC 0x00DC nop nop '#' nop nop nop C
045 0x00F6 0x00D6 nop nop '$' 0x03F5 nop nop C
046 0x00E4 0x00C4 nop nop '|' 0x03B7 fs nop C
047 'p' 'P' dle dle '~' 0x03C0 nop nop C
048 'z' 'Z' sub sub '`' 0x03B6 nop nop C
049 'b' 'B' stx stx '+' 0x03B2 nop nop C
050 'm' 'M' cr cr '%' 0x03BC nop nop C
051 ',' 0x2013 nop nop '"' 0x03F1 nop nop O
052 '.' 0x2022 nop nop ''' 0x03D1 nop nop O
053 'j' 'J' nop nop ';' 0x03B8 nop nop C
054 rshift clock nop nop rshift rshift nop nop O
055 '*' '*' nop nop 0x22C5 0x2299 nop nop O # numeric keypad
056 nop nop nop nop nop nop nop nop O # actual Alt key
057 ' ' ' ' ' ' ' ' ' ' 0x00A0 ' ' nop O
058 ralt ralt ralt ralt ralt ralt ralt ralt O # Mod3 (left)
059 fkey01 fkey13 fkey25 fkey37 nop nop nop nop O
060 fkey02 fkey14 fkey26 fkey38 nop nop nop nop O
061 fkey03 fkey15 fkey27 fkey39 nop nop nop nop O
062 fkey04 fkey16 fkey28 fkey40 nop nop nop nop O
063 fkey05 fkey17 fkey29 fkey41 nop nop nop nop O
064 fkey06 fkey18 fkey30 fkey42 nop nop nop nop O
065 fkey07 fkey19 fkey31 fkey43 nop nop nop nop O
066 fkey08 fkey20 fkey32 fkey44 nop nop nop nop O
067 fkey09 fkey21 fkey33 fkey45 nop nop nop nop O
068 fkey10 fkey22 fkey34 fkey46 nop nop nop nop O
069 ht btab nop nop '=' 0x2248 nop nop O # labeled “Num Lock”
070 slock slock slock slock slock slock slock slock O
071 '7' 0x2714 nop nop 0x2195 0x226A nop nop O
072 '8' 0x2718 nop nop 0x2191 0x2229 nop nop O
073 '9' 0x2020 nop nop 0x20D7 0x226B nop nop O
074 '-' fkey52 nop nop 0x2212 0x2296 nop nop O
075 '4' 0x2663 nop nop 0x2190 0x2282 nop nop O
076 '5' 0x20AC nop nop ':' 0x22B6 nop nop O
077 '6' 0x2023 nop nop 0x2192 0x2283 nop nop O
078 '+' fkey56 nop nop 0x00B1 0x2295 nop nop O
079 '1' 0x2666 nop nop 0x2194 0x2264 nop nop O
080 '2' 0x2665 nop nop 0x2193 0x222A nop nop O
081 '3' 0x2660 nop nop 0x21CC 0x2265 nop nop O
082 '0' 0x2423 nop nop '%' 0x2030 nop nop O
083 ',' '.' nop nop ',' 0x2032 nop nop O
084 nop nop nop nop nop nop nop nop O
085 nop nop nop nop nop nop nop nop O
086 nop nop nop nop nop nop nop nop O # Mod4 (left)
087 fkey11 fkey23 fkey35 fkey47 nop nop nop nop O
088 fkey12 fkey24 fkey36 fkey48 nop nop nop nop O
089 nl nl nl nl nl nl nl nl O # numeric keypad
090 rctrl rctrl rctrl rctrl rctrl rctrl rctrl rctrl O
091 '/' '/' nop nop 0x00F7 0x2300 nop nop O # numeric keypad
092 nop nop nop nop nop nop nop nop O # Prt Sc | Sys Rq
093 nop nop nop nop nop nop nop nop O # labeled “Alt Gr”
094 fkey49 fkey49 fkey49 fkey49 fkey49 fkey49 fkey49 fkey49 O
095 fkey50 fkey50 fkey50 fkey50 fkey50 fkey50 fkey50 fkey50 O
096 fkey51 fkey51 fkey51 fkey51 fkey51 fkey51 fkey51 fkey51 O
097 fkey53 fkey53 pscr fkey53 fkey53 fkey53 fkey53 fkey53 O
098 fkey55 fkey55 nscr fkey55 fkey55 fkey55 fkey55 fkey55 O
099 fkey57 fkey57 fkey57 fkey57 fkey57 fkey57 fkey57 fkey57 O
100 fkey58 fkey58 fkey58 fkey58 fkey58 fkey58 fkey58 fkey58 O
101 fkey59 fkey59 fkey59 fkey59 fkey59 fkey59 fkey59 fkey59 O
102 fkey60 fkey60 fkey60 fkey60 fkey60 fkey60 fkey60 fkey60 O
103 fkey61 fkey61 fkey61 fkey61 fkey61 fkey61 fkey61 fkey61 O
104 nop nop nop nop nop nop nop nop O # Pause/Break
105 fkey62 fkey62 fkey62 fkey62 fkey62 fkey62 fkey62 fkey62 O
106 fkey63 fkey63 fkey63 fkey63 fkey63 fkey63 fkey63 fkey63 O
107 fkey64 fkey64 fkey64 fkey64 fkey64 fkey64 fkey64 fkey64 O
108 nop nop nop nop nop nop nop nop O
# ─── +ALTGR_OFFSET via `alta` ──────────────────────────────────────────────
128 nop nop nop nop nop nop nop nop O
129 esc esc esc esc esc esc esc esc O
130 0x00AA nop nop nop 0x00AC nop nop nop O
131 0x00BA nop nop nop 0x2228 nop nop nop O
132 0x2116 nop nop nop 0x2227 nop nop nop O
133 nop nop nop nop 0x22A5 nop nop nop O
134 0x00B7 nop nop nop 0x2221 nop nop nop O
135 0x00A3 nop nop nop 0x2225 nop nop nop O
136 0x00A4 nop nop nop 0x2192 nop nop nop O
137 ht nop nop nop 0x221E nop nop nop O
138 '/' nop nop nop nop nop nop nop O
139 '*' nop nop nop 0x2205 nop nop nop O
140 '-' nop nop nop 0x00AD nop nop nop O
141 duml nop nop nop dmac nop nop nop O
142 bs nop nop nop bs nop nop nop O
143 ht nop nop nop nop alta nop nop O
144 fkey07 nop nop nop 0x039E nop nop nop O
145 bs nop nop nop 0x221A nop nop nop O
146 fkey50 nop nop nop 0x039B nop nop nop O
147 fkey61 nop nop nop 0x2102 nop nop nop O
148 fkey08 nop nop nop 0x03A9 nop nop nop O
149 0x00A1 nop nop nop 0x00D7 nop nop nop O
150 '7' nop nop nop 0x03A8 nop nop nop O
151 '8' nop nop nop 0x0393 nop nop nop O
152 '9' nop nop nop 0x03A6 nop nop nop O
153 '+' nop nop nop nop nop nop nop O
154 0x2212 nop nop nop nop nop nop nop O
155 ddac nop nop nop nop nop nop nop O
156 nl nl nl nl nl nl nl nl O
157 lctrl lctrl lctrl lctrl lctrl lctrl lctrl lctrl O
158 fkey49 nop nop nop nop nop nop nop O
159 fkey53 nop nop nop nop nop nop nop O
160 fkey58 nop nop nop nop nop nop nop O
161 fkey55 nop nop nop nop nop nop nop O
162 fkey57 nop nop nop nop nop nop nop O
163 0x00BF nop nop nop nop nop nop nop O
164 '4' nop nop nop 0x2115 nop nop nop O
165 '5' nop nop nop 0x211D nop nop nop O
166 '6' nop nop nop 0x2202 nop nop nop O
167 ',' nop nop nop 0x0394 nop nop nop O
168 '.' nop nop nop 0x2207 nop nop nop O
169 ddot nop nop nop nop nop nop nop O
170 lshift clock lshift clock lshift clock lshift clock O
171 ralt ralt ralt ralt ralt ralt ralt ralt O
172 esc nop nop nop 0x222A nop nop nop O
173 ht nop nop nop 0x2229 nop nop nop O
174 fkey60 nop nop nop 0x2135 nop nop nop O
175 nl nop nop nop 0x03A0 nop nop nop O
176 nop nop nop nop 0x2124 nop nop nop O
177 ':' nop nop nop 0x21D0 nop nop nop O
178 '1' nop nop nop 0x21D4 nop nop nop O
179 '2' nop nop nop 0x21D2 nop nop nop O
180 '3' nop nop nop 0x21A6 nop nop nop O
181 ';' nop nop nop 0x0398 nop nop nop O
182 rshift clock rshift clock rshift clock rshift clock O
183 0x00D7 nop nop nop 0x2297 nop nop nop O
184 nop nop nop nop nop nop nop nop O
185 '0' nop nop nop 0x202F nop nop nop O
186 nop nop nop nop nop nop nop nop O
187 nop nop nop nop nop nop nop nop O
188 nop nop nop nop nop nop nop nop O
189 nop nop nop nop nop nop nop nop O
190 nop nop nop nop nop nop nop nop O
191 nop nop nop nop nop nop nop nop O
192 nop nop nop nop nop nop nop nop O
193 nop nop nop nop nop nop nop nop O
194 nop nop nop nop nop nop nop nop O
195 nop nop nop nop nop nop nop nop O
196 nop nop nop nop nop nop nop nop O
197 0x2260 nop nop nop nop nop nop nop O
198 nop nop nop nop nop nop nop nop O
199 fkey49 nop nop nop 0x2308 nop nop nop O
200 fkey50 nop nop nop 0x22C2 nop nop nop O
201 fkey51 nop nop nop 0x2309 nop nop nop O
202 0x2216 nop nop nop 0x2238 nop nop nop O
203 fkey53 nop nop nop 0x2286 nop nop nop O
204 nop nop nop nop 0x22B7 nop nop nop O
205 fkey55 nop nop nop 0x2287 nop nop nop O
206 0x2213 nop nop nop 0x2214 nop nop nop O
207 fkey57 nop nop nop 0x230A nop nop nop O
208 fkey58 nop nop nop 0x22C3 nop nop nop O
209 fkey59 nop nop nop 0x230B nop nop nop O
210 fkey60 nop nop nop 0x25A1 nop nop nop O
211 fkey61 nop nop nop 0x2033 nop nop nop O
212 nop nop nop nop nop nop nop nop O
213 nop nop nop nop nop nop nop nop O
214 nop nop nop nop nop nop nop nop O
215 nop nop nop nop nop nop nop nop O
216 nop nop nop nop nop nop nop nop O
217 nl nl nl nl nl nl nl nl O
218 rctrl rctrl rctrl rctrl rctrl rctrl rctrl rctrl O
219 0x2215 nop nop nop 0x2223 nop nop nop O
220 nop nop nop nop nop nop nop nop O
221 nop nop nop nop nop nop nop nop O
222 nop nop nop nop nop nop nop nop O
223 nop nop nop nop nop nop nop nop O
224 nop nop nop nop nop nop nop nop O
225 nop nop nop nop nop nop nop nop O
226 nop nop nop nop nop nop nop nop O
227 nop nop nop nop nop nop nop nop O
228 nop nop nop nop nop nop nop nop O
229 nop nop nop nop nop nop nop nop O
230 nop nop nop nop nop nop nop nop O
231 nop nop nop nop nop nop nop nop O
232 nop nop nop nop nop nop nop nop O
233 nop nop nop nop nop nop nop nop O
234 nop nop nop nop nop nop nop nop O
235 nop nop nop nop nop nop nop nop O
236 nop nop nop nop nop nop nop nop O
# ───────────────────────────────────────────────────────────────────────────
# scan base shift cntrl cntrl alt alt alt alt lock
# code shift shift cntrl cntrl state
# shift
dgra '`' ( 'A' 0x00C0 ) ( 'a' 0x00E0 ) # accent grave
( 'E' 0x00C8 ) ( 'e' 0x00E8 )
( 'I' 0x00CC ) ( 'i' 0x00EC )
( 'N' 0x01F8 ) ( 'n' 0x01F9 )
( 'O' 0x00D2 ) ( 'o' 0x00F2 )
( 'U' 0x00D9 ) ( 'u' 0x00F9 )
( 'W' 0x1E80 ) ( 'w' 0x1E81 )
( 'Y' 0x1EF2 ) ( 'y' 0x1EF3 )
dacu 180 ( 'A' 0x00C1 ) ( 'a' 0x00E1 ) # accent aigu
( 'C' 0x0106 ) ( 'c' 0x0107 )
( 'E' 0x00C9 ) ( 'e' 0x00E9 )
( 'G' 0x01F4 ) ( 'g' 0x01F5 )
( 'I' 0x00CD ) ( 'i' 0x00ED )
( 'K' 0x1E30 ) ( 'k' 0x1E31 )
( 'L' 0x0139 ) ( 'l' 0x013A )
( 'M' 0x1E3E ) ( 'm' 0x1E3F )
( 'N' 0x0143 ) ( 'n' 0x0144 )
( 'O' 0x00D3 ) ( 'o' 0x00F3 )
( 'P' 0x1E54 ) ( 'p' 0x1E55 )
( 'R' 0x0154 ) ( 'r' 0x0155 )
( 'S' 0x015A ) ( 's' 0x015B )
( 'U' 0x00DA ) ( 'u' 0x00FA )
( 'W' 0x1E82 ) ( 'w' 0x1E83 )
( 'Y' 0x00DD ) ( 'y' 0x00FD )
( 'Z' 0x0179 ) ( 'z' 0x017A )
dcir '^' ( 'A' 0x00C2 ) ( 'a' 0x00E2 ) # accent circonflexe
( 'C' 0x0108 ) ( 'c' 0x0109 )
( 'E' 0x00CA ) ( 'e' 0x00EA )
( 'G' 0x011C ) ( 'g' 0x011D )
( 'H' 0x0124 ) ( 'h' 0x0125 )
( 'I' 0x00CE ) ( 'i' 0x00EE )
( 'J' 0x0134 ) ( 'j' 0x0135 )
( 'O' 0x00D4 ) ( 'o' 0x00F4 )
( 'S' 0x015C ) ( 's' 0x015D )
( 'U' 0x00DB ) ( 'u' 0x00FB )
( 'W' 0x0174 ) ( 'w' 0x0175 )
( 'Y' 0x0176 ) ( 'y' 0x0177 )
( 'Z' 0x1E90 ) ( 'z' 0x1E91 )
dtil '~' ( 'A' 0x00C3 ) ( 'a' 0x00E3 ) # tilde
( 'E' 0x1EBC ) ( 'e' 0x1EBD )
( 'I' 0x0128 ) ( 'i' 0x0129 )
( 'N' 0x00D1 ) ( 'n' 0x00F1 )
( 'O' 0x00D5 ) ( 'o' 0x00F5 )
( 'U' 0x0168 ) ( 'u' 0x0169 )
( 'V' 0x1E7C ) ( 'v' 0x1E7D )
( 'Y' 0x1EF8 ) ( 'y' 0x1EF9 )
dmac 0x00AF ( 'A' 0x0100 ) ( 'a' 0x0101 ) # macron (Mod3 ∧ Mod4)
( 'E' 0x0112 ) ( 'e' 0x0113 )
( 'G' 0x1E20 ) ( 'g' 0x1E21 )
( 'I' 0x012A ) ( 'i' 0x012B )
( 'O' 0x014C ) ( 'o' 0x014D )
( 'U' 0x016A ) ( 'u' 0x016B )
( 'Y' 0x0232 ) ( 'y' 0x0233 )
dbre 0x02D8 ( 'A' 0x0102 ) ( 'a' 0x0103 ) # brève
( 'E' 0x0114 ) ( 'e' 0x0115 )
( 'G' 0x011E ) ( 'g' 0x01F5 )
( 'I' 0x012C ) ( 'i' 0x012D )
( 'O' 0x014E ) ( 'o' 0x014F )
( 'U' 0x016C ) ( 'u' 0x016D )
ddot 0x02D9 ( 'A' 0x0226 ) ( 'a' 0x0227 ) # point
( 'B' 0x1E02 ) ( 'b' 0x1E03 )
( 'C' 0x010A ) ( 'c' 0x010B )
( 'D' 0x1E0A ) ( 'd' 0x1E0B )
( 'E' 0x0116 ) ( 'e' 0x0117 )
( 'F' 0x1E1E ) ( 'f' 0x1E1F )
( 'G' 0x0120 ) ( 'g' 0x0121 )
( 'H' 0x1E22 ) ( 'h' 0x1E23 )
( 'I' 0x0130 ) ( 'i' 0x0131 )
( 'L' 0x013F ) ( 'l' 0x0140 )
( 'M' 0x1E40 ) ( 'm' 0x1E41 )
( 'N' 0x1E44 ) ( 'n' 0x1E45 )
( 'O' 0x022E ) ( 'o' 0x022F )
( 'P' 0x1E56 ) ( 'p' 0x1E57 )
( 'R' 0x1E58 ) ( 'r' 0x1E59 )
( 'S' 0x1E60 ) ( 's' 0x1E61 )
( 'T' 0x1E6A ) ( 't' 0x1E6B )
( 'W' 0x1E86 ) ( 'w' 0x1E87 )
( 'X' 0x1E8A ) ( 'x' 0x1E8B )
( 'Y' 0x1E8E ) ( 'y' 0x1E8F )
( 'Z' 0x017B ) ( 'z' 0x017C )
duml 0x00A8 ( 'A' 0x00C4 ) ( 'a' 0x00E4 ) # tréma
( 'E' 0x00CB ) ( 'e' 0x00EB )
( 'I' 0x00CF ) ( 'i' 0x00EF )
( 'O' 0x00D6 ) ( 'o' 0x00F6 )
( 'U' 0x00DC ) ( 'u' 0x00FC )
( 'W' 0x1E84 ) ( 'w' 0x1E85 )
( 'X' 0x1E8C ) ( 'x' 0x1E8D )
( 'Y' 0x0178 ) ( 'y' 0x00FF )
dsla '/' ( 'A' 0x023A ) ( 'a' 0x2C65 ) # barre
( 'B' 0x0243 ) ( 'b' 0x0180 )
( 'C' 0x023B ) ( 'c' 0x023C )
( 'D' 0x0110 ) ( 'd' 0x0111 )
( 'E' 0x0246 ) ( 'e' 0x0247 )
( 'G' 0x01E4 ) ( 'g' 0x01E5 )
( 'H' 0x0126 ) ( 'h' 0x0127 )
( 'I' 0x0197 ) ( 'i' 0x0268 )
( 'J' 0x0248 ) ( 'j' 0x0249 )
( 'L' 0x0141 ) ( 'l' 0x0142 )
( 'O' 0x00D8 ) ( 'o' 0x00F8 )
( 'P' 0x2C63 ) ( 'p' 0x1D7D )
( 'R' 0x024C ) ( 'r' 0x024D )
( 'T' 0x0166 ) ( 't' 0x0167 )
( 'U' 0x0244 ) ( 'u' 0x0289 )
( 'Y' 0x024E ) ( 'y' 0x024F )
( 'Z' 0x01B5 ) ( 'z' 0x01B6 )
drin 0x00B0 ( 'A' 0x00C5 ) ( 'a' 0x00E5 ) # rond en chef
( 'U' 0x016E ) ( 'u' 0x016F )
( 'w' 0x1E98 )
( 'y' 0x1E99 )
dced 0x00B8 ( 'C' 0x00C7 ) ( 'c' 0x00E7 ) # cédille
( 'D' 0x1E10 ) ( 'd' 0x1E11 )
( 'G' 0x0122 ) ( 'g' 0x0123 )
( 'H' 0x1E28 ) ( 'h' 0x1E29 )
( 'K' 0x0136 ) ( 'k' 0x0137 )
( 'L' 0x013B ) ( 'l' 0x013C )
( 'N' 0x0145 ) ( 'n' 0x0146 )
( 'R' 0x0156 ) ( 'r' 0x0157 )
( 'S' 0x015E ) ( 's' 0x015F )
( 'T' 0x0162 ) ( 't' 0x0163 )
dapo 0x0000 # ???? ???? ???? ????
ddac 0x02DD ( 'O' 0x0150 ) ( 'o' 0x0151 ) # double accent aigu
( 'U' 0x0170 ) ( 'u' 0x0171 )
dogo 0x02DB ( 'A' 0x0104 ) ( 'a' 0x0105 ) # ogonek
( 'E' 0x0118 ) ( 'e' 0x0119 )
( 'I' 0x012E ) ( 'i' 0x012F )
( 'O' 0x01EA ) ( 'o' 0x01EB )
( 'U' 0x0172 ) ( 'u' 0x0173 )
dcar 0x02C7 ( 'A' 0x01CD ) ( 'a' 0x01CE ) # caron
( 'C' 0x010C ) ( 'c' 0x010D )
( 'D' 0x010E ) ( 'd' 0x010F )
( 'E' 0x011A ) ( 'e' 0x011B )
( 'G' 0x01E6 ) ( 'g' 0x01E7 )
( 'H' 0x021E ) ( 'h' 0x021F )
( 'I' 0x01CF ) ( 'i' 0x01D0 )
( 'j' 0x01F0 )
( 'K' 0x01E8 ) ( 'k' 0x01E9 )
( 'L' 0x013D ) ( 'l' 0x013E )
( 'N' 0x0147 ) ( 'n' 0x0148 )
( 'O' 0x01D1 ) ( 'o' 0x01D2 )
( 'R' 0x0158 ) ( 'r' 0x0159 )
( 'S' 0x0160 ) ( 's' 0x0161 )
( 'T' 0x0164 ) ( 't' 0x0165 )
( 'U' 0x01D3 ) ( 'u' 0x01D4 )
( 'Z' 0x017D ) ( 'z' 0x017E )
# As of FreeBSD version 13.2, following keys are not mappable:
#
# • Mod4 as an actual modifier key.
# • “Undo” via level 4.