Skip to content

Commit 127b363

Browse files
committed
[KBDGRE1] Improve the German Extended 1 keyboard layout
- This layout is Work In Progress - Add characters to the fist row including the acute and grave dead key characters
1 parent 88ec843 commit 127b363

File tree

1 file changed

+55
-6
lines changed

1 file changed

+55
-6
lines changed

dll/keyboard/kbdgre1/kbdgre1.c

Lines changed: 55 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,19 @@
77
* and http://win.tue.nl/~aeb/linux/kbd/scancodes-1.html
88
*/
99

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+
1023
#define WIN32_NO_STATUS
1124
#include <stdarg.h>
1225
#include <windef.h>
@@ -161,14 +174,9 @@ ROSDATA MODIFIERS modifier_bits = {
161174
};
162175

163176
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?
166177
/* Normal vs Shifted */
167178
/* The numbers */
168-
{ '1', CAPLOK, {'1', '!'} },
169179
/* Ctrl-2 generates NUL */
170-
{ '4', CAPLOK, {'4', '$'} },
171-
{ '5', CAPLOK, {'5', '%'} },
172180

173181
{ VK_OEM_6, 0, {WCH_DEAD, WCH_DEAD} },
174182
{ 0xff, 0, {0xb4, '`'} },
@@ -217,7 +225,14 @@ ROSDATA VK_TO_WCHARS2 key_to_chars_2mod[] = {
217225
ROSDATA VK_TO_WCHARS3 key_to_chars_3mod[] = {
218226
/* Normal, Shifted, Ctrl+Alt */
219227
/* 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} },
220232
{ '3', CAPLOK, {'3', 0xa7, 0xb3} },
233+
{ '4', CAPLOK, {'4', '$', 0x2014} },
234+
{ '5', CAPLOK, {'5', '%', 0xa1} },
235+
221236
{ '7', CAPLOK, {'7', '/', '{'} },
222237
{ '8', CAPLOK, {'8', '(', '['} },
223238
{ '9', CAPLOK, {'9', ')', ']'} },
@@ -247,7 +262,7 @@ ROSDATA VK_TO_WCHARS4 key_to_chars_4mod[] = {
247262
ROSDATA VK_TO_WCHARS5 key_to_chars_5mod[] = {
248263
/* Normal, Shifted, Ctrl, C-S-x */
249264
{ '2', CAPLOK, {'2', '\"', 0xb2, WCH_NONE, 0x00} },
250-
{ '6', CAPLOK, {'6', '&', WCH_NONE, WCH_NONE, 0x1e} },
265+
{ '6', CAPLOK, {'6', '&', 0xbf, WCH_NONE, 0x1e} },
251266
{ VK_OEM_MINUS, 0, {'-', '_', WCH_NONE, WCH_NONE, 0x1f} },
252267
{ 0, 0 }
253268
};
@@ -415,29 +430,63 @@ ROSDATA DEADKEY dead_key[] = {
415430
{ DEADTRANS(L'=', L'^', 0x2259, 0x00) },
416431
{ DEADTRANS(L'^', L'^', 0x0302, 0x00) },
417432
{ DEADTRANS(L'a', 0xb4, 0xe1, 0x00) },
433+
{ DEADTRANS(L'c', 0xb4, 0x107, 0x00) },
418434
{ DEADTRANS(L'e', 0xb4, 0xe9, 0x00) },
435+
{ DEADTRANS(L'g', 0xb4, 0x1f5, 0x00) },
419436
{ 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) },
420441
{ 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) },
421445
{ DEADTRANS(L'u', 0xb4, 0xfa, 0x00) },
446+
{ DEADTRANS(L'w', 0xb4, 0x1e83, 0x00) },
422447
{ DEADTRANS(L'y', 0xb4, 0xfd, 0x00) },
448+
{ DEADTRANS(L'z', 0xb4, 0x17a, 0x00) },
449+
{ DEADTRANS(L'ü', 0xb4, 0x1d8, 0x00) },
423450
{ DEADTRANS(L'A', 0xb4, 0xc1, 0x00) },
451+
{ DEADTRANS(L'C', 0xb4, 0x106, 0x00) },
424452
{ DEADTRANS(L'E', 0xb4, 0xc9, 0x00) },
453+
{ DEADTRANS(L'G', 0xb4, 0x1f4, 0x00) },
425454
{ 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) },
426459
{ 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) },
427463
{ DEADTRANS(L'U', 0xb4, 0xda, 0x00) },
464+
{ DEADTRANS(L'W', 0xb4, 0x1e82, 0x00) },
428465
{ DEADTRANS(L'Y', 0xb4, 0xdd, 0x00) },
466+
{ DEADTRANS(L'Z', 0xb4, 0x179, 0x00) },
467+
{ DEADTRANS(L'Ü', 0xb4, 0x1d7, 0x00) },
429468
{ DEADTRANS(L' ', 0xb4, 0xb4, 0x00) },
469+
{ DEADTRANS(0xb4, 0xb4, 0x301, 0x00) },
430470
{ DEADTRANS(L'a', L'`', 0xe0, 0x00) },
431471
{ DEADTRANS(L'e', L'`', 0xe8, 0x00) },
432472
{ DEADTRANS(L'i', L'`', 0xec, 0x00) },
473+
{ DEADTRANS(L'n', L'`', 0x1f9, 0x00) },
433474
{ DEADTRANS(L'o', L'`', 0xf2, 0x00) },
434475
{ 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) },
435479
{ DEADTRANS(L'A', L'`', 0xc0, 0x00) },
436480
{ DEADTRANS(L'E', L'`', 0xc8, 0x00) },
437481
{ DEADTRANS(L'I', L'`', 0xcc, 0x00) },
482+
{ DEADTRANS(L'N', L'`', 0x1f8, 0x00) },
438483
{ DEADTRANS(L'O', L'`', 0xd2, 0x00) },
439484
{ 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) },
440488
{ DEADTRANS(L' ', L'`', L'`', 0x00) },
489+
{ DEADTRANS(L'`', L'`', 0x300, 0x00) },
441490
{ 0, 0 }
442491
};
443492

0 commit comments

Comments
 (0)