1 1.36 nia /* $NetBSD: wskbdmap_mfii.c,v 1.36 2025/05/24 16:50:54 nia Exp $ */ 2 1.1 bjh21 3 1.1 bjh21 /*- 4 1.1 bjh21 * Copyright (c) 1997 The NetBSD Foundation, Inc. 5 1.1 bjh21 * All rights reserved. 6 1.1 bjh21 * 7 1.1 bjh21 * This code is derived from software contributed to The NetBSD Foundation 8 1.1 bjh21 * by Juergen Hannken-Illjes. 9 1.1 bjh21 * 10 1.1 bjh21 * Redistribution and use in source and binary forms, with or without 11 1.1 bjh21 * modification, are permitted provided that the following conditions 12 1.1 bjh21 * are met: 13 1.1 bjh21 * 1. Redistributions of source code must retain the above copyright 14 1.1 bjh21 * notice, this list of conditions and the following disclaimer. 15 1.1 bjh21 * 2. Redistributions in binary form must reproduce the above copyright 16 1.1 bjh21 * notice, this list of conditions and the following disclaimer in the 17 1.1 bjh21 * documentation and/or other materials provided with the distribution. 18 1.1 bjh21 * 19 1.1 bjh21 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 20 1.1 bjh21 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 21 1.1 bjh21 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 22 1.1 bjh21 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 23 1.1 bjh21 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 24 1.1 bjh21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25 1.1 bjh21 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26 1.1 bjh21 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 27 1.1 bjh21 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28 1.1 bjh21 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29 1.1 bjh21 * POSSIBILITY OF SUCH DAMAGE. 30 1.1 bjh21 */ 31 1.1 bjh21 32 1.1 bjh21 #include <sys/cdefs.h> 33 1.36 nia __KERNEL_RCSID(0, "$NetBSD: wskbdmap_mfii.c,v 1.36 2025/05/24 16:50:54 nia Exp $"); 34 1.1 bjh21 35 1.13 christos #include "opt_wskbdmap.h" 36 1.1 bjh21 #include <sys/types.h> 37 1.1 bjh21 #include <dev/wscons/wsksymdef.h> 38 1.1 bjh21 #include <dev/wscons/wsksymvar.h> 39 1.1 bjh21 #include <dev/pckbport/wskbdmap_mfii.h> 40 1.1 bjh21 41 1.1 bjh21 #define KC(n) KS_KEYCODE(n) 42 1.1 bjh21 43 1.1 bjh21 static const keysym_t pckbd_keydesc_us[] = { 44 1.1 bjh21 /* pos command normal shifted */ 45 1.1 bjh21 KC(1), KS_Cmd_Debugger, KS_Escape, 46 1.1 bjh21 KC(2), KS_1, KS_exclam, 47 1.1 bjh21 KC(3), KS_2, KS_at, 48 1.1 bjh21 KC(4), KS_3, KS_numbersign, 49 1.1 bjh21 KC(5), KS_4, KS_dollar, 50 1.1 bjh21 KC(6), KS_5, KS_percent, 51 1.1 bjh21 KC(7), KS_6, KS_asciicircum, 52 1.1 bjh21 KC(8), KS_7, KS_ampersand, 53 1.1 bjh21 KC(9), KS_8, KS_asterisk, 54 1.1 bjh21 KC(10), KS_9, KS_parenleft, 55 1.1 bjh21 KC(11), KS_0, KS_parenright, 56 1.1 bjh21 KC(12), KS_minus, KS_underscore, 57 1.1 bjh21 KC(13), KS_equal, KS_plus, 58 1.1 bjh21 KC(14), KS_Cmd_ResetEmul, KS_Delete, 59 1.1 bjh21 KC(15), KS_Tab, 60 1.1 bjh21 KC(16), KS_q, 61 1.1 bjh21 KC(17), KS_w, 62 1.1 bjh21 KC(18), KS_e, 63 1.1 bjh21 KC(19), KS_r, 64 1.1 bjh21 KC(20), KS_t, 65 1.1 bjh21 KC(21), KS_y, 66 1.1 bjh21 KC(22), KS_u, 67 1.1 bjh21 KC(23), KS_i, 68 1.1 bjh21 KC(24), KS_o, 69 1.1 bjh21 KC(25), KS_p, 70 1.1 bjh21 KC(26), KS_bracketleft, KS_braceleft, 71 1.1 bjh21 KC(27), KS_bracketright, KS_braceright, 72 1.1 bjh21 KC(28), KS_Return, 73 1.1 bjh21 KC(29), KS_Cmd1, KS_Control_L, 74 1.1 bjh21 KC(30), KS_a, 75 1.1 bjh21 KC(31), KS_s, 76 1.1 bjh21 KC(32), KS_d, 77 1.1 bjh21 KC(33), KS_f, 78 1.1 bjh21 KC(34), KS_g, 79 1.1 bjh21 KC(35), KS_h, 80 1.1 bjh21 KC(36), KS_j, 81 1.1 bjh21 KC(37), KS_k, 82 1.1 bjh21 KC(38), KS_l, 83 1.1 bjh21 KC(39), KS_semicolon, KS_colon, 84 1.1 bjh21 KC(40), KS_apostrophe, KS_quotedbl, 85 1.1 bjh21 KC(41), KS_grave, KS_asciitilde, 86 1.1 bjh21 KC(42), KS_Shift_L, 87 1.1 bjh21 KC(43), KS_backslash, KS_bar, 88 1.1 bjh21 KC(44), KS_z, 89 1.1 bjh21 KC(45), KS_x, 90 1.1 bjh21 KC(46), KS_c, 91 1.1 bjh21 KC(47), KS_v, 92 1.1 bjh21 KC(48), KS_b, 93 1.1 bjh21 KC(49), KS_n, 94 1.1 bjh21 KC(50), KS_m, 95 1.1 bjh21 KC(51), KS_comma, KS_less, 96 1.1 bjh21 KC(52), KS_period, KS_greater, 97 1.1 bjh21 KC(53), KS_slash, KS_question, 98 1.1 bjh21 KC(54), KS_Shift_R, 99 1.1 bjh21 KC(55), KS_KP_Multiply, 100 1.1 bjh21 KC(56), KS_Cmd2, KS_Alt_L, 101 1.1 bjh21 KC(57), KS_space, 102 1.1 bjh21 KC(58), KS_Caps_Lock, 103 1.1 bjh21 KC(59), KS_Cmd_Screen0, KS_f1, 104 1.1 bjh21 KC(60), KS_Cmd_Screen1, KS_f2, 105 1.1 bjh21 KC(61), KS_Cmd_Screen2, KS_f3, 106 1.1 bjh21 KC(62), KS_Cmd_Screen3, KS_f4, 107 1.1 bjh21 KC(63), KS_Cmd_Screen4, KS_f5, 108 1.1 bjh21 KC(64), KS_Cmd_Screen5, KS_f6, 109 1.1 bjh21 KC(65), KS_Cmd_Screen6, KS_f7, 110 1.1 bjh21 KC(66), KS_Cmd_Screen7, KS_f8, 111 1.1 bjh21 KC(67), KS_Cmd_Screen8, KS_f9, 112 1.1 bjh21 KC(68), KS_Cmd_Screen9, KS_f10, 113 1.1 bjh21 KC(69), KS_Num_Lock, 114 1.1 bjh21 KC(70), KS_Hold_Screen, 115 1.1 bjh21 KC(71), KS_KP_Home, KS_KP_7, 116 1.1 bjh21 KC(72), KS_KP_Up, KS_KP_8, 117 1.4 mycroft KC(73), KS_Cmd_ScrollFastUp, KS_KP_Prior, KS_KP_9, 118 1.1 bjh21 KC(74), KS_KP_Subtract, 119 1.1 bjh21 KC(75), KS_KP_Left, KS_KP_4, 120 1.1 bjh21 KC(76), KS_KP_Begin, KS_KP_5, 121 1.1 bjh21 KC(77), KS_KP_Right, KS_KP_6, 122 1.1 bjh21 KC(78), KS_KP_Add, 123 1.1 bjh21 KC(79), KS_KP_End, KS_KP_1, 124 1.1 bjh21 KC(80), KS_KP_Down, KS_KP_2, 125 1.4 mycroft KC(81), KS_Cmd_ScrollFastDown, KS_KP_Next, KS_KP_3, 126 1.1 bjh21 KC(82), KS_KP_Insert, KS_KP_0, 127 1.1 bjh21 KC(83), KS_KP_Delete, KS_KP_Decimal, 128 1.1 bjh21 KC(87), KS_f11, 129 1.1 bjh21 KC(88), KS_f12, 130 1.1 bjh21 KC(127), KS_Pause, /* Break */ 131 1.23 jdc KC(136), KS_Help, 132 1.23 jdc KC(137), KS_Stop, 133 1.23 jdc KC(138), KS_Again, 134 1.23 jdc KC(139), KS_Props, 135 1.23 jdc KC(140), KS_Undo, 136 1.23 jdc KC(141), KS_Front, 137 1.23 jdc KC(142), KS_Copy, 138 1.23 jdc KC(143), KS_Open, 139 1.23 jdc KC(144), KS_Paste, 140 1.23 jdc KC(145), KS_Find, 141 1.23 jdc KC(146), KS_Cut, 142 1.1 bjh21 KC(156), KS_KP_Enter, 143 1.1 bjh21 KC(157), KS_Control_R, 144 1.12 jmcneill KC(160), KS_Cmd_VolumeToggle, 145 1.1 bjh21 KC(170), KS_Print_Screen, 146 1.12 jmcneill KC(174), KS_Cmd_VolumeDown, 147 1.12 jmcneill KC(176), KS_Cmd_VolumeUp, 148 1.1 bjh21 KC(181), KS_KP_Divide, 149 1.1 bjh21 KC(183), KS_Print_Screen, 150 1.1 bjh21 KC(184), KS_Alt_R, KS_Multi_key, 151 1.1 bjh21 #if 0 152 1.1 bjh21 KC(198), KS_Cmd_ResetClose, /* CTL-Break */ 153 1.1 bjh21 #endif 154 1.1 bjh21 KC(199), KS_Home, 155 1.1 bjh21 KC(200), KS_Up, 156 1.3 christos KC(201), KS_Cmd_ScrollFastUp, KS_Prior, 157 1.1 bjh21 KC(203), KS_Left, 158 1.1 bjh21 KC(205), KS_Right, 159 1.1 bjh21 KC(207), KS_End, 160 1.1 bjh21 KC(208), KS_Down, 161 1.3 christos KC(209), KS_Cmd_ScrollFastDown, KS_Next, 162 1.1 bjh21 KC(210), KS_Insert, 163 1.1 bjh21 KC(211), KS_Delete, 164 1.1 bjh21 KC(219), KS_Meta_L, 165 1.1 bjh21 KC(220), KS_Meta_R, 166 1.1 bjh21 KC(221), KS_Menu, 167 1.1 bjh21 }; 168 1.1 bjh21 169 1.5 hubertf #ifndef WSKBD_USONLY 170 1.11 christos static const keysym_t pckbd_keydesc_gr[] = { 171 1.11 christos /* pos normal shifted altgr shift-altgr */ 172 1.11 christos KC(14), KS_Delete, KS_BackSpace, 173 1.11 christos KC(16), KS_q, KS_Q, KS_semicolon, KS_colon, 174 1.11 christos KC(17), KS_w, KS_W, KS_gr_teliko_s, KS_gr_S, 175 1.11 christos KC(18), KS_e, KS_E, KS_gr_e, KS_gr_E, 176 1.11 christos KC(19), KS_r, KS_R, KS_gr_r, KS_gr_R, 177 1.11 christos KC(20), KS_t, KS_T, KS_gr_t, KS_gr_T, 178 1.11 christos KC(21), KS_y, KS_Y, KS_gr_y, KS_gr_Y, 179 1.11 christos KC(22), KS_u, KS_U, KS_gr_u, KS_gr_U, 180 1.11 christos KC(23), KS_i, KS_I, KS_gr_i, KS_gr_I, 181 1.11 christos KC(24), KS_o, KS_O, KS_gr_o, KS_gr_O, 182 1.11 christos KC(25), KS_p, KS_P, KS_gr_p, KS_gr_P, 183 1.11 christos KC(30), KS_a, KS_A, KS_gr_a, KS_gr_A, 184 1.11 christos KC(31), KS_s, KS_S, KS_gr_s, KS_gr_S, 185 1.11 christos KC(32), KS_d, KS_D, KS_gr_d, KS_gr_D, 186 1.11 christos KC(33), KS_f, KS_F, KS_gr_f, KS_gr_F, 187 1.11 christos KC(34), KS_g, KS_G, KS_gr_g, KS_gr_G, 188 1.11 christos KC(35), KS_h, KS_H, KS_gr_h, KS_gr_H, 189 1.11 christos KC(36), KS_j, KS_J, KS_gr_j, KS_gr_J, 190 1.11 christos KC(37), KS_k, KS_K, KS_gr_k, KS_gr_K, 191 1.11 christos KC(38), KS_l, KS_L, KS_gr_l, KS_gr_L, 192 1.11 christos KC(39), KS_semicolon, KS_colon, KS_dead_semi, KS_dead_colon, 193 1.11 christos KC(44), KS_z, KS_Z, KS_gr_z, KS_gr_Z, 194 1.11 christos KC(45), KS_x, KS_X, KS_gr_x, KS_gr_X, 195 1.11 christos KC(46), KS_c, KS_C, KS_gr_c, KS_gr_C, 196 1.11 christos KC(47), KS_v, KS_V, KS_gr_v, KS_gr_V, 197 1.11 christos KC(48), KS_b, KS_B, KS_gr_b, KS_gr_B, 198 1.11 christos KC(49), KS_n, KS_N, KS_gr_n, KS_gr_N, 199 1.11 christos KC(50), KS_m, KS_M, KS_gr_m, KS_gr_M, 200 1.11 christos KC(184), KS_Mode_switch, KS_Multi_key, 201 1.11 christos }; 202 1.11 christos 203 1.20 christos static const keysym_t pckbd_keydesc_nl[] = { 204 1.20 christos /* pos normal shifted altgr shift-altgr */ 205 1.20 christos KC(2), KS_1, KS_exclam, KS_onesuperior, 206 1.20 christos KC(3), KS_2, KS_quotedbl, KS_twosuperior, 207 1.20 christos KC(4), KS_3, KS_numbersign, KS_threesuperior, 208 1.20 christos KC(5), KS_4, KS_dollar, KS_onequarter, 209 1.20 christos KC(6), KS_5, KS_percent, KS_onehalf, 210 1.20 christos KC(7), KS_6, KS_ampersand, KS_threequarters, 211 1.20 christos KC(8), KS_7, KS_underscore, KS_sterling, 212 1.22 christos KC(9), KS_8, KS_parenleft, KS_braceleft, 213 1.22 christos KC(10), KS_9, KS_parenright, KS_braceright, 214 1.20 christos KC(11), KS_0, KS_apostrophe, 215 1.20 christos KC(12), KS_slash, KS_question, KS_backslash, 216 1.20 christos KC(13), KS_degree, KS_dead_tilde, KS_dead_cedilla, 217 1.22 christos KC(18), KS_e, KS_E, KS_currency, 218 1.22 christos KC(19), KS_r, KS_R, KS_paragraph, 219 1.20 christos KC(26), KS_dead_diaeresis, KS_dead_circumflex, 220 1.20 christos KC(27), KS_asterisk, KS_bar, 221 1.22 christos KC(31), KS_s, KS_S, KS_ssharp, 222 1.20 christos KC(39), KS_plus, KS_plusminus, 223 1.20 christos KC(40), KS_dead_acute, KS_dead_grave, 224 1.21 christos KC(41), KS_at, KS_section, KS_notsign, 225 1.20 christos KC(43), KS_less, KS_greater, 226 1.20 christos KC(44), KS_z, KS_Z, KS_guillemotleft, 227 1.20 christos KC(45), KS_x, KS_X, KS_guillemotright, 228 1.20 christos KC(46), KS_c, KS_C, KS_cent, 229 1.20 christos KC(50), KS_m, KS_M, KS_mu, 230 1.20 christos KC(51), KS_comma, KS_semicolon, 231 1.21 christos KC(52), KS_period, KS_colon, KS_periodcentered, 232 1.20 christos KC(53), KS_minus, KS_equal, 233 1.22 christos KC(86), KS_bracketleft, KS_bracketright,KS_brokenbar, 234 1.20 christos KC(184), KS_Mode_switch, KS_Multi_key, 235 1.20 christos }; 236 1.20 christos 237 1.20 christos 238 1.21 christos static const keysym_t pckbd_keydesc_nl_nodead[] = { 239 1.20 christos /* pos normal shifted altgr shift-altgr */ 240 1.21 christos KC(13), KS_degree, KS_asciitilde, KS_cedilla, 241 1.21 christos KC(26), KS_quotedbl, KS_asciicircum, 242 1.22 christos /* KC(27), KS_asterisk, KS_bar, */ 243 1.21 christos KC(40), KS_apostrophe, KS_grave, 244 1.20 christos }; 245 1.20 christos 246 1.20 christos 247 1.1 bjh21 static const keysym_t pckbd_keydesc_de[] = { 248 1.1 bjh21 /* pos normal shifted altgr shift-altgr */ 249 1.1 bjh21 KC(3), KS_2, KS_quotedbl, KS_twosuperior, 250 1.1 bjh21 KC(4), KS_3, KS_section, KS_threesuperior, 251 1.1 bjh21 KC(7), KS_6, KS_ampersand, 252 1.1 bjh21 KC(8), KS_7, KS_slash, KS_braceleft, 253 1.1 bjh21 KC(9), KS_8, KS_parenleft, KS_bracketleft, 254 1.1 bjh21 KC(10), KS_9, KS_parenright, KS_bracketright, 255 1.1 bjh21 KC(11), KS_0, KS_equal, KS_braceright, 256 1.1 bjh21 KC(12), KS_ssharp, KS_question, KS_backslash, 257 1.1 bjh21 KC(13), KS_dead_acute, KS_dead_grave, 258 1.1 bjh21 KC(16), KS_q, KS_Q, KS_at, 259 1.1 bjh21 KC(21), KS_z, 260 1.1 bjh21 KC(26), KS_udiaeresis, 261 1.1 bjh21 KC(27), KS_plus, KS_asterisk, KS_dead_tilde, 262 1.1 bjh21 KC(39), KS_odiaeresis, 263 1.1 bjh21 KC(40), KS_adiaeresis, 264 1.1 bjh21 KC(41), KS_dead_circumflex,KS_dead_abovering, 265 1.1 bjh21 KC(43), KS_numbersign, KS_apostrophe, 266 1.1 bjh21 KC(44), KS_y, 267 1.1 bjh21 KC(50), KS_m, KS_M, KS_mu, 268 1.1 bjh21 KC(51), KS_comma, KS_semicolon, 269 1.1 bjh21 KC(52), KS_period, KS_colon, 270 1.1 bjh21 KC(53), KS_minus, KS_underscore, 271 1.1 bjh21 KC(83), KS_KP_Delete, KS_KP_Separator, 272 1.1 bjh21 KC(86), KS_less, KS_greater, KS_bar, KS_brokenbar, 273 1.1 bjh21 KC(184), KS_Mode_switch, KS_Multi_key, 274 1.1 bjh21 }; 275 1.1 bjh21 276 1.1 bjh21 static const keysym_t pckbd_keydesc_de_nodead[] = { 277 1.1 bjh21 /* pos normal shifted altgr shift-altgr */ 278 1.1 bjh21 KC(13), KS_apostrophe, KS_grave, 279 1.1 bjh21 KC(27), KS_plus, KS_asterisk, KS_asciitilde, 280 1.1 bjh21 KC(41), KS_asciicircum, KS_degree, 281 1.1 bjh21 }; 282 1.1 bjh21 283 1.34 nia static const keysym_t pckbd_keydesc_de_neo[] = { 284 1.34 nia /* pos normal shifted layer 3 layer 4 */ 285 1.34 nia KC(41), KS_dead_circumflex, KS_dead_caron, 286 1.34 nia KC(2), KS_1, KS_degree, KS_onesuperior, KS_ordfeminine, 287 1.34 nia KC(3), KS_2, KS_section, KS_twosuperior, KS_masculine, 288 1.34 nia KC(4), KS_3, KS_l, KS_threesuperior,KS_numbersign, 289 1.34 nia KC(5), KS_4, KS_guillemotright,KS_greater, 290 1.34 nia KC(6), KS_5, KS_guillemotleft,KS_less, KS_periodcentered, 291 1.34 nia KC(7), KS_6, KS_dollar, KS_cent, KS_sterling, 292 1.34 nia KC(8), KS_7, KS_currency, KS_yen, KS_currency, 293 1.34 nia KC(9), KS_8, KS_quotedbl, KS_quotedbl, KS_Tab, 294 1.34 nia KC(10), KS_9, KS_quotedbl, KS_quotedbl, KS_KP_Divide, 295 1.34 nia KC(11), KS_0, KS_quotedbl, KS_quotedbl, KS_KP_Multiply, 296 1.34 nia KC(12), KS_minus, KS_hyphen, KS_minus, KS_minus, 297 1.34 nia KC(13), KS_dead_grave, KS_dead_cedilla,KS_dead_abovering, 298 1.34 nia KC(16), KS_x, KS_X, KS_period, KS_Prior, 299 1.34 nia KC(17), KS_v, KS_V, KS_underscore, KS_BackSpace, 300 1.34 nia KC(18), KS_l, KS_L, KS_bracketleft, KS_Up, 301 1.34 nia KC(19), KS_c, KS_C, KS_bracketright,KS_Delete, 302 1.34 nia KC(20), KS_w, KS_W, KS_asciicircum, KS_Next, 303 1.34 nia KC(21), KS_k, KS_K, KS_exclam, KS_exclamdown, 304 1.34 nia KC(22), KS_h, KS_H, KS_less, KS_KP_7, 305 1.34 nia KC(23), KS_g, KS_G, KS_greater, KS_KP_8, 306 1.34 nia KC(24), KS_f, KS_F, KS_equal, KS_KP_9, 307 1.34 nia KC(25), KS_q, KS_Q, KS_ampersand, KS_KP_Add, 308 1.34 nia KC(26), KS_ssharp, KS_ssharp, KS_f, KS_KP_Subtract, 309 1.34 nia KC(27), KS_dead_acute, KS_dead_tilde, 310 1.34 nia KC(29), KS_Control_L, KS_Control_L, KS_Control_L, KS_Control_L, 311 1.34 nia KC(30), KS_u, KS_U, KS_backslash, KS_Home, 312 1.34 nia KC(31), KS_i, KS_I, KS_slash, KS_Left, 313 1.34 nia KC(32), KS_a, KS_A, KS_braceleft, KS_Down, 314 1.34 nia KC(33), KS_e, KS_E, KS_braceright, KS_Right, 315 1.34 nia KC(34), KS_o, KS_O, KS_asterisk, KS_End, 316 1.34 nia KC(35), KS_s, KS_S, KS_question, KS_questiondown, 317 1.34 nia KC(36), KS_n, KS_N, KS_parenleft, KS_KP_4, 318 1.34 nia KC(37), KS_r, KS_R, KS_parenright, KS_KP_5, 319 1.34 nia KC(38), KS_t, KS_T, KS_minus, KS_KP_6, 320 1.34 nia KC(39), KS_d, KS_D, KS_colon, KS_KP_Separator, 321 1.34 nia KC(40), KS_y, KS_Y, KS_at, KS_KP_Decimal, 322 1.34 nia KC(44), KS_udiaeresis, KS_Udiaeresis, KS_numbersign, KS_Escape, 323 1.34 nia KC(45), KS_odiaeresis, KS_Odiaeresis, KS_dollar, KS_Tab, 324 1.34 nia KC(46), KS_adiaeresis, KS_Adiaeresis, KS_bar, KS_Insert, 325 1.34 nia KC(47), KS_p, KS_P, KS_asciitilde, KS_Return, 326 1.34 nia KC(48), KS_z, KS_Z, KS_grave, KS_Undo, 327 1.34 nia KC(49), KS_b, KS_B, KS_plus, KS_colon, 328 1.34 nia KC(50), KS_m, KS_M, KS_percent, KS_KP_1, 329 1.34 nia KC(51), KS_comma, KS_minus, KS_quotedbl, KS_KP_2, 330 1.34 nia KC(52), KS_period, KS_period, KS_apostrophe, KS_KP_3, 331 1.34 nia KC(53), KS_j, KS_J, KS_semicolon, KS_semicolon, 332 1.34 nia KC(56), KS_Alt_L, KS_Alt_L, KS_Alt_L, KS_Alt_L, 333 1.34 nia KC(43), KS_Mode_switch, KS_Multi_key, 334 1.34 nia KC(58), KS_Mode_switch, KS_Multi_key, 335 1.34 nia KC(86), KS_Mode_switch, KS_Multi_key, 336 1.34 nia KC(184), KS_Mode_switch, KS_Multi_key, 337 1.34 nia }; 338 1.34 nia 339 1.18 tonnerre static const keysym_t pckbd_keydesc_sg[] = { 340 1.18 tonnerre /* pos normal shifted altgr shift-altgr */ 341 1.18 tonnerre KC(2), KS_1, KS_plus, KS_bar, 342 1.18 tonnerre KC(3), KS_2, KS_quotedbl, KS_at, 343 1.18 tonnerre KC(4), KS_3, KS_asterisk, KS_numbersign, 344 1.18 tonnerre KC(5), KS_4, KS_ccedilla, 345 1.18 tonnerre KC(7), KS_6, KS_ampersand, KS_notsign, 346 1.18 tonnerre KC(8), KS_7, KS_slash, KS_brokenbar, 347 1.18 tonnerre KC(9), KS_8, KS_parenleft, KS_cent, 348 1.18 tonnerre KC(10), KS_9, KS_parenright, 349 1.18 tonnerre KC(11), KS_0, KS_equal, 350 1.18 tonnerre KC(12), KS_apostrophe, KS_question, KS_dead_acute, 351 1.18 tonnerre KC(13), KS_dead_circumflex,KS_dead_grave, KS_dead_tilde, 352 1.18 tonnerre KC(18), KS_e, KS_E, KS_currency, 353 1.18 tonnerre KC(21), KS_z, 354 1.18 tonnerre KC(26), KS_udiaeresis, KS_egrave, KS_bracketleft, 355 1.18 tonnerre KC(27), KS_dead_diaeresis, KS_exclam, KS_bracketright, 356 1.18 tonnerre KC(39), KS_odiaeresis, KS_eacute, 357 1.18 tonnerre KC(40), KS_adiaeresis, KS_agrave, KS_braceleft, 358 1.18 tonnerre KC(41), KS_section, KS_degree, KS_dead_abovering, 359 1.18 tonnerre KC(43), KS_dollar, KS_sterling, KS_braceright, 360 1.18 tonnerre KC(44), KS_y, 361 1.18 tonnerre KC(51), KS_comma, KS_semicolon, 362 1.18 tonnerre KC(52), KS_period, KS_colon, 363 1.18 tonnerre KC(53), KS_minus, KS_underscore, 364 1.18 tonnerre KC(86), KS_less, KS_greater, KS_backslash, 365 1.18 tonnerre KC(184), KS_Mode_switch, KS_Multi_key, 366 1.24 riastrad }; 367 1.18 tonnerre 368 1.18 tonnerre static const keysym_t pckbd_keydesc_sg_nodead[] = { 369 1.18 tonnerre /* pos normal shifted altgr shift-altgr */ 370 1.18 tonnerre KC(12), KS_apostrophe, KS_question, KS_acute, 371 1.18 tonnerre KC(13), KS_asciicircum, KS_grave, KS_asciitilde, 372 1.18 tonnerre KC(27), KS_diaeresis, KS_exclam, KS_bracketright 373 1.18 tonnerre }; 374 1.18 tonnerre 375 1.18 tonnerre static const keysym_t pckbd_keydesc_sf[] = { 376 1.18 tonnerre /* pos normal shifted altgr shift-altgr */ 377 1.18 tonnerre KC(26), KS_egrave, KS_udiaeresis, KS_bracketleft, 378 1.18 tonnerre KC(39), KS_eacute, KS_odiaeresis, 379 1.18 tonnerre KC(40), KS_agrave, KS_adiaeresis, KS_braceleft 380 1.18 tonnerre }; 381 1.18 tonnerre 382 1.1 bjh21 static const keysym_t pckbd_keydesc_dk[] = { 383 1.1 bjh21 /* pos normal shifted altgr shift-altgr */ 384 1.1 bjh21 KC(3), KS_2, KS_quotedbl, KS_at, 385 1.1 bjh21 KC(4), KS_3, KS_numbersign, KS_sterling, 386 1.1 bjh21 KC(5), KS_4, KS_currency, KS_dollar, 387 1.1 bjh21 KC(7), KS_6, KS_ampersand, 388 1.1 bjh21 KC(8), KS_7, KS_slash, KS_braceleft, 389 1.1 bjh21 KC(9), KS_8, KS_parenleft, KS_bracketleft, 390 1.1 bjh21 KC(10), KS_9, KS_parenright, KS_bracketright, 391 1.1 bjh21 KC(11), KS_0, KS_equal, KS_braceright, 392 1.1 bjh21 KC(12), KS_plus, KS_question, 393 1.1 bjh21 KC(13), KS_dead_acute, KS_dead_grave, KS_bar, 394 1.1 bjh21 KC(26), KS_aring, 395 1.1 bjh21 KC(27), KS_dead_diaeresis, KS_dead_circumflex, KS_dead_tilde, 396 1.1 bjh21 KC(39), KS_ae, 397 1.1 bjh21 KC(40), KS_oslash, 398 1.1 bjh21 KC(41), KS_onehalf, KS_paragraph, 399 1.1 bjh21 KC(43), KS_apostrophe, KS_asterisk, 400 1.1 bjh21 KC(51), KS_comma, KS_semicolon, 401 1.1 bjh21 KC(52), KS_period, KS_colon, 402 1.1 bjh21 KC(53), KS_minus, KS_underscore, 403 1.1 bjh21 KC(86), KS_less, KS_greater, KS_backslash, 404 1.1 bjh21 KC(184), KS_Mode_switch, KS_Multi_key, 405 1.1 bjh21 }; 406 1.1 bjh21 407 1.1 bjh21 static const keysym_t pckbd_keydesc_dk_nodead[] = { 408 1.1 bjh21 /* pos normal shifted altgr shift-altgr */ 409 1.1 bjh21 KC(13), KS_apostrophe, KS_grave, KS_bar, 410 1.1 bjh21 KC(27), KS_diaeresis, KS_asciicircum, KS_asciitilde, 411 1.1 bjh21 }; 412 1.1 bjh21 413 1.1 bjh21 static const keysym_t pckbd_keydesc_sv[] = { 414 1.1 bjh21 /* pos normal shifted altgr shift-altgr */ 415 1.1 bjh21 KC(12), KS_plus, KS_question, KS_backslash, 416 1.1 bjh21 KC(27), KS_dead_diaeresis, KS_dead_circumflex, KS_dead_tilde, 417 1.1 bjh21 KC(39), KS_odiaeresis, 418 1.1 bjh21 KC(40), KS_adiaeresis, 419 1.1 bjh21 KC(41), KS_paragraph, KS_onehalf, 420 1.1 bjh21 KC(86), KS_less, KS_greater, KS_bar, 421 1.1 bjh21 KC(184), KS_Mode_switch, KS_Multi_key, 422 1.1 bjh21 }; 423 1.1 bjh21 424 1.1 bjh21 static const keysym_t pckbd_keydesc_sv_nodead[] = { 425 1.1 bjh21 /* pos normal shifted altgr shift-altgr */ 426 1.1 bjh21 KC(13), KS_apostrophe, KS_grave, KS_bar, 427 1.1 bjh21 KC(27), KS_diaeresis, KS_asciicircum, KS_asciitilde, 428 1.1 bjh21 }; 429 1.1 bjh21 430 1.30 nia static const keysym_t pckbd_keydesc_ee[] = { 431 1.30 nia /* pos normal shifted altgr shift-altgr */ 432 1.30 nia KC(26), KS_udiaeresis, KS_Udiaeresis, KS_dead_diaeresis, KS_dead_abovering, 433 1.30 nia KC(27), KS_otilde, KS_Otilde, KS_section, 434 1.30 nia KC(31), KS_s, KS_S, KS_scaron, KS_Scaron, 435 1.30 nia KC(44), KS_z, KS_Z, KS_zcaron, KS_Zcaron, 436 1.30 nia KC(40), KS_adiaeresis, KS_Adiaeresis, KS_asciicircum, KS_dead_caron, 437 1.30 nia KC(41), KS_dead_caron, KS_dead_tilde, KS_notsign, KS_notsign, 438 1.30 nia KC(43), KS_apostrophe, KS_asterisk, KS_onehalf, KS_dead_breve, 439 1.30 nia }; 440 1.30 nia 441 1.30 nia static const keysym_t pckbd_keydesc_ee_nodead[] = { 442 1.30 nia /* pos normal shifted altgr shift-altgr */ 443 1.30 nia KC(41), KS_asciicircum, KS_asciitilde, KS_notsign, KS_notsign, 444 1.30 nia }; 445 1.30 nia 446 1.1 bjh21 static const keysym_t pckbd_keydesc_no[] = { 447 1.1 bjh21 /* pos normal shifted altgr shift-altgr */ 448 1.1 bjh21 KC(13), KS_backslash, KS_dead_grave, KS_dead_acute, 449 1.1 bjh21 KC(27), KS_dead_diaeresis, KS_dead_circumflex, KS_dead_tilde, 450 1.1 bjh21 KC(39), KS_oslash, 451 1.1 bjh21 KC(40), KS_ae, 452 1.1 bjh21 KC(41), KS_bar, KS_paragraph, 453 1.1 bjh21 KC(86), KS_less, KS_greater, 454 1.1 bjh21 }; 455 1.1 bjh21 456 1.1 bjh21 static const keysym_t pckbd_keydesc_no_nodead[] = { 457 1.1 bjh21 /* pos normal shifted altgr shift-altgr */ 458 1.1 bjh21 KC(13), KS_backslash, KS_grave, KS_acute, 459 1.1 bjh21 KC(27), KS_diaeresis, KS_asciicircum, KS_asciitilde, 460 1.1 bjh21 }; 461 1.1 bjh21 462 1.1 bjh21 static const keysym_t pckbd_keydesc_fr[] = { 463 1.1 bjh21 /* pos normal shifted altgr shift-altgr */ 464 1.1 bjh21 KC(2), KS_ampersand, KS_1, 465 1.1 bjh21 KC(3), KS_eacute, KS_2, KS_asciitilde, 466 1.1 bjh21 KC(4), KS_quotedbl, KS_3, KS_numbersign, 467 1.1 bjh21 KC(5), KS_apostrophe, KS_4, KS_braceleft, 468 1.1 bjh21 KC(6), KS_parenleft, KS_5, KS_bracketleft, 469 1.1 bjh21 KC(7), KS_minus, KS_6, KS_bar, 470 1.1 bjh21 KC(8), KS_egrave, KS_7, KS_grave, 471 1.1 bjh21 KC(9), KS_underscore, KS_8, KS_backslash, 472 1.1 bjh21 KC(10), KS_ccedilla, KS_9, KS_asciicircum, 473 1.1 bjh21 KC(11), KS_agrave, KS_0, KS_at, 474 1.1 bjh21 KC(12), KS_parenright, KS_degree, KS_bracketright, 475 1.1 bjh21 KC(13), KS_equal, KS_plus, KS_braceright, 476 1.1 bjh21 KC(16), KS_a, 477 1.1 bjh21 KC(17), KS_z, 478 1.7 perry KC(26), KS_dead_circumflex, KS_dead_diaeresis, 479 1.1 bjh21 KC(27), KS_dollar, KS_sterling, KS_currency, 480 1.1 bjh21 KC(30), KS_q, 481 1.1 bjh21 KC(39), KS_m, 482 1.1 bjh21 KC(40), KS_ugrave, KS_percent, 483 1.1 bjh21 KC(41), KS_twosuperior, KS_asciitilde, 484 1.1 bjh21 KC(43), KS_asterisk, KS_mu, 485 1.1 bjh21 KC(44), KS_w, 486 1.1 bjh21 KC(50), KS_comma, KS_question, 487 1.1 bjh21 KC(51), KS_semicolon, KS_period, 488 1.1 bjh21 KC(52), KS_colon, KS_slash, 489 1.1 bjh21 KC(53), KS_exclam, KS_section, 490 1.1 bjh21 KC(86), KS_less, KS_greater, 491 1.1 bjh21 KC(184), KS_Mode_switch, KS_Multi_key, 492 1.1 bjh21 }; 493 1.1 bjh21 494 1.35 nia static const keysym_t pckbd_keydesc_fr_bepo[] = { 495 1.35 nia /* pos normal shifted altgr shift-altgr */ 496 1.35 nia KC(41), KS_dollar, KS_numbersign, 497 1.35 nia KC(2), KS_quotedbl, KS_1, 498 1.35 nia KC(3), KS_guillemotleft, KS_2, KS_less, 499 1.35 nia KC(4), KS_guillemotright, KS_3, KS_greater, 500 1.35 nia KC(5), KS_parenleft, KS_4, KS_bracketleft, 501 1.35 nia KC(6), KS_parenright, KS_5, KS_bracketright, 502 1.35 nia KC(7), KS_at, KS_6, KS_asciicircum, 503 1.35 nia KC(8), KS_plus, KS_7, KS_plusminus, 504 1.35 nia KC(9), KS_minus, KS_8, 505 1.35 nia KC(10), KS_slash, KS_9, KS_division, 506 1.35 nia KC(11), KS_asterisk, KS_0, KS_multiply, 507 1.35 nia KC(12), KS_equal, KS_degree, 508 1.35 nia KC(13), KS_percent, KS_grave, 509 1.35 nia KC(16), KS_b, KS_B, KS_bar, KS_underscore, 510 1.35 nia KC(17), KS_eacute, KS_Eacute, KS_dead_acute, 511 1.35 nia KC(18), KS_p, KS_P, KS_ampersand, KS_section, 512 1.35 nia KC(19), KS_o, KS_O, 513 1.35 nia KC(20), KS_egrave, KS_Egrave, KS_dead_grave, KS_grave, 514 1.35 nia KC(21), KS_dead_circumflex,KS_exclam, KS_exclamdown, 515 1.35 nia KC(22), KS_v, KS_V, KS_dead_caron, 516 1.35 nia KC(23), KS_d, KS_D, 517 1.35 nia KC(24), KS_l, KS_L, KS_sterling, 518 1.35 nia KC(25), KS_j, KS_J, 519 1.35 nia KC(26), KS_z, KS_Z, 520 1.35 nia KC(27), KS_w, KS_W, 521 1.35 nia KC(30), KS_a, KS_A, KS_ae, KS_AE, 522 1.35 nia KC(31), KS_u, KS_U, KS_ugrave, KS_Ugrave, 523 1.35 nia KC(32), KS_i, KS_I, KS_dead_diaeresis, 524 1.35 nia KC(33), KS_e, KS_E, KS_currency, 525 1.35 nia KC(34), KS_comma, KS_semicolon, KS_apostrophe, 526 1.35 nia KC(35), KS_c, KS_C, KS_dead_cedilla,KS_copyright, 527 1.35 nia KC(36), KS_t, KS_T, 528 1.35 nia KC(37), KS_s, KS_S, 529 1.35 nia KC(38), KS_r, KS_R, KS_dead_breve, KS_registered, 530 1.35 nia KC(39), KS_n, KS_N, KS_dead_tilde, 531 1.35 nia KC(40), KS_m, KS_M, 532 1.35 nia KC(43), KS_ccedilla, KS_Ccedilla, 533 1.35 nia KC(44), KS_agrave, KS_Agrave, KS_backslash, 534 1.35 nia KC(45), KS_y, KS_Y, KS_braceleft, 535 1.35 nia KC(46), KS_x, KS_X, KS_braceright, 536 1.35 nia KC(47), KS_period, KS_colon, 537 1.35 nia KC(48), KS_k, KS_K, KS_asciitilde, 538 1.35 nia KC(49), KS_apostrophe, KS_question, KS_questiondown, 539 1.35 nia KC(50), KS_q, KS_Q, KS_dead_abovering, 540 1.35 nia KC(51), KS_g, KS_G, 541 1.35 nia KC(52), KS_h, KS_H, 542 1.35 nia KC(53), KS_f, KS_F, KS_dead_ogonek, 543 1.35 nia KC(57), KS_space, KS_space, KS_underscore, KS_nobreakspace, 544 1.35 nia KC(86), KS_ecircumflex, KS_Ecircumflex, KS_slash, KS_asciicircum, 545 1.35 nia KC(184), KS_Mode_switch, KS_Multi_key, 546 1.35 nia }; 547 1.35 nia 548 1.25 mbalmer static const keysym_t pckbd_keydesc_be[] = { 549 1.25 mbalmer /* pos normal shifted altgr shift-altgr */ 550 1.25 mbalmer KC(2), KS_ampersand, KS_1, KS_bar, 551 1.25 mbalmer KC(3), KS_eacute, KS_2, KS_at, 552 1.25 mbalmer KC(5), KS_apostrophe, KS_4, 553 1.25 mbalmer KC(6), KS_parenleft, KS_5, 554 1.25 mbalmer KC(7), KS_section, KS_6, KS_asciicircum, 555 1.25 mbalmer KC(8), KS_egrave, KS_7, 556 1.25 mbalmer KC(9), KS_exclam, KS_8, 557 1.25 mbalmer KC(10), KS_ccedilla, KS_9, KS_braceleft, 558 1.25 mbalmer KC(11), KS_agrave, KS_0, KS_braceright, 559 1.25 mbalmer KC(12), KS_parenright, KS_degree, 560 1.25 mbalmer KC(13), KS_minus, KS_underscore, 561 1.25 mbalmer KC(26), KS_dead_circumflex, KS_dead_diaeresis, KS_bracketleft, 562 1.25 mbalmer KC(27), KS_dollar, KS_asterisk, KS_bracketright, 563 1.25 mbalmer KC(43), KS_mu, KS_sterling, KS_grave, 564 1.25 mbalmer KC(40), KS_ugrave, KS_percent, KS_acute, 565 1.25 mbalmer KC(41), KS_twosuperior, KS_threesuperior, 566 1.25 mbalmer KC(53), KS_equal, KS_plus, KS_asciitilde, 567 1.25 mbalmer KC(86), KS_less, KS_greater, KS_backslash, 568 1.25 mbalmer }; 569 1.25 mbalmer 570 1.1 bjh21 static const keysym_t pckbd_keydesc_it[] = { 571 1.1 bjh21 /* pos normal shifted altgr shift-altgr */ 572 1.1 bjh21 KC(3), KS_2, KS_quotedbl, KS_twosuperior, 573 1.1 bjh21 KC(4), KS_3, KS_sterling, KS_threesuperior, 574 1.1 bjh21 KC(5), KS_4, KS_dollar, 575 1.1 bjh21 KC(6), KS_5, KS_percent, 576 1.1 bjh21 KC(7), KS_6, KS_ampersand, 577 1.1 bjh21 KC(8), KS_7, KS_slash, 578 1.1 bjh21 KC(9), KS_8, KS_parenleft, 579 1.1 bjh21 KC(10), KS_9, KS_parenright, 580 1.1 bjh21 KC(11), KS_0, KS_equal, 581 1.1 bjh21 KC(12), KS_apostrophe, KS_question, 582 1.1 bjh21 KC(13), KS_igrave, KS_asciicircum, 583 1.1 bjh21 KC(26), KS_egrave, KS_eacute, KS_braceleft, KS_bracketleft, 584 1.1 bjh21 KC(27), KS_plus, KS_asterisk, KS_braceright, KS_bracketright, 585 1.1 bjh21 KC(39), KS_ograve, KS_Ccedilla, KS_at, 586 1.1 bjh21 KC(40), KS_agrave, KS_degree, KS_numbersign, 587 1.1 bjh21 KC(41), KS_backslash, KS_bar, 588 1.1 bjh21 KC(43), KS_ugrave, KS_section, 589 1.1 bjh21 KC(51), KS_comma, KS_semicolon, 590 1.1 bjh21 KC(52), KS_period, KS_colon, 591 1.1 bjh21 KC(53), KS_minus, KS_underscore, 592 1.1 bjh21 KC(86), KS_less, KS_greater, 593 1.1 bjh21 KC(184), KS_Mode_switch, KS_Multi_key, 594 1.1 bjh21 }; 595 1.1 bjh21 596 1.1 bjh21 static const keysym_t pckbd_keydesc_uk[] = { 597 1.1 bjh21 /* pos normal shifted altgr shift-altgr */ 598 1.1 bjh21 KC(2), KS_1, KS_exclam, KS_plusminus, KS_exclamdown, 599 1.1 bjh21 KC(3), KS_2, KS_quotedbl, KS_twosuperior, KS_cent, 600 1.1 bjh21 KC(4), KS_3, KS_sterling, KS_threesuperior, 601 1.1 bjh21 KC(5), KS_4, KS_dollar, KS_acute, KS_currency, 602 1.1 bjh21 KC(6), KS_5, KS_percent, KS_mu, KS_yen, 603 1.1 bjh21 KC(7), KS_6, KS_asciicircum, KS_paragraph, 604 1.1 bjh21 KC(8), KS_7, KS_ampersand, KS_periodcentered, KS_brokenbar, 605 1.1 bjh21 KC(9), KS_8, KS_asterisk, KS_cedilla, KS_ordfeminine, 606 1.1 bjh21 KC(10), KS_9, KS_parenleft, KS_onesuperior, KS_diaeresis, 607 1.1 bjh21 KC(11), KS_0, KS_parenright, KS_masculine, KS_copyright, 608 1.1 bjh21 KC(12), KS_minus, KS_underscore, KS_hyphen, KS_ssharp, 609 1.1 bjh21 KC(13), KS_equal, KS_plus, KS_onehalf, KS_guillemotleft, 610 1.1 bjh21 KC(40), KS_apostrophe, KS_at, KS_section, KS_Agrave, 611 1.1 bjh21 KC(41), KS_grave, KS_grave, KS_agrave, KS_agrave, 612 1.1 bjh21 KC(43), KS_numbersign, KS_asciitilde, KS_sterling, KS_thorn, 613 1.1 bjh21 KC(86), KS_backslash, KS_bar, KS_Udiaeresis, 614 1.1 bjh21 }; 615 1.1 bjh21 616 1.1 bjh21 static const keysym_t pckbd_keydesc_jp[] = { 617 1.1 bjh21 /* pos normal shifted altgr shift-altgr */ 618 1.1 bjh21 KC(3), KS_2, KS_quotedbl, 619 1.1 bjh21 KC(7), KS_6, KS_ampersand, 620 1.1 bjh21 KC(8), KS_7, KS_apostrophe, 621 1.1 bjh21 KC(9), KS_8, KS_parenleft, 622 1.1 bjh21 KC(10), KS_9, KS_parenright, 623 1.1 bjh21 KC(11), KS_0, 624 1.1 bjh21 KC(12), KS_minus, KS_equal, 625 1.1 bjh21 KC(13), KS_asciicircum, KS_asciitilde, 626 1.1 bjh21 KC(26), KS_at, KS_grave, 627 1.1 bjh21 KC(27), KS_bracketleft, KS_braceleft, 628 1.1 bjh21 KC(39), KS_semicolon, KS_plus, 629 1.1 bjh21 KC(40), KS_colon, KS_asterisk, 630 1.1 bjh21 KC(41), KS_Zenkaku_Hankaku, /* replace grave/tilde */ 631 1.1 bjh21 KC(43), KS_bracketright, KS_braceright, 632 1.1 bjh21 KC(112), KS_Hiragana_Katakana, 633 1.1 bjh21 KC(115), KS_backslash, KS_underscore, 634 1.1 bjh21 KC(121), KS_Henkan, 635 1.1 bjh21 KC(123), KS_Muhenkan, 636 1.1 bjh21 KC(125), KS_backslash, KS_bar, 637 1.1 bjh21 }; 638 1.1 bjh21 639 1.1 bjh21 static const keysym_t pckbd_keydesc_es[] = { 640 1.1 bjh21 /* pos normal shifted altgr shift-altgr */ 641 1.1 bjh21 KC(2), KS_1, KS_exclam, KS_bar, 642 1.1 bjh21 KC(3), KS_2, KS_quotedbl, KS_at, 643 1.1 bjh21 KC(4), KS_3, KS_periodcentered, KS_numbersign, 644 1.1 bjh21 KC(5), KS_4, KS_dollar, KS_asciitilde, 645 1.1 bjh21 KC(7), KS_6, KS_ampersand, KS_notsign, 646 1.1 bjh21 KC(8), KS_7, KS_slash, 647 1.1 bjh21 KC(9), KS_8, KS_parenleft, 648 1.1 bjh21 KC(10), KS_9, KS_parenright, 649 1.1 bjh21 KC(11), KS_0, KS_equal, 650 1.1 bjh21 KC(12), KS_apostrophe, KS_question, 651 1.1 bjh21 KC(13), KS_exclamdown, KS_questiondown, 652 1.1 bjh21 KC(18), KS_e, KS_E, KS_currency, 653 1.1 bjh21 KC(26), KS_dead_grave, KS_dead_circumflex, KS_bracketleft, 654 1.1 bjh21 KC(27), KS_plus, KS_asterisk, KS_bracketright, 655 1.1 bjh21 KC(39), KS_ntilde, 656 1.1 bjh21 KC(40), KS_dead_acute, KS_dead_diaeresis, KS_braceleft, 657 1.1 bjh21 KC(41), KS_degree, KS_ordfeminine, KS_backslash, 658 1.1 bjh21 KC(43), KS_ccedilla, KS_Ccedilla, KS_braceright, 659 1.1 bjh21 KC(46), KS_c, KS_C, KS_cent, 660 1.1 bjh21 KC(51), KS_comma, KS_semicolon, 661 1.1 bjh21 KC(52), KS_period, KS_colon, 662 1.1 bjh21 KC(53), KS_minus, KS_underscore, 663 1.1 bjh21 KC(86), KS_less, KS_greater, 664 1.1 bjh21 KC(184), KS_Mode_switch, KS_Multi_key, 665 1.1 bjh21 }; 666 1.1 bjh21 667 1.24 riastrad static const keysym_t pckbd_keydesc_cz[] = { 668 1.24 riastrad /* pos normal shifted altgr shift-altgr */ 669 1.24 riastrad KC(2), KS_plus, KS_1, KS_asciitilde, 670 1.24 riastrad KC(3), KS_ecaron, KS_2, KS_dead_caron, 671 1.24 riastrad KC(4), KS_scaron, KS_3, KS_dead_circumflex, 672 1.24 riastrad KC(5), KS_ccaron, KS_4, KS_dead_breve, 673 1.24 riastrad KC(6), KS_rcaron, KS_5, KS_dead_abovering, 674 1.24 riastrad KC(7), KS_zcaron, KS_6, KS_dead_ogonek, 675 1.24 riastrad KC(8), KS_yacute, KS_7, KS_dead_grave, 676 1.24 riastrad KC(9), KS_aacute, KS_8, KS_dead_dotaccent, 677 1.24 riastrad KC(10), KS_iacute, KS_9, KS_dead_acute, 678 1.24 riastrad KC(11), KS_eacute, KS_0, KS_dead_hungarumlaut, 679 1.17 mkirby KC(12), KS_equal, KS_percent, KS_dead_diaeresis, 680 1.17 mkirby KC(13), KS_dead_acute, KS_dead_caron, KS_dead_cedilla, 681 1.24 riastrad KC(26), KS_uacute, KS_slash, 682 1.17 mkirby KC(27), KS_adiaeresis, KS_parenleft, KS_multiply, 683 1.17 mkirby KC(39), KS_uabovering, KS_quotedbl, KS_dollar, 684 1.17 mkirby KC(40), KS_section, KS_exclam, KS_ssharp, 685 1.17 mkirby KC(41), KS_ncaron, KS_parenright, KS_currency, 686 1.17 mkirby KC(51), KS_comma, KS_question, 687 1.17 mkirby KC(52), KS_period, KS_colon, 688 1.17 mkirby KC(53), KS_minus, KS_underscore, 689 1.17 mkirby KC(86), KS_ampersand, KS_asterisk, KS_less, 690 1.17 mkirby KC(16), KS_q, KS_Q, KS_backslash, 691 1.17 mkirby KC(17), KS_w, KS_W, KS_bar, 692 1.17 mkirby KC(31), KS_s, KS_S, KS_dstroke, 693 1.17 mkirby KC(32), KS_d, KS_D, KS_Dstroke, 694 1.17 mkirby KC(33), KS_f, KS_F, KS_bracketleft, 695 1.17 mkirby KC(34), KS_g, KS_G, KS_bracketright, 696 1.17 mkirby KC(37), KS_k, KS_K, KS_lstroke, 697 1.17 mkirby KC(38), KS_l, KS_L, KS_Lstroke, 698 1.17 mkirby KC(44), KS_z, KS_Z, KS_greater, 699 1.17 mkirby KC(45), KS_x, KS_X, KS_numbersign, 700 1.17 mkirby KC(47), KS_v, KS_V, KS_at, 701 1.17 mkirby KC(48), KS_b, KS_B, KS_braceleft, 702 1.17 mkirby KC(49), KS_n, KS_N, KS_braceright, 703 1.24 riastrad KC(184), KS_Mode_switch, KS_Multi_key, 704 1.24 riastrad }; 705 1.17 mkirby 706 1.1 bjh21 static const keysym_t pckbd_keydesc_pt[] = { 707 1.1 bjh21 /* pos normal shifted altgr shift-altgr */ 708 1.1 bjh21 KC(3), KS_2, KS_quotedbl, KS_at, 709 1.1 bjh21 KC(4), KS_3, KS_numbersign, KS_sterling, 710 1.9 abs KC(5), KS_4, KS_dollar, KS_section, 711 1.1 bjh21 KC(7), KS_6, KS_ampersand, 712 1.1 bjh21 KC(8), KS_7, KS_slash, KS_braceleft, 713 1.1 bjh21 KC(9), KS_8, KS_parenleft, KS_bracketleft, 714 1.1 bjh21 KC(10), KS_9, KS_parenright, KS_bracketright, 715 1.1 bjh21 KC(11), KS_0, KS_equal, KS_braceright, 716 1.1 bjh21 KC(12), KS_apostrophe, KS_question, 717 1.8 abs KC(13), KS_guillemotleft, KS_guillemotright, 718 1.9 abs KC(26), KS_plus, KS_asterisk, KS_dead_diaeresis, 719 1.1 bjh21 KC(27), KS_dead_acute, KS_dead_grave, 720 1.1 bjh21 KC(39), KS_ccedilla, KS_Ccedilla, 721 1.1 bjh21 KC(40), KS_masculine, KS_ordfeminine, 722 1.1 bjh21 KC(41), KS_backslash, KS_bar, 723 1.1 bjh21 KC(43), KS_dead_tilde, KS_dead_circumflex, 724 1.1 bjh21 KC(51), KS_comma, KS_semicolon, 725 1.1 bjh21 KC(52), KS_period, KS_colon, 726 1.1 bjh21 KC(53), KS_minus, KS_underscore, 727 1.1 bjh21 KC(86), KS_less, KS_greater, 728 1.1 bjh21 KC(184), KS_Mode_switch, KS_Multi_key, 729 1.1 bjh21 }; 730 1.1 bjh21 731 1.19 ahoka static const keysym_t pckbd_keydesc_hu[] = { 732 1.19 ahoka /* pos normal shifted altgr shift-altgr */ 733 1.19 ahoka KC(2), KS_1, KS_apostrophe, KS_asciitilde, 734 1.19 ahoka KC(3), KS_2, KS_quotedbl, KS_dead_caron, 735 1.19 ahoka KC(4), KS_3, KS_plus, KS_asciicircum, 736 1.19 ahoka KC(5), KS_4, KS_exclam, KS_dead_breve, 737 1.19 ahoka KC(6), KS_5, KS_percent, KS_dead_abovering, 738 1.19 ahoka KC(7), KS_6, KS_slash, KS_dead_ogonek, 739 1.19 ahoka KC(8), KS_7, KS_equal, KS_grave, 740 1.19 ahoka KC(9), KS_8, KS_parenleft, KS_dead_dotaccent, 741 1.19 ahoka KC(10), KS_9, KS_parenright, KS_dead_acute, 742 1.19 ahoka KC(11), KS_odiaeresis, KS_Odiaeresis, KS_dead_hungarumlaut, 743 1.19 ahoka KC(12), KS_udiaeresis, KS_Udiaeresis, KS_dead_diaeresis, 744 1.19 ahoka KC(13), KS_oacute, KS_Oacute, KS_dead_cedilla, 745 1.19 ahoka KC(16), KS_q, KS_Q, KS_backslash, 746 1.19 ahoka KC(17), KS_w, KS_W, KS_bar, 747 1.19 ahoka KC(21), KS_z, 748 1.19 ahoka KC(26), KS_odoubleacute, KS_Odoubleacute,KS_division, 749 1.19 ahoka KC(27), KS_uacute, KS_Uacute, KS_multiply, 750 1.19 ahoka KC(33), KS_f, KS_F, KS_bracketleft, 751 1.19 ahoka KC(34), KS_g, KS_G, KS_bracketright, 752 1.19 ahoka KC(39), KS_eacute, KS_Eacute, KS_dollar, 753 1.19 ahoka KC(40), KS_aacute, KS_Aacute, KS_ssharp, 754 1.19 ahoka KC(41), KS_0, KS_section, 755 1.19 ahoka KC(43), KS_udoubleacute, KS_Udoubleacute,KS_currency, 756 1.19 ahoka KC(44), KS_y, KS_Y, KS_greater, 757 1.19 ahoka KC(45), KS_x, KS_X, KS_numbersign, 758 1.19 ahoka KC(46), KS_c, KS_C, KS_ampersand, 759 1.19 ahoka KC(47), KS_v, KS_V, KS_at, 760 1.19 ahoka KC(48), KS_b, KS_B, KS_braceleft, 761 1.19 ahoka KC(49), KS_n, KS_N, KS_braceright, 762 1.19 ahoka KC(51), KS_comma, KS_question, KS_semicolon, 763 1.19 ahoka KC(52), KS_period, KS_colon, 764 1.19 ahoka KC(53), KS_minus, KS_underscore, KS_asterisk, 765 1.19 ahoka KC(86), KS_iacute, KS_Iacute, KS_less, 766 1.19 ahoka KC(184), KS_Mode_switch, KS_Multi_key, 767 1.19 ahoka }; 768 1.19 ahoka 769 1.1 bjh21 static const keysym_t pckbd_keydesc_us_declk[] = { 770 1.1 bjh21 /* pos normal shifted altgr shift-altgr */ 771 1.1 bjh21 KC(1), KS_grave, KS_asciitilde, /* replace escape */ 772 1.1 bjh21 KC(41), KS_less, KS_greater, /* replace grave/tilde */ 773 1.1 bjh21 KC(143), KS_Multi_key, /* left compose */ 774 1.1 bjh21 KC(157), KS_Multi_key, /* right compose, replace right control */ 775 1.1 bjh21 KC(87), KS_Cmd_Debugger, KS_Escape, /* replace F11 */ 776 1.1 bjh21 KC(189), KS_f13, 777 1.1 bjh21 KC(190), KS_f14, 778 1.1 bjh21 KC(191), KS_Help, 779 1.1 bjh21 KC(192), KS_Execute, 780 1.1 bjh21 KC(193), KS_f17, 781 1.1 bjh21 KC(183), KS_f18, 782 1.1 bjh21 KC(70), KS_f19, /* replace scroll lock */ 783 1.1 bjh21 KC(127), KS_f20, /* replace break */ 784 1.1 bjh21 KC(69), KS_KP_F1, /* replace num lock */ 785 1.1 bjh21 KC(181), KS_KP_F2, /* replace divide */ 786 1.1 bjh21 KC(55), KS_KP_F3, /* replace multiply */ 787 1.1 bjh21 KC(74), KS_KP_F4, /* replace subtract */ 788 1.1 bjh21 789 1.1 bjh21 /* keypad is numbers only - no num lock */ 790 1.1 bjh21 KC(71), KS_KP_7, 791 1.1 bjh21 KC(72), KS_KP_8, 792 1.1 bjh21 KC(73), KS_KP_9, 793 1.1 bjh21 KC(75), KS_KP_4, 794 1.1 bjh21 KC(76), KS_KP_5, 795 1.1 bjh21 KC(77), KS_KP_6, 796 1.1 bjh21 KC(79), KS_KP_1, 797 1.1 bjh21 KC(80), KS_KP_2, 798 1.1 bjh21 KC(81), KS_KP_3, 799 1.1 bjh21 KC(82), KS_KP_0, 800 1.1 bjh21 KC(83), KS_KP_Decimal, 801 1.1 bjh21 802 1.1 bjh21 KC(206), KS_KP_Subtract, 803 1.1 bjh21 KC(78), KS_KP_Separator, /* replace add */ 804 1.1 bjh21 KC(199), KS_Find, /* replace home */ 805 1.1 bjh21 KC(207), KS_Select, /* replace end */ 806 1.1 bjh21 }; 807 1.1 bjh21 808 1.1 bjh21 static const keysym_t pckbd_keydesc_us_dvorak[] = { 809 1.1 bjh21 /* pos command normal shifted */ 810 1.1 bjh21 KC(12), KS_bracketleft, KS_braceleft, 811 1.1 bjh21 KC(13), KS_bracketright, KS_braceright, 812 1.1 bjh21 KC(16), KS_apostrophe, KS_quotedbl, 813 1.1 bjh21 KC(17), KS_comma, KS_less, 814 1.1 bjh21 KC(18), KS_period, KS_greater, 815 1.1 bjh21 KC(19), KS_p, 816 1.1 bjh21 KC(20), KS_y, 817 1.1 bjh21 KC(21), KS_f, 818 1.1 bjh21 KC(22), KS_g, 819 1.1 bjh21 KC(23), KS_c, 820 1.1 bjh21 KC(24), KS_r, 821 1.1 bjh21 KC(25), KS_l, 822 1.1 bjh21 KC(26), KS_slash, KS_question, 823 1.1 bjh21 KC(27), KS_equal, KS_plus, 824 1.1 bjh21 KC(31), KS_o, 825 1.1 bjh21 KC(32), KS_e, 826 1.1 bjh21 KC(33), KS_u, 827 1.1 bjh21 KC(34), KS_i, 828 1.1 bjh21 KC(35), KS_d, 829 1.1 bjh21 KC(36), KS_h, 830 1.1 bjh21 KC(37), KS_t, 831 1.1 bjh21 KC(38), KS_n, 832 1.1 bjh21 KC(39), KS_s, 833 1.1 bjh21 KC(40), KS_minus, KS_underscore, 834 1.1 bjh21 KC(44), KS_semicolon, KS_colon, 835 1.1 bjh21 KC(45), KS_q, 836 1.1 bjh21 KC(46), KS_j, 837 1.1 bjh21 KC(47), KS_k, 838 1.1 bjh21 KC(48), KS_x, 839 1.1 bjh21 KC(49), KS_b, 840 1.1 bjh21 KC(51), KS_w, 841 1.1 bjh21 KC(52), KS_v, 842 1.1 bjh21 KC(53), KS_z, 843 1.1 bjh21 }; 844 1.1 bjh21 845 1.15 ghen static const keysym_t pckbd_keydesc_us_colemak[] = { 846 1.15 ghen /* pos command normal shifted */ 847 1.16 ghen KC(41), KS_grave, KS_asciitilde, KS_dead_tilde, KS_asciitilde, 848 1.16 ghen KC(2), KS_1, KS_exclam, KS_exclamdown, KS_onesuperior, 849 1.16 ghen KC(3), KS_2, KS_at, KS_masculine, KS_twosuperior, 850 1.16 ghen KC(4), KS_3, KS_numbersign, KS_ordfeminine, KS_threesuperior, 851 1.16 ghen KC(5), KS_4, KS_dollar, KS_cent, KS_sterling, 852 1.16 ghen KC(6), KS_5, KS_percent, KS_asciitilde, KS_yen, 853 1.16 ghen KC(7), KS_6, KS_asciicircum, KS_asciitilde, KS_asciitilde, 854 1.16 ghen KC(8), KS_7, KS_ampersand, KS_eth, KS_ETH, 855 1.16 ghen KC(9), KS_8, KS_asterisk, KS_thorn, KS_THORN, 856 1.16 ghen KC(10), KS_9, KS_parenleft, KS_asciitilde, KS_asciitilde, 857 1.16 ghen KC(11), KS_0, KS_parenright, KS_asciitilde, KS_asciitilde, 858 1.16 ghen KC(12), KS_minus, KS_underscore, KS_asciitilde, KS_asciitilde, 859 1.16 ghen KC(13), KS_equal, KS_plus, KS_multiply, KS_division, 860 1.16 ghen KC(16), KS_q, KS_Q, KS_adiaeresis, KS_Adiaeresis, 861 1.16 ghen KC(17), KS_w, KS_W, KS_aring, KS_Aring, 862 1.16 ghen KC(18), KS_f, KS_F, KS_atilde, KS_Atilde, 863 1.16 ghen KC(19), KS_p, KS_P, KS_oslash, KS_Ooblique, 864 1.16 ghen KC(20), KS_g, KS_G, KS_asciitilde, KS_asciitilde, 865 1.16 ghen KC(21), KS_j, KS_J, KS_asciitilde, KS_asciitilde, 866 1.16 ghen KC(22), KS_l, KS_L, KS_asciitilde, KS_asciitilde, 867 1.16 ghen KC(23), KS_u, KS_U, KS_uacute, KS_Uacute, 868 1.16 ghen KC(24), KS_y, KS_Y, KS_udiaeresis, KS_Udiaeresis, 869 1.16 ghen KC(25), KS_semicolon, KS_colon, KS_odiaeresis, KS_Odiaeresis, 870 1.16 ghen KC(26), KS_bracketleft, KS_braceleft, KS_guillemotleft, KS_asciitilde, 871 1.16 ghen KC(27), KS_bracketright, KS_braceright, KS_guillemotright, KS_asciitilde, 872 1.16 ghen KC(43), KS_backslash, KS_bar, KS_asciitilde, KS_asciitilde, 873 1.16 ghen KC(30), KS_a, KS_A, KS_aacute, KS_Aacute, 874 1.16 ghen KC(31), KS_r, KS_R, KS_dead_grave, KS_asciitilde, 875 1.16 ghen KC(32), KS_s, KS_S, KS_ssharp, KS_asciitilde, 876 1.16 ghen KC(33), KS_t, KS_T, KS_dead_acute, KS_asciitilde, 877 1.16 ghen KC(34), KS_d, KS_D, KS_dead_diaeresis, KS_asciitilde, 878 1.16 ghen KC(35), KS_h, KS_H, KS_asciitilde, KS_asciitilde, 879 1.16 ghen KC(36), KS_n, KS_N, KS_ntilde, KS_Ntilde, 880 1.16 ghen KC(37), KS_e, KS_E, KS_eacute, KS_Eacute, 881 1.16 ghen KC(38), KS_i, KS_I, KS_iacute, KS_Iacute, 882 1.16 ghen KC(39), KS_o, KS_O, KS_oacute, KS_Oacute, 883 1.16 ghen KC(40), KS_apostrophe, KS_quotedbl, KS_otilde, KS_Otilde, 884 1.16 ghen KC(44), KS_z, KS_Z, KS_ae, KS_AE, 885 1.16 ghen KC(45), KS_x, KS_X, KS_dead_circumflex, KS_asciitilde, 886 1.16 ghen KC(46), KS_c, KS_C, KS_ccedilla, KS_Ccedilla, 887 1.16 ghen KC(47), KS_v, KS_V, KS_asciitilde, KS_asciitilde, 888 1.16 ghen KC(48), KS_b, KS_B, KS_asciitilde, KS_asciitilde, 889 1.16 ghen KC(49), KS_k, KS_K, KS_asciitilde, KS_asciitilde, 890 1.16 ghen KC(50), KS_m, KS_M, KS_asciitilde, KS_asciitilde, 891 1.16 ghen KC(51), KS_comma, KS_less, KS_dead_cedilla, KS_asciitilde, 892 1.16 ghen KC(52), KS_period, KS_greater, KS_asciitilde, KS_asciitilde, 893 1.16 ghen KC(53), KS_slash, KS_question, KS_questiondown, KS_asciitilde, 894 1.15 ghen KC(58), KS_BackSpace, 895 1.16 ghen KC(86), KS_minus, KS_underscore, KS_asciitilde, KS_asciitilde, 896 1.16 ghen KC(57), KS_space, KS_space, KS_space, KS_nobreakspace, 897 1.16 ghen KC(184), KS_Mode_switch, KS_Multi_key, 898 1.15 ghen }; 899 1.15 ghen 900 1.26 maya static const keysym_t pckbd_keydesc_tr[] = { 901 1.26 maya /* pos normal shifted altgr shift-altgr */ 902 1.26 maya KC(3), KS_2, KS_apostrophe, KS_sterling, 903 1.26 maya KC(4), KS_3, KS_asciicircum, KS_numbersign, 904 1.26 maya KC(5), KS_4, KS_plus, KS_dollar, 905 1.26 maya KC(6), KS_5, KS_percent, KS_onehalf, 906 1.26 maya KC(7), KS_6, KS_ampersand, 907 1.26 maya KC(8), KS_7, KS_slash, KS_braceleft, 908 1.26 maya KC(9), KS_8, KS_parenleft, KS_bracketleft, 909 1.26 maya KC(10), KS_9, KS_parenright, KS_bracketright, 910 1.26 maya KC(11), KS_0, KS_equal, KS_braceright, 911 1.26 maya KC(12), KS_asterisk, KS_question, KS_backslash, 912 1.26 maya KC(13), KS_minus, KS_underscore, 913 1.26 maya KC(16), KS_q, KS_Q, KS_at, 914 1.26 maya KC(23), KS_L5_idotless, KS_I, 915 1.26 maya KC(26), KS_L5_gbreve, KS_L5_Gbreve, KS_dead_diaeresis, 916 1.26 maya KC(27), KS_udiaeresis, KS_Udiaeresis, KS_asciitilde, 917 1.26 maya KC(39), KS_L5_scedilla, KS_L5_Scedilla, KS_dead_acute, 918 1.26 maya KC(40), KS_i, KS_L5_Idotabove, 919 1.26 maya KC(41), KS_quotedbl, KS_eacute, 920 1.26 maya KC(43), KS_comma, KS_semicolon, KS_dead_grave, 921 1.26 maya KC(51), KS_odiaeresis, KS_Odiaeresis, 922 1.26 maya KC(52), KS_ccedilla, KS_Ccedilla, 923 1.26 maya KC(53), KS_period, KS_colon, 924 1.26 maya KC(86), KS_less, KS_greater, KS_bar, 925 1.26 maya KC(184), KS_Mode_switch, KS_Multi_key, 926 1.26 maya }; 927 1.26 maya 928 1.26 maya static const keysym_t pckbd_keydesc_tr_nodead[] = { 929 1.26 maya /* pos normal shifted altgr shift-altgr */ 930 1.26 maya KC(26), KS_L5_gbreve, KS_L5_Gbreve, 931 1.26 maya KC(39), KS_L5_scedilla, KS_L5_Scedilla, KS_apostrophe, 932 1.26 maya KC(43), KS_comma, KS_semicolon, KS_grave, 933 1.26 maya }; 934 1.26 maya 935 1.1 bjh21 static const keysym_t pckbd_keydesc_swapctrlcaps[] = { 936 1.1 bjh21 /* pos command normal shifted */ 937 1.1 bjh21 KC(29), KS_Caps_Lock, 938 1.1 bjh21 KC(58), KS_Cmd1, KS_Control_L, 939 1.1 bjh21 }; 940 1.1 bjh21 941 1.1 bjh21 static const keysym_t pckbd_keydesc_iopener[] = { 942 1.1 bjh21 /* pos command normal shifted */ 943 1.1 bjh21 KC(59), KS_Cmd_Debugger, KS_Escape, 944 1.1 bjh21 KC(60), KS_Cmd_Screen0, KS_f1, 945 1.1 bjh21 KC(61), KS_Cmd_Screen1, KS_f2, 946 1.1 bjh21 KC(62), KS_Cmd_Screen2, KS_f3, 947 1.1 bjh21 KC(63), KS_Cmd_Screen3, KS_f4, 948 1.1 bjh21 KC(64), KS_Cmd_Screen4, KS_f5, 949 1.1 bjh21 KC(65), KS_Cmd_Screen5, KS_f6, 950 1.1 bjh21 KC(66), KS_Cmd_Screen6, KS_f7, 951 1.1 bjh21 KC(67), KS_Cmd_Screen7, KS_f8, 952 1.1 bjh21 KC(68), KS_Cmd_Screen8, KS_f9, 953 1.1 bjh21 KC(87), KS_Cmd_Screen9, KS_f10, 954 1.1 bjh21 KC(88), KS_f11, 955 1.1 bjh21 }; 956 1.28 nia 957 1.28 nia static const keysym_t pckbd_keydesc_br[] = { 958 1.28 nia /* pos normal shifted altgr shift-altgr */ 959 1.28 nia KC(2), KS_1, KS_exclam, KS_onesuperior, KS_exclamdown, 960 1.28 nia KC(3), KS_2, KS_at, KS_twosuperior, KS_onehalf, 961 1.28 nia KC(4), KS_3, KS_numbersign, KS_threesuperior, KS_threequarters, 962 1.28 nia KC(5), KS_4, KS_dollar, KS_sterling, KS_onequarter, 963 1.28 nia KC(6), KS_5, KS_percent, KS_cent, KS_cent, 964 1.28 nia KC(7), KS_6, KS_dead_diaeresis, KS_notsign, KS_diaeresis, 965 1.28 nia KC(13), KS_equal, KS_plus, KS_section, KS_dead_ogonek, 966 1.28 nia KC(16), KS_q, KS_Q, KS_slash, KS_slash, 967 1.28 nia KC(17), KS_w, KS_W, KS_question, KS_question, 968 1.28 nia KC(18), KS_e, KS_E, KS_currency, KS_currency, 969 1.28 nia KC(19), KS_r, KS_R, KS_registered, KS_registered, 970 1.28 nia KC(26), KS_dead_acute, KS_dead_grave, KS_acute, KS_grave, 971 1.28 nia KC(27), KS_bracketleft, KS_braceleft, KS_ordfeminine, KS_macron, 972 1.28 nia KC(39), KS_ccedilla, KS_Ccedilla, KS_dead_acute, KS_dead_hungarumlaut, 973 1.28 nia KC(40), KS_dead_tilde, KS_dead_circumflex, KS_asciitilde, KS_asciicircum, 974 1.28 nia KC(41), KS_apostrophe, KS_quotedbl, KS_notsign, KS_notsign, 975 1.28 nia KC(43), KS_bracketright, KS_braceright, KS_masculine, KS_masculine, 976 1.28 nia KC(46), KS_c, KS_C, KS_copyright, KS_copyright, 977 1.28 nia KC(50), KS_m, KS_M, KS_mu, KS_mu, 978 1.28 nia KC(53), KS_semicolon, KS_colon, KS_dead_dotaccent, KS_abovedot, 979 1.28 nia KC(86), KS_backslash, KS_bar, KS_masculine, KS_dead_breve, 980 1.28 nia KC(115), KS_slash, KS_question, KS_degree, KS_questiondown, 981 1.28 nia KC(184), KS_Mode_switch, KS_Multi_key, 982 1.28 nia }; 983 1.28 nia 984 1.28 nia static const keysym_t pckbd_keydesc_br_nodead[] = { 985 1.28 nia /* pos normal shifted altgr shift-altgr */ 986 1.29 nia KC(7), KS_6, KS_diaeresis, KS_notsign, KS_dead_diaeresis, 987 1.28 nia KC(26), KS_apostrophe, KS_grave, KS_dead_acute, KS_dead_grave, 988 1.28 nia KC(40), KS_asciitilde, KS_asciicircum, KS_dead_tilde, KS_dead_circumflex, 989 1.28 nia }; 990 1.31 nia 991 1.31 nia static const keysym_t pckbd_keydesc_is[] = { 992 1.31 nia /* pos normal shifted altgr shift-altgr */ 993 1.31 nia KC(2), KS_1, KS_exclam, KS_onesuperior, KS_exclamdown, 994 1.31 nia KC(3), KS_2, KS_quotedbl, KS_twosuperior, 995 1.31 nia KC(4), KS_3, KS_numbersign, KS_threesuperior, KS_sterling, 996 1.31 nia KC(5), KS_4, KS_dollar, KS_onequarter, KS_currency, 997 1.31 nia KC(6), KS_5, KS_percent, KS_onehalf, 998 1.31 nia KC(7), KS_6, KS_ampersand, KS_notsign, 999 1.31 nia KC(8), KS_7, KS_slash, KS_braceleft, 1000 1.31 nia KC(9), KS_8, KS_parenleft, KS_bracketleft, 1001 1.31 nia KC(10), KS_9, KS_parenright, KS_bracketright, KS_plusminus, 1002 1.31 nia KC(11), KS_0, KS_equal, KS_braceright, KS_degree, 1003 1.31 nia KC(12), KS_odiaeresis, KS_Odiaeresis, KS_backslash, KS_questiondown, 1004 1.31 nia KC(13), KS_minus, KS_underscore, KS_dead_cedilla, KS_dead_ogonek, 1005 1.31 nia KC(16), KS_q, KS_Q, KS_at, 1006 1.31 nia KC(18), KS_e, KS_E, KS_currency, KS_cent, 1007 1.31 nia KC(26), KS_eth, KS_ETH, KS_dead_diaeresis, KS_dead_abovering, 1008 1.31 nia KC(27), KS_apostrophe, KS_question, KS_asciitilde, 1009 1.31 nia KC(39), KS_ae, KS_AE, KS_asciicircum, 1010 1.31 nia KC(40), KS_dead_acute, KS_dead_diaeresis, KS_dead_circumflex, KS_dead_caron, 1011 1.31 nia KC(41), KS_degree, KS_diaeresis, 1012 1.31 nia KC(43), KS_plus, KS_asterisk, KS_grave, KS_dead_breve, 1013 1.31 nia KC(50), KS_m, KS_M, KS_mu, 1014 1.31 nia KC(51), KS_comma, KS_semicolon, 1015 1.31 nia KC(52), KS_period, KS_colon, KS_periodcentered, KS_division, 1016 1.31 nia KC(53), KS_thorn, 1017 1.31 nia KC(86), KS_less, KS_greater, KS_bar, 1018 1.31 nia KC(184), KS_Mode_switch, KS_Multi_key, 1019 1.31 nia }; 1020 1.31 nia 1021 1.31 nia static const keysym_t pckbd_keydesc_is_nodead[] = { 1022 1.31 nia /* pos normal shifted altgr shift-altgr */ 1023 1.31 nia KC(40), KS_acute, KS_diaeresis, KS_asciicircum, 1024 1.31 nia }; 1025 1.32 nia 1026 1.32 nia static const keysym_t pckbd_keydesc_la[] = { 1027 1.32 nia /* pos normal shifted altgr shift-altgr */ 1028 1.32 nia KC(2), KS_1, KS_exclam, KS_bar, 1029 1.32 nia KC(3), KS_2, KS_quotedbl, KS_at, 1030 1.32 nia KC(4), KS_3, KS_numbersign, KS_periodcentered, 1031 1.32 nia KC(7), KS_6, KS_ampersand, KS_notsign, 1032 1.32 nia KC(8), KS_7, KS_slash, 1033 1.32 nia KC(9), KS_8, KS_parenleft, 1034 1.32 nia KC(10), KS_9, KS_parenright, 1035 1.32 nia KC(11), KS_0, KS_equal, 1036 1.32 nia KC(12), KS_apostrophe, KS_question, KS_backslash, 1037 1.32 nia KC(13), KS_questiondown, KS_exclamdown, KS_dead_cedilla, KS_dead_ogonek, 1038 1.32 nia KC(16), KS_q, KS_Q, KS_at, 1039 1.32 nia KC(26), KS_dead_acute, KS_dead_diaeresis, KS_dead_diaeresis, KS_dead_abovering, 1040 1.32 nia KC(27), KS_plus, KS_asterisk, KS_asciitilde, 1041 1.32 nia KC(39), KS_ntilde, KS_Ntilde, KS_asciitilde, 1042 1.32 nia KC(40), KS_braceleft, KS_bracketleft, KS_dead_circumflex, 1043 1.32 nia KC(41), KS_bar, KS_degree, KS_notsign, 1044 1.32 nia KC(43), KS_braceright, KS_bracketright, KS_dead_grave, 1045 1.32 nia KC(51), KS_comma, KS_semicolon, 1046 1.32 nia KC(52), KS_period, KS_colon, 1047 1.32 nia KC(53), KS_minus, KS_underscore, 1048 1.32 nia KC(86), KS_less, KS_greater, 1049 1.32 nia KC(184), KS_Mode_switch, KS_Multi_key, 1050 1.32 nia }; 1051 1.33 nia 1052 1.33 nia static const keysym_t pckbd_keydesc_cf[] = { 1053 1.33 nia /* pos normal shifted altgr shift-altgr */ 1054 1.33 nia KC(2), KS_1, KS_exclam, KS_plusminus, 1055 1.33 nia KC(3), KS_2, KS_quotedbl, KS_at, 1056 1.33 nia KC(4), KS_3, KS_slash, KS_sterling, 1057 1.33 nia KC(5), KS_4, KS_dollar, KS_cent, 1058 1.33 nia KC(6), KS_5, KS_percent, KS_currency, 1059 1.33 nia KC(7), KS_6, KS_question, KS_notsign, 1060 1.33 nia KC(8), KS_7, KS_ampersand, KS_brokenbar, 1061 1.33 nia KC(9), KS_8, KS_asterisk, KS_twosuperior, 1062 1.33 nia KC(10), KS_9, KS_parenleft, KS_threesuperior, 1063 1.33 nia KC(11), KS_0, KS_parenright, KS_onequarter, 1064 1.33 nia KC(12), KS_minus, KS_underscore, KS_onehalf, 1065 1.33 nia KC(13), KS_equal, KS_plus, KS_threequarters, 1066 1.33 nia KC(24), KS_o, KS_O, KS_section, 1067 1.33 nia KC(25), KS_p, KS_P, KS_paragraph, 1068 1.33 nia KC(26), KS_dead_circumflex,KS_dead_circumflex, KS_bracketleft, 1069 1.33 nia KC(27), KS_dead_cedilla, KS_dead_diaeresis, KS_bracketright, 1070 1.33 nia KC(39), KS_semicolon, KS_colon, KS_asciitilde, 1071 1.33 nia KC(40), KS_dead_grave, KS_dead_grave, KS_braceleft, 1072 1.33 nia KC(41), KS_numbersign, KS_bar, KS_backslash, 1073 1.33 nia KC(43), KS_less, KS_greater, KS_braceright, 1074 1.33 nia KC(50), KS_m, KS_M, KS_mu, 1075 1.33 nia KC(51), KS_comma, KS_apostrophe, KS_macron, 1076 1.33 nia KC(52), KS_period, KS_period, KS_hyphen, 1077 1.33 nia KC(53), KS_eacute, KS_Eacute, KS_dead_acute, 1078 1.33 nia KC(57), KS_space, KS_space, KS_nobreakspace, 1079 1.33 nia KC(86), KS_guillemotleft, KS_guillemotright, KS_degree, 1080 1.33 nia KC(184), KS_Mode_switch, KS_Multi_key, 1081 1.33 nia }; 1082 1.36 nia 1083 1.36 nia static const keysym_t pckbd_keydesc_pl[] = { 1084 1.36 nia /* pos normal shifted altgr shift-altgr */ 1085 1.36 nia KC(6), KS_5, KS_percent, KS_currency, KS_currency, 1086 1.36 nia KC(18), KS_e, KS_E, KS_eogonek, KS_Eogonek, 1087 1.36 nia KC(22), KS_u, KS_U, KS_currency, KS_currency, 1088 1.36 nia KC(24), KS_o, KS_O, KS_oacute, KS_Oacute, 1089 1.36 nia KC(30), KS_a, KS_A, KS_aogonek, KS_Aogonek, 1090 1.36 nia KC(31), KS_s, KS_S, KS_sacute, KS_Sacute, 1091 1.36 nia KC(38), KS_l, KS_L, KS_lstroke, KS_Lstroke, 1092 1.36 nia KC(46), KS_c, KS_C, KS_aacute, KS_Aacute, 1093 1.36 nia KC(49), KS_n, KS_N, KS_nacute, KS_Nacute, 1094 1.36 nia KC(44), KS_z, KS_Z, KS_zabovedot, KS_Zabovedot, 1095 1.36 nia KC(45), KS_x, KS_X, KS_zacute, KS_Zacute, 1096 1.36 nia KC(184), KS_Mode_switch, KS_Multi_key, 1097 1.36 nia }; 1098 1.5 hubertf #endif /* WSKBD_USONLY */ 1099 1.1 bjh21 1100 1.1 bjh21 #define KBD_MAP(name, base, map) \ 1101 1.1 bjh21 { name, base, sizeof(map)/sizeof(keysym_t), map } 1102 1.1 bjh21 /* KBD_NULLMAP generates a entry for machine native variant. 1103 1.1 bjh21 the entry will be modified by machine dependent keyboard driver. */ 1104 1.1 bjh21 #define KBD_NULLMAP(name, base) { name, base, 0, 0 } 1105 1.1 bjh21 1106 1.1 bjh21 const struct wscons_keydesc pckbd_keydesctab[] = { 1107 1.1 bjh21 KBD_MAP(KB_US, 0, pckbd_keydesc_us), 1108 1.5 hubertf #ifndef WSKBD_USONLY 1109 1.35 nia KBD_MAP(KB_BEPO, KB_US, pckbd_keydesc_fr_bepo), 1110 1.1 bjh21 KBD_MAP(KB_DE, KB_US, pckbd_keydesc_de), 1111 1.1 bjh21 KBD_MAP(KB_DE | KB_NODEAD, KB_DE, pckbd_keydesc_de_nodead), 1112 1.18 tonnerre KBD_MAP(KB_SG, KB_US, pckbd_keydesc_sg), 1113 1.18 tonnerre KBD_MAP(KB_SG | KB_NODEAD, KB_SG, pckbd_keydesc_sg_nodead), 1114 1.18 tonnerre KBD_MAP(KB_SF, KB_SG, pckbd_keydesc_sf), 1115 1.18 tonnerre KBD_MAP(KB_SF | KB_NODEAD, KB_SF, pckbd_keydesc_sg_nodead), 1116 1.1 bjh21 KBD_MAP(KB_FR, KB_US, pckbd_keydesc_fr), 1117 1.25 mbalmer KBD_MAP(KB_BE, KB_FR, pckbd_keydesc_be), 1118 1.28 nia KBD_MAP(KB_BR, KB_US, pckbd_keydesc_br), 1119 1.28 nia KBD_MAP(KB_BR | KB_NODEAD, KB_BR, pckbd_keydesc_br_nodead), 1120 1.1 bjh21 KBD_MAP(KB_DK, KB_US, pckbd_keydesc_dk), 1121 1.1 bjh21 KBD_MAP(KB_DK | KB_NODEAD, KB_DK, pckbd_keydesc_dk_nodead), 1122 1.31 nia KBD_MAP(KB_IS, KB_US, pckbd_keydesc_is), 1123 1.31 nia KBD_MAP(KB_IS | KB_NODEAD, KB_IS, pckbd_keydesc_is_nodead), 1124 1.1 bjh21 KBD_MAP(KB_IT, KB_US, pckbd_keydesc_it), 1125 1.1 bjh21 KBD_MAP(KB_UK, KB_US, pckbd_keydesc_uk), 1126 1.1 bjh21 KBD_MAP(KB_JP, KB_US, pckbd_keydesc_jp), 1127 1.1 bjh21 KBD_MAP(KB_SV, KB_DK, pckbd_keydesc_sv), 1128 1.1 bjh21 KBD_MAP(KB_SV | KB_NODEAD, KB_SV, pckbd_keydesc_sv_nodead), 1129 1.30 nia KBD_MAP(KB_EE, KB_SV, pckbd_keydesc_ee), 1130 1.30 nia KBD_MAP(KB_EE | KB_NODEAD, KB_EE, pckbd_keydesc_ee_nodead), 1131 1.35 nia KBD_MAP(KB_NEO, KB_US, pckbd_keydesc_de_neo), 1132 1.1 bjh21 KBD_MAP(KB_NO, KB_DK, pckbd_keydesc_no), 1133 1.1 bjh21 KBD_MAP(KB_NO | KB_NODEAD, KB_NO, pckbd_keydesc_no_nodead), 1134 1.36 nia KBD_MAP(KB_PL, KB_US, pckbd_keydesc_pl), 1135 1.36 nia KBD_MAP(KB_PL | KB_SWAPCTRLCAPS,KB_PL, pckbd_keydesc_swapctrlcaps), 1136 1.1 bjh21 KBD_MAP(KB_US | KB_DECLK, KB_US, pckbd_keydesc_us_declk), 1137 1.1 bjh21 KBD_MAP(KB_US | KB_DVORAK, KB_US, pckbd_keydesc_us_dvorak), 1138 1.15 ghen KBD_MAP(KB_US | KB_COLEMAK, KB_US, pckbd_keydesc_us_colemak), 1139 1.1 bjh21 KBD_MAP(KB_US | KB_SWAPCTRLCAPS, KB_US, pckbd_keydesc_swapctrlcaps), 1140 1.1 bjh21 KBD_MAP(KB_US | KB_IOPENER, KB_US, pckbd_keydesc_iopener), 1141 1.1 bjh21 KBD_MAP(KB_JP | KB_SWAPCTRLCAPS, KB_JP, pckbd_keydesc_swapctrlcaps), 1142 1.1 bjh21 KBD_MAP(KB_FR | KB_SWAPCTRLCAPS, KB_FR, pckbd_keydesc_swapctrlcaps), 1143 1.27 nia KBD_MAP(KB_UK | KB_SWAPCTRLCAPS, KB_UK, pckbd_keydesc_swapctrlcaps), 1144 1.1 bjh21 KBD_MAP(KB_US | KB_DVORAK | KB_SWAPCTRLCAPS, KB_US | KB_DVORAK, 1145 1.1 bjh21 pckbd_keydesc_swapctrlcaps), 1146 1.1 bjh21 KBD_MAP(KB_US | KB_IOPENER | KB_SWAPCTRLCAPS, KB_US | KB_IOPENER, 1147 1.1 bjh21 pckbd_keydesc_swapctrlcaps), 1148 1.20 christos KBD_MAP(KB_ES, KB_US, pckbd_keydesc_es), 1149 1.1 bjh21 KBD_MAP(KB_PT, KB_US, pckbd_keydesc_pt), 1150 1.11 christos KBD_MAP(KB_GR, KB_US, pckbd_keydesc_gr), 1151 1.17 mkirby KBD_MAP(KB_CZ, KB_US, pckbd_keydesc_cz), 1152 1.19 ahoka KBD_MAP(KB_HU, KB_US, pckbd_keydesc_hu), 1153 1.20 christos KBD_MAP(KB_NL, KB_US, pckbd_keydesc_nl), 1154 1.21 christos KBD_MAP(KB_NL | KB_NODEAD, KB_NL, pckbd_keydesc_nl_nodead), 1155 1.26 maya KBD_MAP(KB_TR, KB_US, pckbd_keydesc_tr), 1156 1.26 maya KBD_MAP(KB_TR | KB_NODEAD, KB_TR, pckbd_keydesc_tr_nodead), 1157 1.32 nia KBD_MAP(KB_LA, KB_US, pckbd_keydesc_la), 1158 1.33 nia KBD_MAP(KB_CF, KB_US, pckbd_keydesc_cf), 1159 1.5 hubertf #endif /* WSKBD_USONLY */ 1160 1.2 uwe 1161 1.2 uwe /* placeholders */ 1162 1.1 bjh21 KBD_NULLMAP(KB_US | KB_MACHDEP, KB_US), 1163 1.5 hubertf #ifndef WSKBD_USONLY 1164 1.1 bjh21 KBD_NULLMAP(KB_DE | KB_MACHDEP, KB_DE), 1165 1.18 tonnerre KBD_NULLMAP(KB_SG | KB_MACHDEP, KB_SG), 1166 1.6 uwe KBD_NULLMAP(KB_ES | KB_MACHDEP, KB_ES), 1167 1.2 uwe KBD_NULLMAP(KB_FR | KB_MACHDEP, KB_FR), 1168 1.1 bjh21 KBD_NULLMAP(KB_JP | KB_MACHDEP, KB_JP), 1169 1.1 bjh21 KBD_NULLMAP(KB_US | KB_MACHDEP | KB_SWAPCTRLCAPS, 1170 1.1 bjh21 KB_US | KB_SWAPCTRLCAPS), 1171 1.1 bjh21 KBD_NULLMAP(KB_JP | KB_MACHDEP | KB_SWAPCTRLCAPS, 1172 1.1 bjh21 KB_JP | KB_SWAPCTRLCAPS), 1173 1.5 hubertf #endif /* WSKBD_USONLY */ 1174 1.2 uwe 1175 1.1 bjh21 {0, 0, 0, 0} 1176 1.1 bjh21 }; 1177 1.1 bjh21 1178 1.1 bjh21 #undef KBD_MAP 1179 1.1 bjh21 #undef KC 1180