|
7 | 7 | * and http://win.tue.nl/~aeb/linux/kbd/scancodes-1.html |
8 | 8 | */ |
9 | 9 |
|
| 10 | +/* |
| 11 | + * This keyboard layout is Work In Progress! |
| 12 | + * |
| 13 | + * Missing Keys: |
| 14 | + * 1st row: |
| 15 | + * Shift + AltGr + VK_OEM_4 => 0x1e9e (capital sharp s) |
| 16 | + * AltGr + VK_OEM_6 => dot above dead key |
| 17 | + * 2nd row: |
| 18 | + * 3nd row: |
| 19 | + * 4nd row: |
| 20 | + * all new keys |
| 21 | + */ |
| 22 | + |
10 | 23 | #define WIN32_NO_STATUS |
11 | 24 | #include <stdarg.h> |
12 | 25 | #include <windef.h> |
@@ -161,14 +174,9 @@ ROSDATA MODIFIERS modifier_bits = { |
161 | 174 | }; |
162 | 175 |
|
163 | 176 | ROSDATA VK_TO_WCHARS2 key_to_chars_2mod[] = { |
164 | | - { VK_OEM_5, 0, {WCH_DEAD, 0xb0} }, |
165 | | - { 0xff, 0, {'^', WCH_NONE} }, // FIXME - why doesn't this work? |
166 | 177 | /* Normal vs Shifted */ |
167 | 178 | /* The numbers */ |
168 | | - { '1', CAPLOK, {'1', '!'} }, |
169 | 179 | /* Ctrl-2 generates NUL */ |
170 | | - { '4', CAPLOK, {'4', '$'} }, |
171 | | - { '5', CAPLOK, {'5', '%'} }, |
172 | 180 |
|
173 | 181 | { VK_OEM_6, 0, {WCH_DEAD, WCH_DEAD} }, |
174 | 182 | { 0xff, 0, {0xb4, '`'} }, |
@@ -217,7 +225,14 @@ ROSDATA VK_TO_WCHARS2 key_to_chars_2mod[] = { |
217 | 225 | ROSDATA VK_TO_WCHARS3 key_to_chars_3mod[] = { |
218 | 226 | /* Normal, Shifted, Ctrl+Alt */ |
219 | 227 | /* Legacy (telnet-style) ascii escapes */ |
| 228 | + { VK_OEM_5, 0, {WCH_DEAD, 0xb0, 0xd7} }, |
| 229 | + { 0xff, 0, {'^', WCH_NONE, WCH_NONE} }, // FIXME - why doesn't this work? |
| 230 | + |
| 231 | + { '1', CAPLOK, {'1', '!', 0x2019} }, |
220 | 232 | { '3', CAPLOK, {'3', 0xa7, 0xb3} }, |
| 233 | + { '4', CAPLOK, {'4', '$', 0x2014} }, |
| 234 | + { '5', CAPLOK, {'5', '%', 0xa1} }, |
| 235 | + |
221 | 236 | { '7', CAPLOK, {'7', '/', '{'} }, |
222 | 237 | { '8', CAPLOK, {'8', '(', '['} }, |
223 | 238 | { '9', CAPLOK, {'9', ')', ']'} }, |
@@ -247,7 +262,7 @@ ROSDATA VK_TO_WCHARS4 key_to_chars_4mod[] = { |
247 | 262 | ROSDATA VK_TO_WCHARS5 key_to_chars_5mod[] = { |
248 | 263 | /* Normal, Shifted, Ctrl, C-S-x */ |
249 | 264 | { '2', CAPLOK, {'2', '\"', 0xb2, WCH_NONE, 0x00} }, |
250 | | - { '6', CAPLOK, {'6', '&', WCH_NONE, WCH_NONE, 0x1e} }, |
| 265 | + { '6', CAPLOK, {'6', '&', 0xbf, WCH_NONE, 0x1e} }, |
251 | 266 | { VK_OEM_MINUS, 0, {'-', '_', WCH_NONE, WCH_NONE, 0x1f} }, |
252 | 267 | { 0, 0 } |
253 | 268 | }; |
@@ -415,29 +430,63 @@ ROSDATA DEADKEY dead_key[] = { |
415 | 430 | { DEADTRANS(L'=', L'^', 0x2259, 0x00) }, |
416 | 431 | { DEADTRANS(L'^', L'^', 0x0302, 0x00) }, |
417 | 432 | { DEADTRANS(L'a', 0xb4, 0xe1, 0x00) }, |
| 433 | + { DEADTRANS(L'c', 0xb4, 0x107, 0x00) }, |
418 | 434 | { DEADTRANS(L'e', 0xb4, 0xe9, 0x00) }, |
| 435 | + { DEADTRANS(L'g', 0xb4, 0x1f5, 0x00) }, |
419 | 436 | { DEADTRANS(L'i', 0xb4, 0xed, 0x00) }, |
| 437 | + { DEADTRANS(L'k', 0xb4, 0x1e31, 0x00) }, |
| 438 | + { DEADTRANS(L'l', 0xb4, 0x13a, 0x00) }, |
| 439 | + { DEADTRANS(L'm', 0xb4, 0x1e3f, 0x00) }, |
| 440 | + { DEADTRANS(L'n', 0xb4, 0x144, 0x00) }, |
420 | 441 | { DEADTRANS(L'o', 0xb4, 0xf3, 0x00) }, |
| 442 | + { DEADTRANS(L'p', 0xb4, 0x1e55, 0x00) }, |
| 443 | + { DEADTRANS(L'r', 0xb4, 0x155, 0x00) }, |
| 444 | + { DEADTRANS(L's', 0xb4, 0x15b, 0x00) }, |
421 | 445 | { DEADTRANS(L'u', 0xb4, 0xfa, 0x00) }, |
| 446 | + { DEADTRANS(L'w', 0xb4, 0x1e83, 0x00) }, |
422 | 447 | { DEADTRANS(L'y', 0xb4, 0xfd, 0x00) }, |
| 448 | + { DEADTRANS(L'z', 0xb4, 0x17a, 0x00) }, |
| 449 | + { DEADTRANS(L'ü', 0xb4, 0x1d8, 0x00) }, |
423 | 450 | { DEADTRANS(L'A', 0xb4, 0xc1, 0x00) }, |
| 451 | + { DEADTRANS(L'C', 0xb4, 0x106, 0x00) }, |
424 | 452 | { DEADTRANS(L'E', 0xb4, 0xc9, 0x00) }, |
| 453 | + { DEADTRANS(L'G', 0xb4, 0x1f4, 0x00) }, |
425 | 454 | { DEADTRANS(L'I', 0xb4, 0xcd, 0x00) }, |
| 455 | + { DEADTRANS(L'K', 0xb4, 0x1e30, 0x00) }, |
| 456 | + { DEADTRANS(L'L', 0xb4, 0x139, 0x00) }, |
| 457 | + { DEADTRANS(L'M', 0xb4, 0x1e3e, 0x00) }, |
| 458 | + { DEADTRANS(L'N', 0xb4, 0x143, 0x00) }, |
426 | 459 | { DEADTRANS(L'O', 0xb4, 0xd3, 0x00) }, |
| 460 | + { DEADTRANS(L'P', 0xb4, 0x1e54, 0x00) }, |
| 461 | + { DEADTRANS(L'R', 0xb4, 0x154, 0x00) }, |
| 462 | + { DEADTRANS(L'S', 0xb4, 0x15a, 0x00) }, |
427 | 463 | { DEADTRANS(L'U', 0xb4, 0xda, 0x00) }, |
| 464 | + { DEADTRANS(L'W', 0xb4, 0x1e82, 0x00) }, |
428 | 465 | { DEADTRANS(L'Y', 0xb4, 0xdd, 0x00) }, |
| 466 | + { DEADTRANS(L'Z', 0xb4, 0x179, 0x00) }, |
| 467 | + { DEADTRANS(L'Ü', 0xb4, 0x1d7, 0x00) }, |
429 | 468 | { DEADTRANS(L' ', 0xb4, 0xb4, 0x00) }, |
| 469 | + { DEADTRANS(0xb4, 0xb4, 0x301, 0x00) }, |
430 | 470 | { DEADTRANS(L'a', L'`', 0xe0, 0x00) }, |
431 | 471 | { DEADTRANS(L'e', L'`', 0xe8, 0x00) }, |
432 | 472 | { DEADTRANS(L'i', L'`', 0xec, 0x00) }, |
| 473 | + { DEADTRANS(L'n', L'`', 0x1f9, 0x00) }, |
433 | 474 | { DEADTRANS(L'o', L'`', 0xf2, 0x00) }, |
434 | 475 | { DEADTRANS(L'u', L'`', 0xf9, 0x00) }, |
| 476 | + { DEADTRANS(L'w', L'`', 0x1e81, 0x00) }, |
| 477 | + { DEADTRANS(L'y', L'`', 0x1ef3, 0x00) }, |
| 478 | + { DEADTRANS(L'ü', L'`', 0x1dc, 0x00) }, |
435 | 479 | { DEADTRANS(L'A', L'`', 0xc0, 0x00) }, |
436 | 480 | { DEADTRANS(L'E', L'`', 0xc8, 0x00) }, |
437 | 481 | { DEADTRANS(L'I', L'`', 0xcc, 0x00) }, |
| 482 | + { DEADTRANS(L'N', L'`', 0x1f8, 0x00) }, |
438 | 483 | { DEADTRANS(L'O', L'`', 0xd2, 0x00) }, |
439 | 484 | { DEADTRANS(L'U', L'`', 0xd9, 0x00) }, |
| 485 | + { DEADTRANS(L'W', L'`', 0x1e80, 0x00) }, |
| 486 | + { DEADTRANS(L'Y', L'`', 0x1ef2, 0x00) }, |
| 487 | + { DEADTRANS(L'Ü', L'`', 0x1db, 0x00) }, |
440 | 488 | { DEADTRANS(L' ', L'`', L'`', 0x00) }, |
| 489 | + { DEADTRANS(L'`', L'`', 0x300, 0x00) }, |
441 | 490 | { 0, 0 } |
442 | 491 | }; |
443 | 492 |
|
|
0 commit comments