xref: /netbsd-src/sys/arch/mac68k/dev/akbdmap.h (revision ce099b40997c43048fb78bd578195f81d2456523)
1*ce099b40Smartin /*	$NetBSD: akbdmap.h,v 1.10 2008/04/28 20:23:27 martin Exp $	*/
28a007407Sscottr 
38a007407Sscottr /*-
48a007407Sscottr  * Copyright (c) 1997 The NetBSD Foundation, Inc.
58a007407Sscottr  * All rights reserved.
68a007407Sscottr  *
78a007407Sscottr  * This code is derived from software contributed to The NetBSD Foundation
88a007407Sscottr  * by Juergen Hannken-Illjes.
98a007407Sscottr  *
108a007407Sscottr  * Redistribution and use in source and binary forms, with or without
118a007407Sscottr  * modification, are permitted provided that the following conditions
128a007407Sscottr  * are met:
138a007407Sscottr  * 1. Redistributions of source code must retain the above copyright
148a007407Sscottr  *    notice, this list of conditions and the following disclaimer.
158a007407Sscottr  * 2. Redistributions in binary form must reproduce the above copyright
168a007407Sscottr  *    notice, this list of conditions and the following disclaimer in the
178a007407Sscottr  *    documentation and/or other materials provided with the distribution.
188a007407Sscottr  *
198a007407Sscottr  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
208a007407Sscottr  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
218a007407Sscottr  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
228a007407Sscottr  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
238a007407Sscottr  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
248a007407Sscottr  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
258a007407Sscottr  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
268a007407Sscottr  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
278a007407Sscottr  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
288a007407Sscottr  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
298a007407Sscottr  * POSSIBILITY OF SUCH DAMAGE.
308a007407Sscottr  */
318a007407Sscottr 
328a007407Sscottr /* XXX This list is incomplete. */
338a007407Sscottr 
348a007407Sscottr #define KC(n) KS_KEYCODE(n)
358a007407Sscottr 
368a007407Sscottr static const keysym_t akbd_keydesc_us[] = {
378a007407Sscottr /*  pos      command		normal		shifted */
388a007407Sscottr     KC(0),			KS_a,
398a007407Sscottr     KC(1),			KS_s,
408a007407Sscottr     KC(2),			KS_d,
418a007407Sscottr     KC(3),			KS_f,
428a007407Sscottr     KC(4),			KS_h,
438a007407Sscottr     KC(5),			KS_g,
448a007407Sscottr     KC(6),			KS_z,
458a007407Sscottr     KC(7),			KS_x,
468a007407Sscottr     KC(8),			KS_c,
478a007407Sscottr     KC(9),			KS_v,
4865d4544eSmacallan     KC(10),			KS_paragraph,
498a007407Sscottr     KC(11),			KS_b,
508a007407Sscottr     KC(12),			KS_q,
518a007407Sscottr     KC(13),			KS_w,
528a007407Sscottr     KC(14),			KS_e,
538a007407Sscottr     KC(15),			KS_r,
548a007407Sscottr     KC(16),			KS_y,
558a007407Sscottr     KC(17),			KS_t,
568a007407Sscottr     KC(18),			KS_1,		KS_exclam,
578a007407Sscottr     KC(19),			KS_2,		KS_at,
588a007407Sscottr     KC(20),			KS_3,		KS_numbersign,
598a007407Sscottr     KC(21),			KS_4,		KS_dollar,
608a007407Sscottr     KC(22),			KS_6,		KS_asciicircum,
618a007407Sscottr     KC(23),			KS_5,		KS_percent,
628a007407Sscottr     KC(24),			KS_equal,	KS_plus,
638a007407Sscottr     KC(25),			KS_9,		KS_parenleft,
648a007407Sscottr     KC(26),			KS_7,		KS_ampersand,
658a007407Sscottr     KC(27),			KS_minus,	KS_underscore,
668a007407Sscottr     KC(28),			KS_8,		KS_asterisk,
678a007407Sscottr     KC(29),			KS_0,		KS_parenright,
688a007407Sscottr     KC(30),			KS_bracketright, KS_braceright,
698a007407Sscottr     KC(31),			KS_o,
708a007407Sscottr     KC(32),			KS_u,
718a007407Sscottr     KC(33),			KS_bracketleft,	KS_braceleft,
728a007407Sscottr     KC(34),			KS_i,
738a007407Sscottr     KC(35),			KS_p,
748a007407Sscottr     KC(36),			KS_Return,
758a007407Sscottr     KC(37),			KS_l,
768a007407Sscottr     KC(38),			KS_j,
778a007407Sscottr     KC(39),			KS_apostrophe,	KS_quotedbl,
788a007407Sscottr     KC(40),			KS_k,
798a007407Sscottr     KC(41),			KS_semicolon,	KS_colon,
808a007407Sscottr     KC(42),			KS_backslash,	KS_bar,
818a007407Sscottr     KC(43),			KS_comma,	KS_less,
828a007407Sscottr     KC(44),			KS_slash,	KS_question,
838a007407Sscottr     KC(45),			KS_n,
848a007407Sscottr     KC(46),			KS_m,
858a007407Sscottr     KC(47),			KS_period,	KS_greater,
868a007407Sscottr     KC(48),			KS_Tab,
878a007407Sscottr     KC(49),			KS_space,
888a007407Sscottr     KC(50),			KS_grave,	KS_asciitilde,
898a007407Sscottr     KC(51),			KS_Delete,
90b09955adSmanu     KC(52),			KS_KP_Enter,    /* Pretend this is alt-R ? */
918a007407Sscottr     KC(53),			KS_Escape,
928a007407Sscottr     KC(54),			KS_Control_L,
938a007407Sscottr     KC(55),  KS_Cmd,				/* Command */
948a007407Sscottr     KC(56),			KS_Shift_L,
958a007407Sscottr     KC(57),			KS_Caps_Lock,
968a007407Sscottr     KC(58),  KS_Cmd1,				/* Option */
978a007407Sscottr     KC(59),			KS_Left,
988a007407Sscottr     KC(60),			KS_Right,
998a007407Sscottr     KC(61),			KS_Down,
1008a007407Sscottr     KC(62),			KS_Up,
1018a007407Sscottr 
1028a007407Sscottr     KC(65),			KS_KP_Decimal,
1038a007407Sscottr     KC(67),			KS_KP_Multiply,
1048a007407Sscottr     KC(69),			KS_KP_Add,
105aee83134Sjmmv     KC(71),			KS_Num_Lock,
1068a007407Sscottr     KC(75),			KS_KP_Divide,
1078a007407Sscottr     KC(76),			KS_KP_Enter,
1088a007407Sscottr     KC(78),			KS_KP_Subtract,
1098a007407Sscottr 
1108a007407Sscottr     KC(81),			KS_KP_Equal,
111aee83134Sjmmv     KC(82),			KS_KP_Insert,	KS_KP_0,
112aee83134Sjmmv     KC(83),			KS_KP_End,	KS_KP_1,
113aee83134Sjmmv     KC(84),			KS_KP_Down,	KS_KP_2,
114aee83134Sjmmv     KC(85),			KS_KP_Next,	KS_KP_3,
115aee83134Sjmmv     KC(86),			KS_KP_Left,	KS_KP_4,
116aee83134Sjmmv     KC(87),			KS_KP_Begin,	KS_KP_5,
117aee83134Sjmmv     KC(88),			KS_KP_Right,	KS_KP_6,
118aee83134Sjmmv     KC(89),			KS_KP_Home,	KS_KP_7,
1198a007407Sscottr 
120aee83134Sjmmv     KC(91),			KS_KP_Up,	KS_KP_8,
121aee83134Sjmmv     KC(92),			KS_KP_Prior,	KS_KP_9,
1228a007407Sscottr 
123aee83134Sjmmv     KC(95),			KS_KP_Delete,	KS_KP_Decimal,
12465d4544eSmacallan     KC(96),	KS_Cmd_Screen4,		KS_f5,
12565d4544eSmacallan     KC(97),	KS_Cmd_Screen5,		KS_f6,
12665d4544eSmacallan     KC(98),	KS_Cmd_Screen6,		KS_f7,
12765d4544eSmacallan     KC(99),	KS_Cmd_Screen2,		KS_f3,
12865d4544eSmacallan     KC(100),KS_Cmd_Screen7,		KS_f8,
129b09955adSmanu 
13065d4544eSmacallan     KC(101),KS_Cmd_Screen8,		KS_f9,
131b09955adSmanu 
132b09955adSmanu     KC(103),			KS_f11,
1338a007407Sscottr 
134aee83134Sjmmv     KC(105),			KS_Print_Screen,
1358a007407Sscottr     KC(106),			KS_KP_Enter,
136aee83134Sjmmv     KC(107),			KS_Hold_Screen,
1378a007407Sscottr 
13865d4544eSmacallan     KC(109),KS_Cmd_Screen9,	KS_f10,
139b09955adSmanu 
140b09955adSmanu     KC(111),			KS_f12,
141b09955adSmanu 
142aee83134Sjmmv     KC(113),			KS_Pause,
143aee83134Sjmmv     KC(114),			KS_Insert,
144b09955adSmanu     KC(115),			KS_Home,
145b09955adSmanu     KC(116),			KS_Prior,
14665d4544eSmacallan     KC(117),			KS_Delete,	/* BackSpace */
14765d4544eSmacallan     KC(118),KS_Cmd_Screen3,	KS_f4,
148b09955adSmanu     KC(119),			KS_End,
14965d4544eSmacallan     KC(120),KS_Cmd_Screen1,	KS_f2,
150b09955adSmanu     KC(121),			KS_Next,
15165d4544eSmacallan     KC(122),KS_Cmd_Screen0,	KS_f1,
152b09955adSmanu 
1538a007407Sscottr     KC(127),  KS_Cmd_Debugger,
1548a007407Sscottr };
1558a007407Sscottr 
1564b074775Smanu static const keysym_t akbd_keydesc_fr[] = {
1574b074775Smanu /*  pos		normal		shifted		altgr		shift-altgr */
1584b074775Smanu     KC(0),	KS_q,
159b09955adSmanu     KC(1),	KS_s,		KS_S,		KS_Ograve,
160b09955adSmanu     KC(4),	KS_h,		KS_H,		KS_Igrave,	KS_Icircumflex,
161b09955adSmanu     KC(6),	KS_w,		KS_W,		KS_less,	KS_greater,
162b09955adSmanu     KC(8),	KS_c,		KS_C,		KS_copyright,	KS_cent,
1634b074775Smanu     KC(10),	KS_at,		KS_numbersign,
164b09955adSmanu     KC(11),	KS_b,		KS_B,		KS_ssharp,
165b09955adSmanu     KC(12),	KS_a,		KS_A,		KS_ae,		KS_AE,
166b09955adSmanu     KC(13),	KS_z,		KS_Z,		KS_Acircumflex,	KS_Aring,
167b09955adSmanu     KC(14),	KS_e,		KS_E,		KS_ecircumflex,	KS_Ecircumflex,
168b09955adSmanu     KC(15),	KS_r,		KS_R,		KS_registered,	/* Euro */
169b09955adSmanu     KC(16),	KS_y,		KS_Y,		KS_Uacute,
170b09955adSmanu     KC(18),	KS_ampersand,	KS_1,		KS_voidSymbol,	KS_dead_acute,
171b09955adSmanu     KC(19),	KS_eacute,	KS_2,		KS_ediaeresis,
172b09955adSmanu     KC(20),	KS_quotedbl,	KS_3,
173b09955adSmanu     KC(21),	KS_apostrophe,	KS_4,		KS_braceleft,	KS_bracketleft,
174b09955adSmanu     KC(22),	KS_section,	KS_6,		KS_paragraph,
175b09955adSmanu     KC(23),	KS_parenleft,	KS_5,		KS_braceleft,	KS_bracketleft,
1764b074775Smanu     KC(24),	KS_minus,	KS_underscore,	KS_braceright,
177b09955adSmanu     KC(25),	KS_ccedilla,	KS_9,		KS_Ccedilla,	KS_Agrave,
178b09955adSmanu     KC(26),	KS_egrave,	KS_7,		KS_guillemotleft,KS_guillemotright,
179b09955adSmanu     KC(27),	KS_parenright,	KS_degree,	KS_braceright,	KS_bracketright,
180b09955adSmanu     KC(28),	KS_exclam,	KS_8,		KS_exclamdown,	KS_Ucircumflex,
181b09955adSmanu     KC(29),	KS_agrave,	KS_0,		KS_oslash,
182b09955adSmanu     KC(30),	KS_dollar,	KS_asterisk,	KS_comma,	KS_yen,
183b09955adSmanu     KC(33),	KS_dead_circumflex, KS_dead_diaeresis,KS_ocircumflex,KS_Ocircumflex,
184b09955adSmanu     KC(34),	KS_i,		KS_I,		KS_icircumflex, KS_Icircumflex,
185b09955adSmanu     KC(37),	KS_l,		KS_L,		KS_notsign,	KS_bar,
186b09955adSmanu     KC(38),	KS_j,		KS_J,		KS_Idiaeresis,	KS_Igrave,
187b09955adSmanu     KC(39),	KS_ugrave,	KS_percent,	KS_Ugrave,
188b09955adSmanu     KC(40),	KS_k,		KS_K,		KS_Egrave,	KS_Ediaeresis,
189b09955adSmanu     KC(41),	KS_m,		KS_M,		KS_mu,		KS_Ograve,
190b09955adSmanu     KC(42),	KS_dead_grave,	KS_sterling,	KS_at,		KS_numbersign,
1914b074775Smanu     KC(43),	KS_semicolon,	KS_period,
192b09955adSmanu     KC(44),	KS_equal,	KS_plus,	KS_voidSymbol,	KS_plusminus,
193b09955adSmanu     KC(45),	KS_n,		KS_N,		KS_dead_tilde,
194b09955adSmanu     KC(46),	KS_comma,	KS_question,	KS_voidSymbol,	KS_questiondown,
195b09955adSmanu     KC(47),	KS_colon,	KS_slash,	KS_division,	KS_backslash,
1964b074775Smanu     KC(50),	KS_less,	KS_greater,
1974b074775Smanu     KC(52),	KS_Alt_R,
1984b074775Smanu     KC(55),	KS_Meta_L,				/* Command */
199b09955adSmanu     KC(58),	KS_Mode_switch,	KS_Multi_key,		/* Option */
2004b074775Smanu };
2014b074775Smanu 
202b09955adSmanu static const keysym_t akbd_keydesc_fr_nodead[] = {
203b09955adSmanu     KC(18),	KS_ampersand,	KS_1,		KS_voidSymbol,	KS_acute,
204b09955adSmanu     KC(33),	KS_asciicircum,	KS_diaeresis,	KS_ocircumflex,	KS_Ocircumflex,
205b09955adSmanu     KC(42),	KS_grave,	KS_sterling,	KS_at,		KS_numbersign,
206b09955adSmanu     KC(45),	KS_n,		KS_N,		KS_asciitilde,
207b09955adSmanu };
208b09955adSmanu 
2098a007407Sscottr static const keysym_t akbd_keydesc_jp[] = {
2108a007407Sscottr /*  pos      command		normal		shifted */
211b09955adSmanu     KC(19),			KS_2,		KS_quotedbl,
212b09955adSmanu     KC(22),			KS_6,		KS_ampersand,
213b09955adSmanu     KC(24),			KS_asciicircum,	KS_asciitilde,
214b09955adSmanu     KC(25),			KS_9,		KS_parenright,
215b09955adSmanu     KC(26),			KS_7,		KS_apostrophe,
216b09955adSmanu     KC(27),			KS_minus,	KS_equal,
217b09955adSmanu     KC(28),			KS_8,		KS_parenleft,
218b09955adSmanu     KC(29),			KS_0,
219b09955adSmanu     KC(30),			KS_bracketleft, KS_braceleft,
220b09955adSmanu     KC(33),			KS_at,		KS_grave,
221b09955adSmanu     KC(39),			KS_colon,	KS_asterisk,
2228a007407Sscottr 
223b09955adSmanu     KC(41),			KS_semicolon,	KS_plus,
224b09955adSmanu     KC(42),			KS_bracketright,KS_braceright,
225b09955adSmanu     KC(93),			KS_backslash,	KS_bar,
226b09955adSmanu     KC(94),			KS_underscore,
227b09955adSmanu };
228b09955adSmanu 
229b09955adSmanu static const keysym_t akbd_keydesc_uk[] = {
230b09955adSmanu /*  pos		normal		shifted		altgr		shift-altgr */
231b09955adSmanu     KC(10),	KS_section,	KS_plusminus,
232b09955adSmanu     KC(20),	KS_3,		KS_sterling,	KS_numbersign,
233b09955adSmanu     KC(52),	KS_KP_Enter,
234b09955adSmanu     KC(58),	KS_Mode_switch,	KS_Multi_key,		/* Option */
235b09955adSmanu };
236b09955adSmanu 
237b09955adSmanu static const keysym_t akbd_keydesc_sv[] = {
238b09955adSmanu /*  pos		normal		shifted		altgr		shift-altgr */
239b09955adSmanu     KC(10),	KS_section,	KS_degree,
240b09955adSmanu     KC(19),	KS_2,		KS_quotedbl,	KS_at,
241b09955adSmanu     KC(21),	KS_4,		KS_dollar,
242b09955adSmanu     KC(22),	KS_6,		KS_ampersand,
243b09955adSmanu     KC(24),	KS_dead_acute,	KS_dead_grave,
244b09955adSmanu     KC(25),	KS_9,		KS_parenright,	KS_bracketright,
245b09955adSmanu     KC(26),	KS_7,		KS_slash,	KS_braceleft,
246b09955adSmanu     KC(27),	KS_plus,	KS_question,	KS_backslash,
247b09955adSmanu     KC(28),	KS_8,		KS_parenleft,	KS_bracketleft,
248b09955adSmanu     KC(29),	KS_0,		KS_equal,	KS_braceright,
249b09955adSmanu     KC(30),	KS_dead_diaeresis,KS_dead_circumflex,KS_dead_tilde,
250b09955adSmanu     KC(33),	KS_aring,
251b09955adSmanu     KC(39),	KS_adiaeresis,
252b09955adSmanu     KC(41),	KS_odiaeresis,
253b09955adSmanu     KC(42),	KS_apostrophe,	KS_asterisk,
254b09955adSmanu     KC(43),	KS_comma,	KS_semicolon,
255b09955adSmanu     KC(44),	KS_minus,	KS_underscore,
256b09955adSmanu     KC(47),	KS_period,	KS_colon,
257b09955adSmanu     KC(50),	KS_less,	KS_greater,	KS_bar,
2587c1ffafaSmbw     KC(58),	KS_Mode_switch,KS_Multi_key,
259b09955adSmanu };
260b09955adSmanu 
261b09955adSmanu static const keysym_t akbd_keydesc_sv_nodead[] = {
262b09955adSmanu /*  pos		normal		shifted		altgr		shift-altgr */
263b09955adSmanu     KC(24),	KS_apostrophe,	KS_grave,
264b09955adSmanu     KC(30),	KS_diaeresis,	KS_asciicircum,	KS_asciitilde,
265b09955adSmanu };
266b09955adSmanu 
267b09955adSmanu static const keysym_t akbd_keydesc_de[] = {
268b09955adSmanu /*  pos		normal		shifted		altgr		shift-altgr */
269b09955adSmanu     KC(0),	KS_a,		KS_A,		KS_aring,	KS_Aring,
270b09955adSmanu     KC(1),	KS_s,		KS_S,		KS_voidSymbol,	KS_Iacute,
271b09955adSmanu     KC(3),	KS_f,		KS_F,		KS_voidSymbol,	KS_Idiaeresis,
272b09955adSmanu     KC(4),	KS_h,		KS_H,		KS_ordfeminine,	KS_Oacute,
273b09955adSmanu     KC(5),	KS_g,		KS_G,		KS_copyright,	KS_Igrave,
274b09955adSmanu     KC(6),	KS_y,		KS_Y,		KS_yen,
275b09955adSmanu     KC(7),	KS_x,		KS_X,		KS_voidSymbol,	KS_Ugrave,
276b09955adSmanu     KC(8),	KS_c,		KS_C,		KS_ccedilla,	KS_Ccedilla,
277b09955adSmanu     KC(10),	KS_dead_circumflex,KS_degree,
278b09955adSmanu     KC(12),	KS_q,		KS_Q,		KS_guillemotleft,KS_guillemotright,
279b09955adSmanu     KC(15),	KS_r,		KS_R,		KS_registered,	KS_cedilla,
280b09955adSmanu     KC(16),	KS_z,		KS_Z,
281b09955adSmanu     KC(18),	KS_1,		KS_exclam,	KS_exclamdown,	KS_notsign,
282b09955adSmanu     KC(19),	KS_2,		KS_quotedbl,
283b09955adSmanu     KC(20),	KS_3,		KS_section,	KS_paragraph,	KS_numbersign,
284b09955adSmanu     KC(21),	KS_4,		KS_dollar,	KS_cent,	KS_sterling,
285b09955adSmanu     KC(22),	KS_6,		KS_ampersand,	KS_bracketright,KS_dead_circumflex,
286b09955adSmanu     KC(23),	KS_5,		KS_percent,	KS_bracketleft,
287b09955adSmanu     KC(24),	KS_dead_acute,	KS_dead_grave,	KS_apostrophe,
288b09955adSmanu     KC(25),	KS_9,		KS_parenright,	KS_braceright,	KS_periodcentered,
289b09955adSmanu     KC(26),	KS_7,		KS_slash,	KS_bar,		KS_backslash,
290b09955adSmanu     KC(27),	KS_ssharp,	KS_question,	KS_questiondown,
291b09955adSmanu     KC(28),	KS_8,		KS_parenleft,	KS_braceleft,
292b09955adSmanu     KC(29),	KS_0,		KS_equal,	KS_voidSymbol,	KS_macron,
293b09955adSmanu     KC(30),	KS_plus,	KS_asterisk,	KS_plusminus,
294b09955adSmanu     KC(31),	KS_o,		KS_O,		KS_oslash,	KS_Ooblique,
295b09955adSmanu     KC(32),	KS_u,		KS_U,		KS_dead_diaeresis,KS_Aacute,
296b09955adSmanu     KC(33),	KS_udiaeresis,	KS_Udiaeresis,	KS_voidSymbol,	KS_degree,
297b09955adSmanu     KC(34),	KS_i,		KS_I,		KS_voidSymbol,	KS_Ucircumflex,
298b09955adSmanu     KC(37),	KS_l,		KS_L,		KS_at,
299b09955adSmanu     KC(38),	KS_j,		KS_J,		KS_masculine,
300b09955adSmanu     KC(39),	KS_adiaeresis,	KS_Adiaeresis,	KS_ae,		KS_AE,
301b09955adSmanu     KC(41),	KS_odiaeresis,	KS_Odiaeresis,
302b09955adSmanu     KC(42),	KS_numbersign,	KS_apostrophe,
303b09955adSmanu     KC(43),	KS_comma,	KS_semicolon,
304b09955adSmanu     KC(44),	KS_minus,	KS_underscore,
305b09955adSmanu     KC(45),	KS_n,		KS_N,		KS_dead_tilde,
306b09955adSmanu     KC(46),	KS_m,		KS_M,		KS_mu,
307b09955adSmanu     KC(47),	KS_period,	KS_colon,
308b09955adSmanu     KC(50),	KS_less,	KS_greater,
309b09955adSmanu     KC(52),	KS_Multi_key,
310b09955adSmanu     KC(58),	KS_Mode_switch,
311b09955adSmanu };
312b09955adSmanu 
313b09955adSmanu static const keysym_t akbd_keydesc_de_nodead[] = {
314b09955adSmanu /*  pos		normal		shifted		altgr		shift-altgr */
315b09955adSmanu     KC(10),	KS_asciicircum, KS_degree,
316b09955adSmanu     KC(22),	KS_6,		KS_ampersand,	KS_bracketright,KS_asciicircum,
317b09955adSmanu     KC(24),	KS_acute,	KS_grave,	KS_apostrophe,
318b09955adSmanu     KC(32),	KS_u,		KS_U,		KS_diaeresis,	KS_Aacute,
319b09955adSmanu     KC(45),	KS_n,		KS_N,		KS_asciitilde,
320b09955adSmanu };
321b09955adSmanu 
322b09955adSmanu static const keysym_t akbd_keydesc_sf[] = {
323b09955adSmanu /*  pos		normal		shifted		altgr		shift-altgr */
324b09955adSmanu     KC(6),	KS_y,
325b09955adSmanu     KC(10),	KS_paragraph,	KS_degree,
326b09955adSmanu     KC(16),	KS_z,
327b09955adSmanu     KC(18),	KS_plus,	KS_1,
328b09955adSmanu     KC(19),	KS_quotedbl,	KS_2,
329b09955adSmanu     KC(20),	KS_asterisk,	KS_3,
330b09955adSmanu     KC(21),	KS_ccedilla,	KS_4,		KS_Ccedilla,
331b09955adSmanu     KC(22),	KS_ampersand,	KS_6,
332b09955adSmanu     KC(23),	KS_percent,	KS_5,
333b09955adSmanu     KC(24),	KS_dead_circumflex,KS_grave,
334b09955adSmanu     KC(25),	KS_parenright,	KS_9,
335b09955adSmanu     KC(26),	KS_slash,	KS_7,
336b09955adSmanu     KC(27),	KS_apostrophe,	KS_question,
337b09955adSmanu     KC(28),	KS_parenleft,	KS_8,
338b09955adSmanu     KC(29),	KS_equal,	KS_0,
339b09955adSmanu     KC(30),	KS_dead_diaeresis,KS_exclam,
340b09955adSmanu     KC(33),	KS_egrave,	KS_udiaeresis,
341b09955adSmanu     KC(39),	KS_agrave,	KS_adiaeresis,
342b09955adSmanu     KC(41),	KS_eacute,	KS_odiaeresis,
343b09955adSmanu     KC(42),	KS_dollar,	KS_sterling,
344b09955adSmanu     KC(43),	KS_period,	KS_colon,
345b09955adSmanu     KC(46),	KS_comma,	KS_semicolon,
346b09955adSmanu     KC(47),	KS_minus,	KS_underscore,
347b09955adSmanu     KC(50),	KS_less,	KS_greater,
348b09955adSmanu };
349aee83134Sjmmv 
350aee83134Sjmmv static const keysym_t akbd_keydesc_es[] = {
351aee83134Sjmmv /*  pos		normal		shifted		altgr		shift-altgr */
352aee83134Sjmmv     KC(10),	KS_degree,	KS_ordfeminine,	KS_backslash,
353aee83134Sjmmv     KC(18),	KS_1,		KS_exclam,	KS_bar,
354aee83134Sjmmv     KC(19),	KS_2,		KS_quotedbl,	KS_at,
355aee83134Sjmmv     KC(20),	KS_3,		KS_periodcentered, KS_numbersign,
356aee83134Sjmmv     KC(21),	KS_4,		KS_dollar,	KS_asciitilde,
357aee83134Sjmmv     KC(22),	KS_6,		KS_ampersand,	KS_notsign,
358aee83134Sjmmv     KC(23),	KS_5,		KS_percent,
359aee83134Sjmmv     KC(24),	KS_exclamdown,	KS_questiondown,
360aee83134Sjmmv     KC(25),	KS_9,		KS_parenright,
361aee83134Sjmmv     KC(26),	KS_7,		KS_slash,
362aee83134Sjmmv     KC(27),	KS_apostrophe,	KS_question,
363aee83134Sjmmv     KC(28),	KS_8,		KS_parenleft,
364aee83134Sjmmv     KC(29),	KS_0,		KS_equal,
365aee83134Sjmmv     KC(30),	KS_plus,	KS_asterisk,	KS_bracketright,
366aee83134Sjmmv     KC(33),	KS_dead_grave,	KS_dead_circumflex, KS_bracketleft,
367aee83134Sjmmv     KC(39),	KS_dead_acute,	KS_dead_diaeresis, KS_braceleft,
368aee83134Sjmmv     KC(41),	KS_ntilde,
369aee83134Sjmmv     KC(42),	KS_ccedilla,	KS_Ccedilla,	KS_braceright,
370aee83134Sjmmv     KC(43),	KS_comma,	KS_semicolon,
371aee83134Sjmmv     KC(44),	KS_minus,	KS_underscore,
372aee83134Sjmmv     KC(47),	KS_period,	KS_colon,
373aee83134Sjmmv     KC(50),	KS_less,	KS_greater,
374aee83134Sjmmv     KC(55),	KS_Alt_L,				/* Command */
375aee83134Sjmmv     KC(58),	KS_Mode_switch, KS_Multi_key,		/* Option */
376aee83134Sjmmv };
377aee83134Sjmmv 
3785dabfd30Sabs static const keysym_t akbd_keydesc_pt[] = {
3795dabfd30Sabs /*  pos         normal          shifted         altgr           shift-altgr */
3805dabfd30Sabs     KC(7),	KS_x,		KS_X,		KS_guillemotleft, KS_guillemotright,
3815dabfd30Sabs     KC(10),	KS_section,	KS_plusminus,
3825dabfd30Sabs     KC(19),	KS_2,		KS_quotedbl,	KS_at,
3835dabfd30Sabs     KC(20),	KS_3,		KS_numbersign,	KS_sterling,
3845dabfd30Sabs     KC(22),	KS_6,		KS_ampersand,
3855dabfd30Sabs     KC(24),	KS_plus,	KS_asterisk,
3865dabfd30Sabs     KC(25),     KS_9,		KS_parenright,	KS_bracketright, KS_braceright,
3875dabfd30Sabs     KC(26),	KS_7,		KS_slash,
3885dabfd30Sabs     KC(27),	KS_apostrophe,	KS_question,
3895dabfd30Sabs     KC(28),	KS_8,		KS_parenleft,	KS_bracketleft, KS_braceleft,
3905dabfd30Sabs     KC(29),	KS_0,		KS_equal,
3915dabfd30Sabs     KC(30),	KS_dead_acute,	KS_dead_grave,
3925dabfd30Sabs     KC(33), 	KS_masculine,	KS_ordfeminine,
3935dabfd30Sabs     KC(39),	KS_dead_tilde,	KS_dead_circumflex,
3945dabfd30Sabs     KC(41),	KS_ccedilla,	KS_Ccedilla,
3955dabfd30Sabs     KC(43),	KS_comma,	KS_semicolon,
3965dabfd30Sabs     KC(44),	KS_minus,	KS_underscore,
3975dabfd30Sabs     KC(47),	KS_period,	KS_colon,
3985dabfd30Sabs     KC(50),	KS_less,	KS_greater,
3995dabfd30Sabs     KC(58),	KS_Mode_switch,
4005dabfd30Sabs     KC(81),	KS_KP_Equal,
4015dabfd30Sabs };
4025dabfd30Sabs 
4038a007407Sscottr #define KBD_MAP(name, base, map) \
4048a007407Sscottr 			{ name, base, sizeof(map)/sizeof(keysym_t), map }
4058a007407Sscottr 
4068a007407Sscottr static const struct wscons_keydesc akbd_keydesctab[] = {
4078a007407Sscottr 	KBD_MAP(KB_US,			0,	akbd_keydesc_us),
4084b074775Smanu 	KBD_MAP(KB_FR,			KB_US,	akbd_keydesc_fr),
409b09955adSmanu 	KBD_MAP(KB_JP,			KB_US,	akbd_keydesc_jp),
410b09955adSmanu 	KBD_MAP(KB_FR | KB_NODEAD,	KB_FR,	akbd_keydesc_fr_nodead),
411b09955adSmanu 	KBD_MAP(KB_SF,			KB_US,  akbd_keydesc_sf),
412b09955adSmanu 	KBD_MAP(KB_SV,			KB_US,  akbd_keydesc_sv),
413b09955adSmanu 	KBD_MAP(KB_SV | KB_NODEAD,	KB_SV,  akbd_keydesc_sv_nodead),
414b09955adSmanu 	KBD_MAP(KB_DE,			KB_US,  akbd_keydesc_de),
415b09955adSmanu 	KBD_MAP(KB_DE | KB_NODEAD,	KB_DE,  akbd_keydesc_de_nodead),
416b09955adSmanu 	KBD_MAP(KB_UK,			KB_US,  akbd_keydesc_uk),
417aee83134Sjmmv 	KBD_MAP(KB_ES,			KB_US,	akbd_keydesc_es),
4185dabfd30Sabs 	KBD_MAP(KB_PT,                  KB_US,  akbd_keydesc_pt),
4198a007407Sscottr 	{0, 0, 0, 0}
4208a007407Sscottr };
4218a007407Sscottr 
4228a007407Sscottr #undef KBD_MAP
4238a007407Sscottr #undef KC
424b09955adSmanu 
425