@@ -30,7 +30,8 @@ TCHAR mapScanCodeToChar(unsigned level, char in)
30
30
31
31
switch (level ) {
32
32
case 1 :
33
- wcscpy (mappingTable + 16 , L"xvlcwkhgfqß" );
33
+ wcscpy (mappingTable + 2 , L"1234567890-`" );
34
+ wcscpy (mappingTable + 16 , L"xvlcwkhgfqß´" );
34
35
wcscpy (mappingTable + 30 , L"uiaeosnrtdy" );
35
36
wcscpy (mappingTable + 44 , L"üöäpzbm,.j" );
36
37
break ;
@@ -96,6 +97,24 @@ void sendChar(TCHAR key, KBDLLHOOKSTRUCT keyInfo)
96
97
keybd_event (VK_SHIFT , 0 , KEYEVENTF_KEYUP , 0 );
97
98
}
98
99
100
+ bool handleLayer1SpecialCases (KBDLLHOOKSTRUCT keyInfo )
101
+ {
102
+ switch (keyInfo .scanCode ) {
103
+ case 13 :
104
+ sendChar (L'`' , keyInfo );
105
+ keybd_event (VK_SPACE , 0 , 0 , 0 );
106
+ return true;
107
+ case 27 :
108
+ sendChar (L'´' , keyInfo );
109
+ keybd_event (VK_SPACE , 0 , 0 , 0 );
110
+ return true;
111
+ default :
112
+ return false;
113
+ }
114
+
115
+ }
116
+
117
+
99
118
bool handleLayer4SpecialCases (KBDLLHOOKSTRUCT keyInfo )
100
119
{
101
120
unsigned len = 103 ;
@@ -209,6 +228,8 @@ LRESULT CALLBACK keyevent(int code, WPARAM wparam, LPARAM lparam)
209
228
keybd_event (VK_RMENU , 0 , KEYEVENTF_KEYUP , 0 );
210
229
mod4Pressed = true;
211
230
return -1 ;
231
+ } else if (level == 1 && handleLayer1SpecialCases (keyInfo )) {
232
+ return -1 ;
212
233
} else if (level == 4 && handleLayer4SpecialCases (keyInfo )) {
213
234
return -1 ;
214
235
} else {
0 commit comments