The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/adb/akbdmap.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*      $OpenBSD: akbdmap.h,v 1.11 2023/01/23 09:36:39 nicm Exp $ */
    2 /*      $NetBSD: akbdmap.h,v 1.7 2005/05/05 22:29:41 abs Exp $  */
    3 
    4 /*-
    5  * Copyright (c) 1997 The NetBSD Foundation, Inc.
    6  * All rights reserved.
    7  *
    8  * This code is derived from software contributed to The NetBSD Foundation
    9  * by Juergen Hannken-Illjes.
   10  *
   11  * Redistribution and use in source and binary forms, with or without
   12  * modification, are permitted provided that the following conditions
   13  * are met:
   14  * 1. Redistributions of source code must retain the above copyright
   15  *    notice, this list of conditions and the following disclaimer.
   16  * 2. Redistributions in binary form must reproduce the above copyright
   17  *    notice, this list of conditions and the following disclaimer in the
   18  *    documentation and/or other materials provided with the distribution.
   19  *
   20  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
   21  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
   22  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
   23  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
   24  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
   25  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
   26  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
   27  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
   28  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   29  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   30  * POSSIBILITY OF SUCH DAMAGE.
   31  */
   32 
   33 #ifdef WSDISPLAY_COMPAT_RAWKBD
   34 #include <dev/wscons/wskbdraw.h>
   35 
   36 unsigned char keyboard[128] = {
   37         RAWKEY_a,
   38         RAWKEY_s,
   39         RAWKEY_d,
   40         RAWKEY_f,
   41         RAWKEY_h,
   42         RAWKEY_g,
   43         RAWKEY_z,
   44         RAWKEY_x,
   45         RAWKEY_c,
   46         RAWKEY_v,
   47         RAWKEY_less,
   48         RAWKEY_b,
   49         RAWKEY_q,
   50         RAWKEY_w,
   51         RAWKEY_e,
   52         RAWKEY_r,
   53         RAWKEY_y,
   54         RAWKEY_t,
   55         RAWKEY_1,
   56         RAWKEY_2,
   57         RAWKEY_3,
   58         RAWKEY_4,
   59         RAWKEY_6,
   60         RAWKEY_5,
   61         RAWKEY_equal,
   62         RAWKEY_9,
   63         RAWKEY_7,
   64         RAWKEY_minus,
   65         RAWKEY_8,
   66         RAWKEY_0,
   67         RAWKEY_bracketright,
   68         RAWKEY_o,
   69         RAWKEY_u,
   70         RAWKEY_bracketleft,
   71         RAWKEY_i,
   72         RAWKEY_p,
   73         RAWKEY_Return,
   74         RAWKEY_l,
   75         RAWKEY_j,
   76         RAWKEY_apostrophe,
   77         RAWKEY_k,
   78         RAWKEY_semicolon,
   79         RAWKEY_backslash,
   80         RAWKEY_comma,
   81         RAWKEY_slash,
   82         RAWKEY_n,
   83         RAWKEY_m,
   84         RAWKEY_period,
   85         RAWKEY_Tab,
   86         RAWKEY_space,
   87         RAWKEY_grave,
   88         RAWKEY_BackSpace,
   89         RAWKEY_KP_Enter,
   90         RAWKEY_Escape,
   91         RAWKEY_Control_L,
   92         219,                    /* Command -> Win */
   93         RAWKEY_Shift_L,
   94         RAWKEY_Caps_Lock,
   95         RAWKEY_Alt_L,           /* Option -> Alt */
   96         RAWKEY_Left,
   97         RAWKEY_Right,
   98         RAWKEY_Down,
   99         RAWKEY_Up,
  100         0, /* Fn */
  101         0,
  102         RAWKEY_KP_Delete,
  103         0,
  104         RAWKEY_KP_Multiply,
  105         0,
  106         RAWKEY_KP_Add,
  107         0,
  108         RAWKEY_Num_Lock,
  109         0,
  110         0,
  111         0,
  112         RAWKEY_KP_Divide,
  113         RAWKEY_KP_Enter,
  114         0,
  115         RAWKEY_KP_Subtract,
  116         0,
  117         0,
  118         RAWKEY_KP_Equal,
  119         RAWKEY_KP_Insert,
  120         RAWKEY_KP_End,
  121         RAWKEY_KP_Down,
  122         RAWKEY_KP_Next,
  123         RAWKEY_KP_Left,
  124         RAWKEY_KP_Begin,
  125         RAWKEY_KP_Right,
  126         RAWKEY_KP_Home,
  127         0,
  128         RAWKEY_KP_Up,
  129         RAWKEY_KP_Prior,
  130         0,
  131         0,
  132         RAWKEY_KP_Delete,
  133         RAWKEY_f5,
  134         RAWKEY_f6,
  135         RAWKEY_f7,
  136         RAWKEY_f3,
  137         RAWKEY_f8,
  138         RAWKEY_f9,
  139         0,
  140         RAWKEY_f11,
  141         0,
  142         RAWKEY_Print_Screen,
  143         RAWKEY_KP_Enter,
  144         RAWKEY_Hold_Screen,
  145         0,
  146         RAWKEY_f10,
  147         0,
  148         RAWKEY_f12,
  149         0,
  150         RAWKEY_Pause,
  151         RAWKEY_Insert,
  152         RAWKEY_Home,
  153         RAWKEY_Prior,
  154         RAWKEY_Delete,
  155         RAWKEY_f4,
  156         RAWKEY_End,
  157         RAWKEY_f2,
  158         RAWKEY_Next,
  159         RAWKEY_f1,
  160         0,
  161         0,
  162         0,
  163         0,
  164         0
  165 };
  166 #endif /* WSDISPLAY_COMPAT_RAWKBD */
  167 
  168 /* XXX This list is incomplete. */
  169 
  170 #define KC(n) KS_KEYCODE(n)
  171 
  172 static const keysym_t akbd_keydesc_us[] = {
  173 /*  pos      command            normal          shifted */
  174     KC(0),                      KS_a,
  175     KC(1),                      KS_s,
  176     KC(2),                      KS_d,
  177     KC(3),                      KS_f,
  178     KC(4),                      KS_h,
  179     KC(5),                      KS_g,
  180     KC(6),                      KS_z,
  181     KC(7),                      KS_x,
  182     KC(8),                      KS_c,
  183     KC(9),                      KS_v,
  184 
  185     KC(11),                     KS_b,
  186     KC(12),                     KS_q,
  187     KC(13),                     KS_w,
  188     KC(14),                     KS_e,
  189     KC(15),                     KS_r,
  190     KC(16),                     KS_y,
  191     KC(17),                     KS_t,
  192     KC(18),                     KS_1,           KS_exclam,
  193     KC(19),                     KS_2,           KS_at,
  194     KC(20),                     KS_3,           KS_numbersign,
  195     KC(21),                     KS_4,           KS_dollar,
  196     KC(22),                     KS_6,           KS_asciicircum,
  197     KC(23),                     KS_5,           KS_percent,
  198     KC(24),                     KS_equal,       KS_plus,
  199     KC(25),                     KS_9,           KS_parenleft,
  200     KC(26),                     KS_7,           KS_ampersand,
  201     KC(27),                     KS_minus,       KS_underscore,
  202     KC(28),                     KS_8,           KS_asterisk,
  203     KC(29),                     KS_0,           KS_parenright,
  204     KC(30),                     KS_bracketright, KS_braceright,
  205     KC(31),                     KS_o,
  206     KC(32),                     KS_u,
  207     KC(33),                     KS_bracketleft, KS_braceleft,
  208     KC(34),                     KS_i,
  209     KC(35),                     KS_p,
  210     KC(36),                     KS_Return,
  211     KC(37),                     KS_l,
  212     KC(38),                     KS_j,
  213     KC(39),                     KS_apostrophe,  KS_quotedbl,
  214     KC(40),                     KS_k,
  215     KC(41),                     KS_semicolon,   KS_colon,
  216     KC(42),                     KS_backslash,   KS_bar,
  217     KC(43),                     KS_comma,       KS_less,
  218     KC(44),                     KS_slash,       KS_question,
  219     KC(45),                     KS_n,
  220     KC(46),                     KS_m,
  221     KC(47),                     KS_period,      KS_greater,
  222     KC(48),                     KS_Tab,         KS_Backtab,
  223     KC(49),                     KS_space,
  224     KC(50),                     KS_grave,       KS_asciitilde,
  225     KC(51),  KS_Cmd_ResetEmul,  KS_Delete,
  226     KC(52),                     KS_KP_Enter,
  227     KC(53),  KS_Cmd_Debugger,   KS_Escape,
  228     KC(54),     KS_Cmd1,        KS_Control_L,
  229     KC(55),     KS_Cmd2,        KS_Alt_L,       /* Command */
  230     KC(56),                     KS_Shift_L,
  231     KC(57),                     KS_Caps_Lock,
  232     KC(58),     KS_Cmd2,        KS_Alt_R,       /* Option */
  233     KC(59),                     KS_Left,
  234     KC(60),                     KS_Right,
  235     KC(61),                     KS_Down,
  236     KC(62),                     KS_Up,
  237 
  238     KC(65),                     KS_KP_Decimal,
  239     KC(67),                     KS_KP_Multiply,
  240     KC(69),                     KS_KP_Add,
  241     KC(71),                     KS_Num_Lock,    KS_Clear,
  242     KC(75),                     KS_KP_Divide,
  243     KC(76),                     KS_KP_Enter,
  244     KC(78),                     KS_KP_Subtract,
  245 
  246     KC(81),                     KS_KP_Equal,
  247     KC(82),                     KS_KP_0,        KS_KP_Insert,
  248     KC(83),                     KS_KP_1,        KS_KP_End,
  249     KC(84),                     KS_KP_2,        KS_KP_Down,
  250     KC(85),                     KS_KP_3,        KS_KP_Next,
  251     KC(86),                     KS_KP_4,        KS_KP_Left,
  252     KC(87),                     KS_KP_5,        KS_KP_Begin,
  253     KC(88),                     KS_KP_6,        KS_KP_Right,
  254     KC(89),                     KS_KP_7,        KS_KP_Home,
  255 
  256     KC(91),                     KS_KP_8,        KS_KP_Up,
  257     KC(92),                     KS_KP_9,        KS_KP_Prior,
  258 
  259     KC(95),                     KS_KP_Decimal,  KS_KP_Delete,
  260     KC(96), KS_Cmd_Screen4,     KS_f5,
  261     KC(97), KS_Cmd_Screen5,     KS_f6,
  262     KC(98), KS_Cmd_Screen6,     KS_f7,
  263     KC(99), KS_Cmd_Screen2,     KS_f3,
  264     KC(100), KS_Cmd_Screen7,    KS_f8,
  265 
  266     KC(101), KS_Cmd_Screen8,    KS_f9,
  267 
  268     KC(103), KS_Cmd_Screen10,   KS_f11,
  269 
  270     KC(105),                    KS_f13,         KS_Print_Screen,
  271     KC(106),                    KS_KP_Enter,
  272     KC(107),                    KS_f14,         KS_Hold_Screen,
  273 
  274     KC(109), KS_Cmd_Screen9,    KS_f10,
  275 
  276     KC(111), KS_Cmd_Screen11,   KS_f12,
  277 
  278     KC(113),                    KS_f15,         KS_Pause,
  279     KC(114),                    KS_Insert,
  280     KC(115),                    KS_Home,
  281     KC(116), KS_Cmd_ScrollBack, KS_Prior,
  282     KC(117), KS_Cmd_ResetEmul,  KS_Delete,
  283     KC(118), KS_Cmd_Screen3,    KS_f4,
  284     KC(119),                    KS_End,
  285     KC(120), KS_Cmd_Screen1,    KS_f2,
  286     KC(121), KS_Cmd_ScrollFwd,  KS_Next,
  287     KC(122), KS_Cmd_Screen0,    KS_f1,
  288 
  289     KC(127),    KS_Cmd_Debugger,
  290 };
  291 
  292 static const keysym_t akbd_keydesc_fr[] = {
  293 /*  pos         normal          shifted         altgr           shift-altgr */
  294     KC(0),      KS_q,
  295     KC(1),      KS_s,           KS_S,           KS_Ograve,
  296     KC(4),      KS_h,           KS_H,           KS_Igrave,      KS_Icircumflex,
  297     KC(6),      KS_w,           KS_W,           KS_less,        KS_greater,
  298     KC(8),      KS_c,           KS_C,           KS_copyright,   KS_cent,
  299     KC(10),     KS_less,        KS_greater,
  300     KC(11),     KS_b,           KS_B,           KS_ssharp,
  301     KC(12),     KS_a,           KS_A,           KS_ae,          KS_AE,
  302     KC(13),     KS_z,           KS_Z,           KS_Acircumflex, KS_Aring,
  303     KC(14),     KS_e,           KS_E,           KS_ecircumflex, KS_Ecircumflex,
  304     KC(15),     KS_r,           KS_R,           KS_registered,  KS_comma,
  305     KC(16),     KS_y,           KS_Y,           KS_Uacute,
  306     KC(18),     KS_ampersand,   KS_1,           KS_voidSymbol,  KS_dead_acute,
  307     KC(19),     KS_eacute,      KS_2,           KS_ediaeresis,
  308     KC(20),     KS_quotedbl,    KS_3,
  309     KC(21),     KS_apostrophe,  KS_4,           KS_braceleft,   KS_bracketleft,
  310     KC(22),     KS_section,     KS_6,           KS_paragraph,   KS_aring,
  311     KC(23),     KS_parenleft,   KS_5,           KS_braceleft,   KS_bracketleft,
  312     KC(24),     KS_minus,       KS_underscore,  KS_braceright,
  313     KC(25),     KS_ccedilla,    KS_9,           KS_Ccedilla,    KS_Aacute,
  314     KC(26),     KS_egrave,      KS_7,           KS_guillemotleft,
  315                                                 KS_guillemotright,
  316     KC(27),     KS_parenright,  KS_degree,      KS_braceright,  KS_bracketright,
  317     KC(28),     KS_exclam,      KS_8,           KS_exclamdown,  KS_Ucircumflex,
  318     KC(29),     KS_agrave,      KS_0,           KS_oslash,      KS_Ooblique,
  319     KC(30),     KS_dollar,      KS_asterisk,    KS_cent,        KS_yen,
  320     KC(33),     KS_dead_circumflex, KS_dead_diaeresis,
  321                                                 KS_ocircumflex, KS_Ocircumflex,
  322     KC(34),     KS_i,           KS_I,           KS_icircumflex, KS_idiaeresis,
  323     KC(37),     KS_l,           KS_L,           KS_notsign,     KS_bar,
  324     KC(38),     KS_j,           KS_J,           KS_Idiaeresis,  KS_Iacute,
  325     KC(39),     KS_ugrave,      KS_percent,     KS_Ugrave,
  326     KC(40),     KS_k,           KS_K,           KS_Egrave,      KS_Ediaeresis,
  327     KC(41),     KS_m,           KS_M,           KS_mu,          KS_Oacute,
  328     KC(42),     KS_dead_grave,  KS_sterling,    KS_at,          KS_numbersign,
  329     KC(43),     KS_semicolon,   KS_period,
  330     KC(44),     KS_equal,       KS_plus,        KS_voidSymbol,  KS_plusminus,
  331     KC(45),     KS_n,           KS_N,           KS_dead_tilde,
  332     KC(46),     KS_comma,       KS_question,    KS_voidSymbol,  KS_questiondown,
  333     KC(47),     KS_colon,       KS_slash,       KS_division,    KS_backslash,
  334     KC(50),     KS_at,          KS_numbersign,
  335     KC(58),     KS_Mode_switch, KS_Multi_key,           /* Option */
  336 };
  337 
  338 static const keysym_t akbd_keydesc_fr_nodead[] = {
  339     KC(18),     KS_ampersand,   KS_1,           KS_voidSymbol,  KS_acute,
  340     KC(33),     KS_asciicircum, KS_diaeresis,   KS_ocircumflex, KS_Ocircumflex,
  341     KC(42),     KS_grave,       KS_sterling,    KS_at,          KS_numbersign,
  342     KC(45),     KS_n,           KS_N,           KS_asciitilde,
  343 };
  344 
  345 static const keysym_t akbd_keydesc_jp[] = {
  346 /*  pos      command            normal          shifted */
  347     KC(19),                     KS_2,           KS_quotedbl,
  348     KC(22),                     KS_6,           KS_ampersand,
  349     KC(24),                     KS_asciicircum, KS_asciitilde,
  350     KC(25),                     KS_9,           KS_parenright,
  351     KC(26),                     KS_7,           KS_apostrophe,
  352     KC(27),                     KS_minus,       KS_equal,
  353     KC(28),                     KS_8,           KS_parenleft,
  354     KC(29),                     KS_0,
  355     KC(30),                     KS_bracketleft, KS_braceleft,
  356     KC(33),                     KS_at,          KS_grave,
  357     KC(39),                     KS_colon,       KS_asterisk,
  358 
  359     KC(41),                     KS_semicolon,   KS_plus,
  360     KC(42),                     KS_bracketright,KS_braceright,
  361     KC(93),                     KS_backslash,   KS_bar,
  362     KC(94),                     KS_underscore,
  363 };
  364 
  365 static const keysym_t akbd_keydesc_uk[] = {
  366 /*  pos         normal          shifted         altgr           shift-altgr */
  367     KC(20),     KS_3,           KS_sterling,    KS_numbersign,
  368     KC(50),     KS_section,     KS_plusminus,
  369     KC(58),     KS_Mode_switch, KS_Multi_key,           /* Option */
  370 };
  371 
  372 static const keysym_t akbd_keydesc_sv[] = {
  373 /*  pos         normal          shifted         altgr           shift-altgr */
  374     KC(10),     KS_less,        KS_greater,     KS_bar,
  375     KC(19),     KS_2,           KS_quotedbl,    KS_at,
  376     KC(21),     KS_4,           KS_dollar,
  377     KC(22),     KS_6,           KS_ampersand,
  378     KC(24),     KS_dead_acute,  KS_dead_grave,
  379     KC(25),     KS_9,           KS_parenright,  KS_bracketright,
  380     KC(26),     KS_7,           KS_slash,       KS_braceleft,
  381     KC(27),     KS_plus,        KS_question,    KS_backslash,
  382     KC(28),     KS_8,           KS_parenleft,   KS_bracketleft,
  383     KC(29),     KS_0,           KS_equal,       KS_braceright,
  384     KC(30),     KS_dead_diaeresis,KS_dead_circumflex,KS_dead_tilde,
  385     KC(33),     KS_aring,
  386     KC(39),     KS_adiaeresis,
  387     KC(41),     KS_odiaeresis,
  388     KC(42),     KS_apostrophe,  KS_asterisk,
  389     KC(43),     KS_comma,       KS_semicolon,
  390     KC(44),     KS_minus,       KS_underscore,
  391     KC(47),     KS_period,      KS_colon,
  392     KC(50),     KS_section,     KS_degree,
  393     KC(58),     KS_Mode_switch, KS_Multi_key,           /* Option */
  394 };
  395 
  396 static const keysym_t akbd_keydesc_sv_nodead[] = {
  397 /*  pos         normal          shifted         altgr           shift-altgr */
  398     KC(24),     KS_apostrophe,  KS_grave,
  399     KC(30),     KS_diaeresis,   KS_asciicircum, KS_asciitilde,
  400 };
  401 
  402 static const keysym_t akbd_keydesc_de[] = {
  403 /*  pos         normal          shifted         altgr           shift-altgr */
  404     KC(0),      KS_a,           KS_A,           KS_aring,       KS_Aring,
  405     KC(1),      KS_s,           KS_S,           KS_voidSymbol,  KS_Iacute,
  406     KC(3),      KS_f,           KS_F,           KS_voidSymbol,  KS_Idiaeresis,
  407     KC(4),      KS_h,           KS_H,           KS_ordfeminine, KS_Oacute,
  408     KC(5),      KS_g,           KS_G,           KS_copyright,   KS_Igrave,
  409     KC(6),      KS_y,           KS_Y,           KS_yen,
  410     KC(7),      KS_x,           KS_X,           KS_voidSymbol,  KS_Ugrave,
  411     KC(8),      KS_c,           KS_C,           KS_ccedilla,    KS_Ccedilla,
  412     KC(10),     KS_less,        KS_greater,
  413     KC(12),     KS_q,           KS_Q,           KS_guillemotleft,KS_guillemotright,
  414     KC(15),     KS_r,           KS_R,           KS_registered,  KS_cedilla,
  415     KC(16),     KS_z,           KS_Z,
  416     KC(18),     KS_1,           KS_exclam,      KS_exclamdown,  KS_notsign,
  417     KC(19),     KS_2,           KS_quotedbl,
  418     KC(20),     KS_3,           KS_section,     KS_paragraph,   KS_numbersign,
  419     KC(21),     KS_4,           KS_dollar,      KS_cent,        KS_sterling,
  420     KC(22),     KS_6,           KS_ampersand,   KS_bracketright,KS_dead_circumflex,
  421     KC(23),     KS_5,           KS_percent,     KS_bracketleft,
  422     KC(24),     KS_dead_acute,  KS_dead_grave,  KS_apostrophe,
  423     KC(25),     KS_9,           KS_parenright,  KS_braceright,  KS_periodcentered,
  424     KC(26),     KS_7,           KS_slash,       KS_bar,         KS_backslash,
  425     KC(27),     KS_ssharp,      KS_question,    KS_questiondown,
  426     KC(28),     KS_8,           KS_parenleft,   KS_braceleft,
  427     KC(29),     KS_0,           KS_equal,       KS_voidSymbol,  KS_macron,
  428     KC(30),     KS_plus,        KS_asterisk,    KS_plusminus,
  429     KC(31),     KS_o,           KS_O,           KS_oslash,      KS_Ooblique,
  430     KC(32),     KS_u,           KS_U,           KS_dead_diaeresis,KS_Aacute,
  431     KC(33),     KS_udiaeresis,  KS_Udiaeresis,  KS_voidSymbol,  KS_degree,
  432     KC(34),     KS_i,           KS_I,           KS_voidSymbol,  KS_Ucircumflex,
  433     KC(37),     KS_l,           KS_L,           KS_at,
  434     KC(38),     KS_j,           KS_J,           KS_masculine,
  435     KC(39),     KS_adiaeresis,  KS_Adiaeresis,  KS_ae,          KS_AE,
  436     KC(41),     KS_odiaeresis,  KS_Odiaeresis,
  437     KC(42),     KS_numbersign,  KS_apostrophe,
  438     KC(43),     KS_comma,       KS_semicolon,
  439     KC(44),     KS_minus,       KS_underscore,
  440     KC(45),     KS_n,           KS_N,           KS_dead_tilde,
  441     KC(46),     KS_m,           KS_M,           KS_mu,
  442     KC(47),     KS_period,      KS_colon,
  443     KC(50),     KS_dead_circumflex,KS_degree,
  444     KC(58),     KS_Mode_switch, KS_Multi_key,           /* Option */
  445 };
  446 
  447 static const keysym_t akbd_keydesc_de_nodead[] = {
  448 /*  pos         normal          shifted         altgr           shift-altgr */
  449     KC(22),     KS_6,           KS_ampersand,   KS_bracketright,KS_asciicircum,
  450     KC(24),     KS_acute,       KS_grave,       KS_apostrophe,
  451     KC(32),     KS_u,           KS_U,           KS_diaeresis,   KS_Aacute,
  452     KC(45),     KS_n,           KS_N,           KS_asciitilde,
  453     KC(50),     KS_asciicircum, KS_degree,
  454 };
  455 
  456 static const keysym_t akbd_keydesc_sf[] = {
  457 /*  pos         normal          shifted         altgr           shift-altgr */
  458     KC(6),      KS_y,
  459     KC(10),     KS_less,        KS_greater,
  460     KC(16),     KS_z,
  461     KC(18),     KS_plus,        KS_1,
  462     KC(19),     KS_quotedbl,    KS_2,
  463     KC(20),     KS_asterisk,    KS_3,
  464     KC(21),     KS_ccedilla,    KS_4,           KS_Ccedilla,
  465     KC(22),     KS_ampersand,   KS_6,
  466     KC(23),     KS_percent,     KS_5,
  467     KC(24),     KS_dead_circumflex,KS_grave,
  468     KC(25),     KS_parenright,  KS_9,
  469     KC(26),     KS_slash,       KS_7,
  470     KC(27),     KS_apostrophe,  KS_question,
  471     KC(28),     KS_parenleft,   KS_8,
  472     KC(29),     KS_equal,       KS_0,
  473     KC(30),     KS_dead_diaeresis,KS_exclam,
  474     KC(33),     KS_egrave,      KS_udiaeresis,
  475     KC(39),     KS_agrave,      KS_adiaeresis,
  476     KC(41),     KS_eacute,      KS_odiaeresis,
  477     KC(42),     KS_dollar,      KS_sterling,
  478     KC(43),     KS_period,      KS_colon,
  479     KC(46),     KS_comma,       KS_semicolon,
  480     KC(47),     KS_minus,       KS_underscore,
  481     KC(50),     KS_paragraph,   KS_degree,
  482 };
  483 
  484 static const keysym_t akbd_keydesc_es[] = {
  485 /*  pos         normal          shifted         altgr           shift-altgr */
  486     KC(10),     KS_less,        KS_greater,
  487     KC(18),     KS_1,           KS_exclam,      KS_bar,
  488     KC(19),     KS_2,           KS_quotedbl,    KS_at,
  489     KC(20),     KS_3,           KS_periodcentered, KS_numbersign,
  490     KC(21),     KS_4,           KS_dollar,      KS_asciitilde,
  491     KC(22),     KS_6,           KS_ampersand,   KS_notsign,
  492     KC(23),     KS_5,           KS_percent,
  493     KC(24),     KS_exclamdown,  KS_questiondown,
  494     KC(25),     KS_9,           KS_parenright,
  495     KC(26),     KS_7,           KS_slash,
  496     KC(27),     KS_apostrophe,  KS_question,
  497     KC(28),     KS_8,           KS_parenleft,
  498     KC(29),     KS_0,           KS_equal,
  499     KC(30),     KS_plus,        KS_asterisk,    KS_bracketright,
  500     KC(33),     KS_dead_grave,  KS_dead_circumflex, KS_bracketleft,
  501     KC(39),     KS_dead_acute,  KS_dead_diaeresis, KS_braceleft,
  502     KC(41),     KS_ntilde,
  503     KC(42),     KS_ccedilla,    KS_Ccedilla,    KS_braceright,
  504     KC(43),     KS_comma,       KS_semicolon,
  505     KC(44),     KS_minus,       KS_underscore,
  506     KC(47),     KS_period,      KS_colon,
  507     KC(50),     KS_degree,      KS_ordfeminine, KS_backslash,
  508     KC(58),     KS_Mode_switch, KS_Multi_key,           /* Option */
  509 };
  510 
  511 static const keysym_t akbd_keydesc_pt[] = {
  512 /*  pos         normal          shifted         altgr           shift-altgr */
  513     KC(7),      KS_x,           KS_X,           KS_guillemotleft, KS_guillemotright,
  514     KC(10),     KS_less,        KS_greater,
  515     KC(19),     KS_2,           KS_quotedbl,    KS_at,
  516     KC(20),     KS_3,           KS_numbersign,  KS_sterling,
  517     KC(22),     KS_6,           KS_ampersand,
  518     KC(24),     KS_plus,        KS_asterisk,
  519     KC(25),     KS_9,           KS_parenright,  KS_bracketright, KS_braceright,
  520     KC(26),     KS_7,           KS_slash,
  521     KC(27),     KS_apostrophe,  KS_question,
  522     KC(28),     KS_8,           KS_parenleft,   KS_bracketleft, KS_braceleft,
  523     KC(29),     KS_0,           KS_equal,
  524     KC(30),     KS_dead_acute,  KS_dead_grave,
  525     KC(33),     KS_masculine,   KS_ordfeminine,
  526     KC(39),     KS_dead_tilde,  KS_dead_circumflex,
  527     KC(41),     KS_ccedilla,    KS_Ccedilla,
  528     KC(43),     KS_comma,       KS_semicolon,
  529     KC(44),     KS_minus,       KS_underscore,
  530     KC(47),     KS_period,      KS_colon,
  531     KC(50),     KS_section,     KS_plusminus,
  532     KC(58),     KS_Mode_switch, KS_Multi_key,           /* Option */
  533 };
  534 
  535 static const keysym_t akbd_keydesc_us_dvorak[] = {
  536 /*  pos      command            normal          shifted */
  537     KC(1),                      KS_o,
  538     KC(2),                      KS_e,
  539     KC(3),                      KS_u,
  540     KC(4),                      KS_d,
  541     KC(5),                      KS_i,
  542     KC(6),                      KS_semicolon, KS_colon,
  543     KC(7),                      KS_q,
  544     KC(8),                      KS_j,
  545     KC(9),                      KS_k,
  546     KC(11),                     KS_x,
  547     KC(12),                     KS_apostrophe, KS_quotedbl,
  548     KC(13),                     KS_comma, KS_less,
  549     KC(14),                     KS_period, KS_greater,
  550     KC(15),                     KS_p,
  551     KC(16),                     KS_f,
  552     KC(17),                     KS_y,
  553     KC(24),                     KS_bracketright, KS_braceright,
  554     KC(27),                     KS_bracketleft, KS_braceleft,
  555     KC(30),                     KS_equal, KS_plus,
  556     KC(31),                     KS_r,
  557     KC(32),                     KS_g,
  558     KC(33),                     KS_slash, KS_question,
  559     KC(34),                     KS_c,
  560     KC(35),                     KS_l,
  561     KC(37),                     KS_n,
  562     KC(38),                     KS_h,
  563     KC(39),                     KS_minus, KS_underscore,
  564     KC(40),                     KS_t,
  565     KC(41),                     KS_s,
  566     KC(43),                     KS_w,
  567     KC(44),                     KS_z,
  568     KC(45),                     KS_b,
  569     KC(47),                     KS_v,
  570 };
  571 
  572 static const keysym_t akbd_keydesc_sg[] = {
  573 /*  pos         normal          shifted         altgr           shift-altgr */
  574     KC(0),      KS_a,           KS_A,           KS_aring,       KS_Aring,
  575     KC(1),      KS_s,           KS_S,           KS_ssharp,      KS_voidSymbol,
  576     KC(3),      KS_f,           KS_F,           KS_section,     KS_voidSymbol,
  577     KC(4),      KS_h,           KS_H,           KS_ordfeminine, KS_periodcentered,
  578     KC(5),      KS_g,           KS_G,           KS_at,          KS_comma,
  579     KC(6),      KS_y,           KS_Y,           KS_yen,         KS_ydiaeresis,
  580     KC(7),      KS_x,           KS_X,           KS_voidSymbol,  KS_ydiaeresis,
  581     KC(8),      KS_c,           KS_C,           KS_copyright,
  582     KC(10),     KS_less,        KS_greater,
  583     KC(12),     KS_q,           KS_Q,
  584     KC(15),     KS_r,           KS_R,           KS_registered,  KS_Egrave,
  585     KC(16),     KS_z,           KS_Z,           KS_voidSymbol,  KS_Aacute,
  586     KC(18),     KS_1,           KS_plus,        KS_plusminus,   KS_onesuperior,
  587     KC(19),     KS_2,           KS_quotedbl,    KS_twosuperior,
  588     KC(20),     KS_3,           KS_asterisk,    KS_numbersign,  KS_threesuperior,
  589     KC(21),     KS_4,           KS_ccedilla,    KS_Ccedilla,
  590     KC(22),     KS_6,           KS_ampersand,   KS_bracketright,
  591     KC(23),     KS_5,           KS_percent,     KS_bracketleft,
  592     KC(24),     KS_dead_circumflex,KS_dead_grave,KS_dead_acute, KS_asciitilde,
  593     KC(25),     KS_9,           KS_parenright,  KS_braceright,  KS_Ocircumflex,
  594     KC(26),     KS_7,           KS_slash,       KS_bar,         KS_backslash,
  595     KC(27),     KS_apostrophe,  KS_question,    KS_questiondown,
  596     KC(28),     KS_8,           KS_parenleft,   KS_braceleft,   KS_Ograve,
  597     KC(29),     KS_0,           KS_equal,       KS_voidSymbol,  KS_Uacute,
  598     KC(30),     KS_dead_diaeresis,KS_exclam,    KS_bracketright,
  599     KC(31),     KS_o,           KS_O,           KS_oslash,
  600     KC(32),     KS_u,           KS_U,           KS_degree,      KS_Ugrave,
  601     KC(33),     KS_udiaeresis,  KS_egrave,      KS_bracketleft,
  602     KC(34),     KS_i,           KS_I,           KS_exclamdown,
  603     KC(37),     KS_l,           KS_L,           KS_notsign,
  604     KC(38),     KS_j,           KS_J,           KS_masculine,
  605     KC(39),     KS_adiaeresis,  KS_agrave,      KS_ae,          KS_AE,
  606     KC(41),     KS_odiaeresis,  KS_eacute,      KS_cent,
  607     KC(42),     KS_dollar,      KS_sterling,    KS_paragraph,
  608     KC(43),     KS_comma,       KS_semicolon,   KS_guillemotleft,KS_guillemotright,
  609     KC(44),     KS_minus,       KS_underscore,
  610     KC(45),     KS_n,           KS_N,           KS_dead_tilde,
  611     KC(46),     KS_m,           KS_M,           KS_mu,
  612     KC(47),     KS_period,      KS_colon,       KS_voidSymbol,  KS_division,
  613     KC(50),     KS_section,     KS_degree,
  614     KC(58),     KS_Mode_switch, KS_Multi_key,           /* Option */
  615 };
  616 
  617 static const keysym_t akbd_keydesc_sg_nodead[] = {
  618 /*  pos         normal          shifted         altgr           shift-altgr */
  619     KC(24),     KS_asciicircum, KS_grave,       KS_acute,       KS_asciitilde,
  620     KC(30),     KS_diaeresis,   KS_exclam,      KS_bracketright,KS_braceright,
  621     KC(45),     KS_n,           KS_N,           KS_asciitilde,
  622 };
  623  
  624 #define KBD_MAP(name, base, map) \
  625                         { name, base, sizeof(map)/sizeof(keysym_t), map }
  626 
  627 const struct wscons_keydesc akbd_keydesctab[] = {
  628         KBD_MAP(KB_US,                  0,      akbd_keydesc_us),
  629         KBD_MAP(KB_US | KB_DVORAK,      KB_US,  akbd_keydesc_us_dvorak),
  630         KBD_MAP(KB_DE,                  KB_US,  akbd_keydesc_de),
  631         KBD_MAP(KB_DE | KB_NODEAD,      KB_DE,  akbd_keydesc_de_nodead),
  632         KBD_MAP(KB_ES,                  KB_US,  akbd_keydesc_es),
  633         KBD_MAP(KB_FR,                  KB_US,  akbd_keydesc_fr),
  634         KBD_MAP(KB_FR | KB_NODEAD,      KB_FR,  akbd_keydesc_fr_nodead),
  635         KBD_MAP(KB_JP,                  KB_US,  akbd_keydesc_jp),
  636         KBD_MAP(KB_PT,                  KB_US,  akbd_keydesc_pt),
  637         KBD_MAP(KB_SF,                  KB_US,  akbd_keydesc_sf),
  638         KBD_MAP(KB_SG,                  KB_US,  akbd_keydesc_sg),
  639         KBD_MAP(KB_SG | KB_NODEAD,      KB_SG,  akbd_keydesc_sg_nodead),
  640         KBD_MAP(KB_SV,                  KB_US,  akbd_keydesc_sv),
  641         KBD_MAP(KB_SV | KB_NODEAD,      KB_SV,  akbd_keydesc_sv_nodead),
  642         KBD_MAP(KB_UK,                  KB_US,  akbd_keydesc_uk),
  643         {0, 0, 0, 0}
  644 };
  645 
  646 #undef KBD_MAP
  647 #undef KC

Cache object: dbfdcca5858b1a82c7bfe791f04ba750


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.