@@ -34,14 +34,18 @@ impl KeyboardLayout for De105Key {
3434 }
3535 }
3636 KeyCode :: Key2 => {
37- if modifiers. is_shifted ( ) {
37+ if modifiers. is_altgr ( ) {
38+ DecodedKey :: Unicode ( '²' )
39+ } else if modifiers. is_shifted ( ) {
3840 DecodedKey :: Unicode ( '"' )
3941 } else {
4042 DecodedKey :: Unicode ( '2' )
4143 }
4244 }
4345 KeyCode :: Key3 => {
44- if modifiers. is_shifted ( ) {
46+ if modifiers. is_altgr ( ) {
47+ DecodedKey :: Unicode ( '³' )
48+ } else if modifiers. is_shifted ( ) {
4549 DecodedKey :: Unicode ( '§' )
4650 } else {
4751 DecodedKey :: Unicode ( '3' )
@@ -69,35 +73,45 @@ impl KeyboardLayout for De105Key {
6973 }
7074 }
7175 KeyCode :: Key7 => {
72- if modifiers. is_shifted ( ) {
76+ if modifiers. is_altgr ( ) {
77+ DecodedKey :: Unicode ( '{' )
78+ } else if modifiers. is_shifted ( ) {
7379 DecodedKey :: Unicode ( '/' )
7480 } else {
7581 DecodedKey :: Unicode ( '7' )
7682 }
7783 }
7884 KeyCode :: Key8 => {
79- if modifiers. is_shifted ( ) {
85+ if modifiers. is_altgr ( ) {
86+ DecodedKey :: Unicode ( '[' )
87+ } else if modifiers. is_shifted ( ) {
8088 DecodedKey :: Unicode ( '(' )
8189 } else {
8290 DecodedKey :: Unicode ( '8' )
8391 }
8492 }
8593 KeyCode :: Key9 => {
86- if modifiers. is_shifted ( ) {
94+ if modifiers. is_altgr ( ) {
95+ DecodedKey :: Unicode ( ']' )
96+ } else if modifiers. is_shifted ( ) {
8797 DecodedKey :: Unicode ( ')' )
8898 } else {
8999 DecodedKey :: Unicode ( '9' )
90100 }
91101 }
92102 KeyCode :: Key0 => {
93- if modifiers. is_shifted ( ) {
103+ if modifiers. is_altgr ( ) {
104+ DecodedKey :: Unicode ( '}' )
105+ } else if modifiers. is_shifted ( ) {
94106 DecodedKey :: Unicode ( '=' )
95107 } else {
96108 DecodedKey :: Unicode ( '0' )
97109 }
98110 }
99111 KeyCode :: OemMinus => {
100- if modifiers. is_shifted ( ) {
112+ if modifiers. is_altgr ( ) {
113+ DecodedKey :: Unicode ( '\\' )
114+ } else if modifiers. is_shifted ( ) {
101115 DecodedKey :: Unicode ( '?' )
102116 } else {
103117 DecodedKey :: Unicode ( 'ß' )
@@ -190,6 +204,17 @@ impl KeyboardLayout for De105Key {
190204 DecodedKey :: Unicode ( 'y' )
191205 }
192206 }
207+ KeyCode :: M => {
208+ if map_to_unicode && modifiers. is_ctrl ( ) {
209+ DecodedKey :: Unicode ( '\u{001A}' )
210+ } else if modifiers. is_altgr ( ) {
211+ DecodedKey :: Unicode ( 'µ' )
212+ } else if modifiers. is_caps ( ) {
213+ DecodedKey :: Unicode ( 'M' )
214+ } else {
215+ DecodedKey :: Unicode ( 'm' )
216+ }
217+ }
193218 KeyCode :: OemComma => {
194219 if modifiers. is_shifted ( ) {
195220 DecodedKey :: Unicode ( ';' )
0 commit comments