KC(0x29), KS_asciicircum, KS_asciitilde, KC(0x2a), KS_yen, KS_bar, KC(0x40), KS_at, KS_grave, KC(0x41), KS_bracketleft, KS_braceleft, KC(0x56), KS_semicolon, KS_plus, KC(0x57), KS_colon, KS_asterisk, KC(0x58), KS_bracketright,KS_braceright, KC(0x7c), KS_backslash, KS_underscore, }; #define KBD_MAP(name, base, map) \ { name, base, sizeof(map)/sizeof(keysym_t), map } /* Supported type 4 keyboard layouts */ const struct wscons_keydesc sunkbd_keydesctab[] = { KBD_MAP(KB_US, 0, sunkbd_keydesc_us), KBD_MAP(KB_BE, KB_US, sunkbd_keydesc_befr), KBD_MAP(KB_DE, KB_US, sunkbd_keydesc_de), KBD_MAP(KB_DK, KB_US, sunkbd_keydesc_dk), KBD_MAP(KB_ES, KB_US, sunkbd_keydesc_es), KBD_MAP(KB_FR, KB_US, sunkbd_keydesc_befr), KBD_MAP(KB_IT, KB_US, sunkbd_keydesc_it), KBD_MAP(KB_NL, KB_US, sunkbd_keydesc_nl), KBD_MAP(KB_NO, KB_US, sunkbd_keydesc_no), KBD_MAP(KB_PT, KB_US, sunkbd_keydesc_pt), KBD_MAP(KB_SF, KB_US, sunkbd_keydesc_sf), KBD_MAP(KB_SG, KB_US, sunkbd_keydesc_sg), KBD_MAP(KB_SV, KB_US, sunkbd_keydesc_sv), KBD_MAP(KB_SV | KB_NODEAD, KB_SV, sunkbd_keydesc_sv_nodead), KBD_MAP(KB_UK, KB_US, sunkbd_keydesc_uk), {0, 0, 0, 0},
KC(99), KS_dead_circumflex, KS_dead_diaeresis, KC(100), KS_grave, KS_asterisk, KC(101), KS_less, KS_greater, KC(107), KS_m, KC(108), KS_ugrave, KS_percent, KC(112), KS_comma, KS_question, KC(113), KS_semicolon, KS_period, KC(114), KS_colon, KS_slash, KC(115), KS_equal, KS_plus, }; #define KBD_MAP(name, base, map) \ { name, base, sizeof(map)/sizeof(keysym_t), map } const struct wscons_keydesc hilkbd_keydesctab[] = { KBD_MAP(KB_US, 0, hilkbd_keydesc_us), KBD_MAP(KB_FR, KB_US, hilkbd_keydesc_fr), KBD_MAP(KB_UK, KB_US, hilkbd_keydesc_uk), KBD_MAP(KB_SV, KB_US, hilkbd_keydesc_sv), {0, 0, 0, 0}, }; /* * Keyboard ID to layout table */ const kbd_t hilkbd_layouts[MAXHILKBDLAYOUT] = { -1, /* 00 Undefined or custom layout */ -1, /* 01 Undefined */ -1, /* 02 Japanese */ -1, /* 03 Swiss french */ -1, /* 04 Portuguese */
}; static const keysym_t pckbd_keydesc_nl_nodead[] = { /* pos normal shifted altgr shift-altgr */ KC(13), KS_degree, KS_asciitilde, KS_cedilla, KC(26), KS_quotedbl, KS_asciicircum, KC(40), KS_apostrophe, KS_grave, }; #endif /* WSKBD_NO_INTL_LAYOUTS */ #define KBD_MAP(name, base, map) \ { name, base, sizeof(map)/sizeof(keysym_t), map } const struct wscons_keydesc pckbd_keydesctab[] = { KBD_MAP(KB_US, 0, pckbd_keydesc_us), #if !defined(WSKBD_NO_INTL_LAYOUTS) KBD_MAP(KB_DE, KB_US, pckbd_keydesc_de), KBD_MAP(KB_DE | KB_NODEAD, KB_DE, pckbd_keydesc_de_nodead), KBD_MAP(KB_FR, KB_US, pckbd_keydesc_fr), KBD_MAP(KB_DK, KB_US, pckbd_keydesc_dk), KBD_MAP(KB_DK | KB_NODEAD, KB_DK, pckbd_keydesc_dk_nodead), KBD_MAP(KB_IT, KB_US, pckbd_keydesc_it), KBD_MAP(KB_UK, KB_US, pckbd_keydesc_uk), KBD_MAP(KB_JP, KB_US, pckbd_keydesc_jp), KBD_MAP(KB_SV, KB_DK, pckbd_keydesc_sv), KBD_MAP(KB_SV | KB_NODEAD, KB_SV, pckbd_keydesc_sv_nodead), KBD_MAP(KB_NO, KB_DK, pckbd_keydesc_no), KBD_MAP(KB_NO | KB_NODEAD, KB_NO, pckbd_keydesc_no_nodead), KBD_MAP(KB_US | KB_DECLK, KB_US, pckbd_keydesc_us_declk), KBD_MAP(KB_US | KB_DVORAK, KB_US, pckbd_keydesc_us_dvorak),
KC(86), KS_KP_Separator, KC(87), KS_KP_0, KC(88), KS_KP_Up, KC(89), KS_KP_Decimal, KC(90), KS_KP_Enter, KC(91), KS_KP_Left, KC(92), KS_KP_Down, KC(93), KS_KP_Right, KC(100), KS_KP_Multiply, KC(101), KS_KP_Divide, KC(102), KS_KP_Tab, KC(104), KS_F11, KC(105), KS_F12, KC(106), KS_Help, KC(107), KS_Insert, KC(108), KS_Clear, KC(109), KS_Prior, KC(110), KS_Next, KC(122), /* power on */ }; #define KBD_MAP(name, base, map) \ { name, base, sizeof(map) / sizeof(keysym_t), map } const struct wscons_keydesc newskb_keydesctab[] = { KBD_MAP(KB_JP, 0, newskb_keydesc_jp), { 0 } };
KC(240), KS_p, KC(242), KS_semicolon, KS_colon, KC(243), KS_slash, KS_question, KC(245), KS_equal, KS_plus, KC(246), KS_bracketright, KS_braceright, KC(247), KS_backslash, KS_bar, KC(249), KS_minus, KS_underscore, KC(250), KS_bracketleft, KS_braceleft, KC(251), KS_apostrophe, KS_quotedbl, }; static const keysym_t zskbd_keydesc_us_lk401[] = { KC(171), KS_Shift_R, KC(172), KS_Cmd2, KS_Alt_L, KC(173), KS_Multi_key, /* right compose */ KC(177), KS_Multi_key, /* left compose, not "cmd" */ KC(178), KS_Alt_R, }; #define KBD_MAP(name, base, map) \ { name, base, sizeof(map)/sizeof(keysym_t), map } const struct wscons_keydesc zskbd_keydesctab[] = { KBD_MAP(KB_US, 0, zskbd_keydesc_us), KBD_MAP(KB_US | KB_LK401, KB_US, zskbd_keydesc_us_lk401), {0, 0, 0, 0} }; #undef KBD_MAP #undef KC
/* pos normal shifted */ KC(1), KS_Escape, KC(28), KS_Return, KC(57), KS_Cmd, KS_Cmd_BacklightToggle, KC(67), KS_f9, KC(68), KS_f10, KC(72), KS_KP_Up, KC(80), KS_KP_Down, KC(87), KS_f11, KC(88), KS_f12, }; #undef KC #define KBD_MAP(name, base, map) \ { name, base, sizeof(map)/sizeof(keysym_t), map } const struct wscons_keydesc btnmgr_keydesctab[] = { KBD_MAP(KB_US, 0, btnmgr_keydesc_default), {0, 0, 0, 0} }; #undef KBD_MAP struct wskbd_mapdata btnmgr_keymapdata = { btnmgr_keydesctab, KB_US, /* XXX, This is bad idea... */ }; /* * function bodies */ int btnmgrmatch(device_t parent, cfdata_t match, void *aux) {
KC(46), KS_asciicircum, KS_grave, KS_asciitilde, KC(48), KS_diaeresis, KS_exclam, KS_bracketright }; Static const keysym_t ukbd_keydesc_sf[] = { /* pos normal shifted altgr shift-altgr */ KC(47), KS_egrave, KS_udiaeresis, KS_bracketleft, KC(51), KS_eacute, KS_odiaeresis, KC(52), KS_agrave, KS_adiaeresis, KS_braceleft }; #define KBD_MAP(name, base, map) \ { name, base, sizeof(map)/sizeof(keysym_t), map } const struct wscons_keydesc ukbd_keydesctab[] = { KBD_MAP(KB_US, 0, ukbd_keydesc_us), KBD_MAP(KB_US | KB_SWAPCTRLCAPS,KB_US, ukbd_keydesc_swapctrlcaps), KBD_MAP(KB_US | KB_DVORAK, KB_US, ukbd_keydesc_us_dvorak), KBD_MAP(KB_US | KB_COLEMAK, KB_US, ukbd_keydesc_us_colemak), KBD_MAP(KB_JP, KB_US, ukbd_keydesc_jp), KBD_MAP(KB_JP | KB_SWAPCTRLCAPS,KB_JP, ukbd_keydesc_swapctrlcaps), KBD_MAP(KB_DE, KB_US, ukbd_keydesc_de), KBD_MAP(KB_DE | KB_NODEAD, KB_DE, ukbd_keydesc_de_nodead), KBD_MAP(KB_FR, KB_US, ukbd_keydesc_fr), KBD_MAP(KB_FR | KB_SWAPCTRLCAPS,KB_FR, ukbd_keydesc_swapctrlcaps), KBD_MAP(KB_DK, KB_US, ukbd_keydesc_dk), KBD_MAP(KB_DK | KB_NODEAD, KB_DK, ukbd_keydesc_dk_nodead), KBD_MAP(KB_IT, KB_US, ukbd_keydesc_it), KBD_MAP(KB_UK, KB_US, ukbd_keydesc_uk), KBD_MAP(KB_SV, KB_DK, ukbd_keydesc_sv), KBD_MAP(KB_SV | KB_NODEAD, KB_SV, ukbd_keydesc_sv_nodead),
KC(66), KS_Cmd_Screen6, KS_f7, KC(67), KS_Cmd_Screen7, KS_f8, KC(68), KS_Cmd_Screen8, KS_f9, KC(87), KS_Cmd_Screen9, KS_f10, KC(88), KS_f11, }; #endif /* WSKBD_USONLY */ #define KBD_MAP(name, base, map) \ { name, base, sizeof(map)/sizeof(keysym_t), map } /* KBD_NULLMAP generates a entry for machine native variant. the entry will be modified by machine dependent keyboard driver. */ #define KBD_NULLMAP(name, base) { name, base, 0, 0 } const struct wscons_keydesc pckbd_keydesctab[] = { KBD_MAP(KB_US, 0, pckbd_keydesc_us), #ifndef WSKBD_USONLY KBD_MAP(KB_DE, KB_US, pckbd_keydesc_de), KBD_MAP(KB_DE | KB_NODEAD, KB_DE, pckbd_keydesc_de_nodead), KBD_MAP(KB_SG, KB_US, pckbd_keydesc_sg), KBD_MAP(KB_SG | KB_NODEAD, KB_SG, pckbd_keydesc_sg_nodead), KBD_MAP(KB_SF, KB_SG, pckbd_keydesc_sf), KBD_MAP(KB_SF | KB_NODEAD, KB_SF, pckbd_keydesc_sg_nodead), KBD_MAP(KB_FR, KB_US, pckbd_keydesc_fr), KBD_MAP(KB_BE, KB_FR, pckbd_keydesc_be), KBD_MAP(KB_DK, KB_US, pckbd_keydesc_dk), KBD_MAP(KB_DK | KB_NODEAD, KB_DK, pckbd_keydesc_dk_nodead), KBD_MAP(KB_IT, KB_US, pckbd_keydesc_it), KBD_MAP(KB_UK, KB_US, pckbd_keydesc_uk), KBD_MAP(KB_JP, KB_US, pckbd_keydesc_jp), KBD_MAP(KB_SV, KB_DK, pckbd_keydesc_sv),
KC(0x54), KS_e, KC(0x55), KS_i, KC(0x56), KS_o, KC(0x64), KS_z, KC(0x65), KS_x, KC(0x66), KS_c, KC(0x67), KS_v, KC(0x68), KS_b, KC(0x69), KS_k, KC(0x6a), KS_m, KC(0x77), KS_Delete, }; #define KBD_MAP(name, base, map) \ { name, base, sizeof(map)/sizeof(keysym_t), map } /* KBD_NULLMAP generates a entry for machine native variant. the entry will be modified by machine dependent keyboard driver. */ #define KBD_NULLMAP(name, base) { name, base, 0, 0 } const struct wscons_keydesc wssun_keydesctab[] = { KBD_MAP(KB_US, 0, wssun_keydesctab_us), KBD_MAP(KB_SV, KB_US, wssun_keydesctab_sv), KBD_MAP(KB_SV | KB_NODEAD, KB_SV, wssun_keydesctab_sv_nodead), KBD_MAP(KB_DE, KB_US, wssun_keydesctab_de), KBD_MAP(KB_DE | KB_NODEAD, KB_DE, wssun_keydesctab_de_nodead), KBD_MAP(KB_UK, KB_US, wssun_keydesctab_uk), KBD_MAP(KB_US | KB_DVORAK, KB_US, wssun_keydesctab_us_dvorak), KBD_MAP(KB_US | KB_COLEMAK, KB_US, wssun_keydesctab_us_colemak), { 0, 0, 0, 0 } };
KC(0x20), KS_9, KS_parenright, KC(0x21), KS_0, KS_underscore, KC(0x22), KS_minus, KS_equal, KC(0x23), KS_asciicircum, KS_asciitilde, KC(0x37), KS_at, KS_grave, KC(0x38), KS_bracketleft, KS_braceleft, KC(0x4f), KS_semicolon, KS_plus, KC(0x50), KS_colon, KS_asterisk, KC(0x51), KS_bracketright,KS_braceright, KC(0x5f), KS_backslash, KS_bar }; #define KBD_MAP(name, base, map) \ { name, base, sizeof(map) / sizeof(keysym_t), map } const struct wscons_keydesc dnkbd_keydesctab[] = { KBD_MAP(KB_US, 0, dnkbd_keydesc_us), KBD_MAP(KB_DE, KB_JP, dnkbd_keydesc_de), KBD_MAP(KB_DE | KB_NODEAD, KB_DE, dnkbd_keydesc_de_nodead), KBD_MAP(KB_DK, KB_JP, dnkbd_keydesc_dk), KBD_MAP(KB_DK | KB_NODEAD, KB_DK, dnkbd_keydesc_dk_nodead), KBD_MAP(KB_FR, KB_JP, dnkbd_keydesc_fr), KBD_MAP(KB_JP, KB_US, dnkbd_keydesc_jp), KBD_MAP(KB_SG, KB_DE, dnkbd_keydesc_sg), KBD_MAP(KB_SG | KB_NODEAD, KB_SG, dnkbd_keydesc_sg_nodead), KBD_MAP(KB_SV, KB_DK, dnkbd_keydesc_sv), KBD_MAP(KB_SV | KB_NODEAD, KB_SV, dnkbd_keydesc_sv_nodead), KBD_MAP(KB_UK, KB_JP, dnkbd_keydesc_uk), { 0, 0, 0, 0 } };
KC(108), KS_ugrave, KS_percent, KC(112), KS_comma, KS_question, KC(113), KS_semicolon, KS_period, KC(114), KS_colon, KS_slash, KC(115), KS_exclam, KS_section, KC(116), KS_asterisk, KS_mu, KC(118), KS_less, KS_greater, KS_guillemotleft,KS_guillemotright, KC(120), KS_n }; #define KBD_MAP(name, base, map) \ { name, base, sizeof(map)/sizeof(keysym_t), map } const struct wscons_keydesc hilkbd_keydesctab[] = { KBD_MAP(KB_US, 0, hilkbd_keydesc_us), KBD_MAP(KB_DE, KB_US, hilkbd_keydesc_de), KBD_MAP(KB_DE | KB_NODEAD, KB_DE, hilkbd_keydesc_de_nodead), KBD_MAP(KB_FR, KB_US, hilkbd_keydesc_fr), KBD_MAP(KB_UK, KB_US, hilkbd_keydesc_uk), KBD_MAP(KB_SV, KB_US, hilkbd_keydesc_sv), KBD_MAP(KB_SV | KB_NODEAD, KB_SV, hilkbd_keydesc_sv_nodead), {0, 0, 0, 0}, }; const struct wscons_keydesc hilkbd_keydesctab_ps2[] = { KBD_MAP(KB_US, 0, hilkbd_keydesc_us), KBD_MAP(KB_DE, KB_US, hilkbd_keydesc_de_ps2), KBD_MAP(KB_DE | KB_NODEAD, KB_DE, hilkbd_keydesc_de_ps2_nodead), KBD_MAP(KB_FR, KB_US, hilkbd_keydesc_fr_ps2), KBD_MAP(KB_UK, KB_US, hilkbd_keydesc_uk_ps2),
KC(251), KS_ugrave, KS_percent, KS_backslash, /* remapped Compose key (177) for LK 201 */ KC(252), KS_Cmd2, KS_Mode_switch, KS_Multi_key }; static const keysym_t lkkbd_keydesc_pt[] = { KC(191), KS_backslash, KS_bar, KC(219), KS_6, KS_quotedbl, KC(232), KS_comma, KS_semicolon, KC(237), KS_period, KS_colon, KC(242), KS_ccedilla, KC(247), KS_bracketleft, KS_braceleft, KC(250), KS_dead_acute, KS_dead_grave, KC(251), KS_dead_tilde, KS_dead_circumflex, }; #define KBD_MAP(name, base, map) \ { name, base, sizeof(map)/sizeof(keysym_t), map } const struct wscons_keydesc lkkbd_keydesctab[] = { KBD_MAP(KB_US, 0, lkkbd_keydesc_us), KBD_MAP(KB_DE, KB_US, lkkbd_keydesc_de), KBD_MAP(KB_DE | KB_NODEAD, KB_DE, lkkbd_keydesc_de_nodead), KBD_MAP(KB_FR, KB_US, lkkbd_keydesc_fr), KBD_MAP(KB_PT, KB_US, lkkbd_keydesc_pt), {0, 0, 0, 0} }; #undef KBD_MAP #undef KC
KC(51), KS_w, KC(52), KS_v, KC(53), KS_z, }; static const keysym_t pckbd_keydesc_swapctrlcaps[] = { /* pos command normal shifted */ KC(29), KS_Caps_Lock, KC(58), KS_Cmd1, KS_Control_L, }; #define KBD_MAP(name, base, map) \ { name, base, sizeof(map)/sizeof(keysym_t), map } const struct wscons_keydesc amigakbd_keydesctab[] = { KBD_MAP(KB_US, 0, amikbd_keydesc_us), KBD_MAP(KB_DE, KB_US, amikbd_keydesc_de), KBD_MAP(KB_DE | KB_NODEAD, KB_DE, amikbd_keydesc_de_nodead), KBD_MAP(KB_FR, KB_US, pckbd_keydesc_fr), KBD_MAP(KB_DK, KB_US, amikbd_keydesc_dk), KBD_MAP(KB_DK | KB_NODEAD, KB_DK, amikbd_keydesc_dk_nodead), /* KBD_MAP(KB_IT, KB_US, pckbd_keydesc_it), KBD_MAP(KB_UK, KB_US, pckbd_keydesc_uk), KBD_MAP(KB_JP, KB_US, pckbd_keydesc_jp),*/ KBD_MAP(KB_SV, KB_DK, amikbd_keydesc_sv), KBD_MAP(KB_SV | KB_NODEAD, KB_SV, amikbd_keydesc_sv_nodead), KBD_MAP(KB_NO, KB_DK, amikbd_keydesc_no), KBD_MAP(KB_NO | KB_NODEAD, KB_NO, amikbd_keydesc_no_nodead), /* KBD_MAP(KB_US | KB_DECLK, KB_US, pckbd_keydesc_us_declk), KBD_MAP(KB_US | KB_DVORAK, KB_US, pckbd_keydesc_us_dvorak), KBD_MAP(KB_US | KB_SWAPCTRLCAPS, KB_US, pckbd_keydesc_swapctrlcaps),
KC(364), KS_Home, KC(373), KS_Up, KC(381), KS_Prior, KC(363), KS_Left, KC(372), KS_Right, KC(361), KS_End, KC(370), KS_Down, KC(378), KS_Next, KC(368), KS_Insert, KC(369), KS_Delete, #if 0 /* dunno what to map this one too */ KC(221), KS_Menu, #endif }; #define KBD_MAP(name, base, map) \ { name, base, sizeof(map)/sizeof(keysym_t), map } /* KBD_NULLMAP generates a entry for machine native variant. the entry will be modified by machine dependent keyboard driver. */ #define KBD_NULLMAP(name, base) { name, base, 0, 0 } const struct wscons_keydesc rpckbd_keydesctab[] = { KBD_MAP(KB_UK, 0, rpckbd_keydesc_uk), {0, 0, 0, 0} }; #undef KBD_MAP #undef KC