Hi, sorry for duplicity, blambert@ redirected me here. And the files in the original mail were removed. I've recently written czech keyboard layout to the console. It's basically standard cz_qwertz layout with every character that one might need from the us layout hidden under AltGr in the standard way (as in X.org). --- I don't know what's wrong about 29th layout in the kernel to get me banned from IRC channel I've been encouraged to use, so I post it here. --- The installation is pretty straightforward: 1) apply the patches (tested on -current) 2) cd /sys/dev/usb 3) make (to rebuild ukbdmap.c) 4) recompile kernel and boot it 5) after reboot you have to recompile /sbin/kbd (I needed to do so twice) and don't forget to update /usr/include/dev/wscons/wsksymdef.h
in the patches there is a little bit of cleanup for hungarian keydesc - just added tab characters (in case that all tabs get substituted by spaces incorrectly) Note that neither man pages nor faq contain information about code contribution. Regards, Martin Pelikan ============================== --- /sys/dev/pckbc/wskbdmap_mfii.c Mon Dec 7 20:22:38 2009 +++ wskbdmap_mfii.c Mon Apr 5 03:43:00 2010 @@ -861,14 +861,14 @@ KC(5), KS_4, KS_exclam, KC(6), KS_5, KS_percent, KC(7), KS_6, KS_slash, - KC(8), KS_7, KS_equal,KS_grave, + KC(8), KS_7, KS_equal, KS_grave, KC(9), KS_8, KS_parenleft, KC(10), KS_9, KS_parenright, KS_acute, KC(11), KS_odiaeresis, KS_Odiaeresis, KC(12), KS_udiaeresis, KS_Udiaeresis, KC(13), KS_oacute, KS_Oacute, KC(16), KS_q, KS_Q, KS_backslash, - KC(17), KS_w, KS_W,KS_bar, + KC(17), KS_w, KS_W, KS_bar, KC(21), KS_z, KS_Z, KC(23), KS_i, KS_I, KS_iacute, KC(26), KS_odoubleacute, KS_Odoubleacute, KS_division, @@ -1028,6 +1028,45 @@ KC(40), KS_apostrophe, KS_grave, }; +static const keysym_t pckbd_keydesc_cz[] = { +/* pos normal shifted altgr shift-altgr */ + KC(2), KS_plus, KS_1, KS_exclam, + KC(3), KS_L2_ecaron, KS_2, KS_at, + KC(4), KS_L2_scaron, KS_3, KS_numbersign, + KC(5), KS_L2_ccaron, KS_4, KS_dollar, + KC(6), KS_L2_rcaron, KS_5, KS_percent, + KC(7), KS_L2_zcaron, KS_6, KS_asciicircum, + KC(8), KS_yacute, KS_7, KS_ampersand, + KC(9), KS_aacute, KS_8, KS_asterisk, + KC(10), KS_iacute, KS_9, KS_parenleft, + KC(11), KS_eacute, KS_0, KS_parenright, + KC(12), KS_equal, KS_percent, KS_backslash, + KC(13), KS_dead_acute, KS_L2_caron, + KC(16), KS_q, KS_Q, KS_backslash, + KC(17), KS_w, KS_W, KS_bar, KS_brokenbar, + KC(21), KS_z, KS_Z, + KC(26), KS_uacute, KS_slash, KS_bracketleft, + KC(27), KS_parenright, KS_parenleft, KS_bracketright, + KC(30), KS_a, KS_A, KS_asciitilde, + KC(33), KS_f, KS_F, KS_bracketleft, + KC(34), KS_g, KS_G, KS_bracketright, + KC(35), KS_h, KS_H, KS_grave, + KC(39), KS_L2_uring, KS_quotedbl, KS_dollar, + KC(40), KS_paragraph, KS_exclam, KS_ssharp, + KC(41), KS_semicolon, KS_dead_abovering, KS_dead_grave, + KC(43), KS_dead_diaeresis, KS_apostrophe, KS_backslash, + KC(44), KS_y, KS_Y, + KC(45), KS_x, KS_X, KS_numbersign, + KC(46), KS_c, KS_C, KS_ampersand, + KC(47), KS_v, KS_V, KS_at, + KC(48), KS_b, KS_B, KS_braceleft, + KC(49), KS_n, KS_N, KS_braceright, + KC(50), KS_m, KS_M, KS_asciicircum, + KC(51), KS_comma, KS_question, KS_less, + KC(52), KS_period, KS_colon, KS_greater, + KC(53), KS_minus, KS_underscore, KS_asterisk, + KC(184), KS_Mode_switch, KS_Multi_key, +}; #endif /* WSKBD_NO_INTL_LAYOUTS */ #define KBD_MAP(name, base, map) \ @@ -1085,6 +1124,7 @@ KBD_MAP(KB_LV, KB_US, pckbd_keydesc_lv), KBD_MAP(KB_NL, KB_US, pckbd_keydesc_nl), KBD_MAP(KB_NL | KB_NODEAD, KB_NL, pckbd_keydesc_nl_nodead), + KBD_MAP(KB_CZ, KB_US, pckbd_keydesc_cz), #endif /* WSKBD_NO_INTL_LAYOUTS */ {0, 0, 0, 0} }; ============================== --- /sys/dev/wscons/wsksymdef.h Thu Jun 26 07:42:19 2008 +++ wsksymdef.h Mon Apr 5 03:42:00 2010 @@ -725,6 +725,7 @@ #define KB_SI 0x1900 #define KB_CF 0x1a00 #define KB_LV 0x1b00 +#define KB_CZ 0x1c00 #define KB_NODEAD 0x000001 /* disable dead accents */ #define KB_DECLK 0x000002 /* DEC LKnnn layout */ @@ -763,7 +764,8 @@ { KB_PL, "pl" }, \ { KB_SI, "si" }, \ { KB_CF, "cf" }, \ - { KB_LV, "lv" } + { KB_LV, "lv" }, \ + { KB_CZ, "cz" } #define KB_VARTAB \ { KB_NODEAD, "nodead" }, \ ==============================