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