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" }, \

==============================

Reply via email to