Subject: kern/24925: Slovenian keymap added
To: None <>
From: None <>
List: netbsd-bugs
Date: 03/26/2004 15:49:12
>Number:         24925
>Category:       kern
>Synopsis:       Slovenian keymap added
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    kern-bug-people
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Fri Mar 26 15:50:00 UTC 2004
>Originator:     Jernej Kovacic
>Release:        None (OpenBSD 3.4)
At the moment I don't have enough diskspace to add NetBSD to other operating systems
Previously I didn't submit all additions so now I'm reposting it all. I appologize myself for any inconvinience.

Recently I added Slovenian keymap into OpenBSD kernel. As OpenBSD is a "son" of NetBSD, both use equal keymap mechanism so why not apply the same changes into NetBSD. Under "Fix to the problem" field I enclose two unified diffs (diff -pu), if you prefer so I can also send them by email.  After applying the changes one should copy wsksymdef.h to /usr/include/dev/wscons, recompile the kernel, and then recompile kbd and wsconsctl. If everything recompiles and kbd -l outputs "si" among others and you can select the keymap with kbd si, everything was OK. Some instructions in Slovenian only can be found at <> but do not use the files from there as they are out of date. 

If you have any further questions do not hesitate to ask me.

A unified diff relative to /usr/src/sys/dev/pckbport/wskbdmap_mfii.c revision 1.2 (it was in /usr/src/sys/dev/pckbc in NetBSD release 1.6.2):

--- wskbdmap_mfii.c.old	Wed Mar 17 22:17:09 2004
+++ wskbdmap_mfii.c	Wed Mar 17 22:30:29 2004
@@ -412,6 +412,46 @@ static const keysym_t pckbd_keydesc_pt[]
     KC(184), KS_Mode_switch,	KS_Multi_key,
+static const keysym_t pckbd_keydesc_si[]=
+/*  	pos	normal		shift		altgr		*/
+    	KC(2),	KS_1,		KS_exclam,	KS_asciitilde,
+	KC(3),	KS_2,		KS_quotedbl,	KS_L2_caron,
+	KC(4),	KS_3,		KS_numbersign,	KS_asciicircum,
+	KC(5),	KS_4,		KS_dollar,	KS_L2_breve,
+	KC(6),	KS_5,		KS_percent,	KS_degree,
+	KC(7),	KS_6,		KS_ampersand,	KS_L2_ogonek,
+	KC(8),	KS_7,		KS_slash,	KS_grave,
+	KC(9),	KS_8,		KS_parenleft,	KS_L2_dotabove,
+	KC(10),	KS_9,		KS_parenright,	KS_acute,
+	KC(11),	KS_0,		KS_equal,	KS_L2_dblacute,
+	KC(12), KS_apostrophe,	KS_question,	KS_diaeresis,
+	KC(13),	KS_plus,	KS_asterisk,	KS_cedilla,
+	KC(16),	KS_q,		KS_Q,		KS_backslash,
+	KC(17),	KS_w,		KS_W,		KS_bar,
+	KC(21),	KS_z,		KS_Z,
+	KC(26),	KS_L2_scaron,	KS_L2_Scaron,	KS_division,
+	KC(27),	KS_L2_dstroke,	KS_L2_Dstroke,	KS_multiply,
+	KC(33),	KS_f,		KS_F,		KS_bracketleft,
+	KC(34),	KS_g,		KS_G,		KS_bracketright,
+	KC(37),	KS_k,		KS_K,		KS_L2_lstroke,
+	KC(38),	KS_l,		KS_L,		KS_L2_Lstroke,
+	KC(39),	KS_L2_ccaron,	KS_L2_Ccaron,	
+	KC(40),	KS_L2_cacute,	KS_L2_Cacute,	KS_ssharp,
+	KC(41),	KS_cedilla,	KS_diaeresis,
+	KC(43),	KS_L2_zcaron,	KS_L2_Zcaron,	KS_currency,
+	KC(44),	KS_y,		KS_Y,
+	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_section,
+	KC(51),	KS_comma,	KS_semicolon,
+	KC(52),	KS_period,	KS_colon,
+	KC(53), KS_minus,	KS_underscore,
+	KC(86), KS_less,	KS_greater,
+	KC(184), KS_Mode_switch,	KS_Multi_key,
 static const keysym_t pckbd_keydesc_us_declk[] = {
 /*  pos      normal		shifted		altgr		shift-altgr */
     KC(1),	KS_grave,	KS_asciitilde, /* replace escape */
@@ -542,6 +582,7 @@ const struct wscons_keydesc pckbd_keydes
 	KBD_MAP(KB_ES ,			KB_US,	pckbd_keydesc_es),
 	KBD_MAP(KB_PT,			KB_US,	pckbd_keydesc_pt),
+	KBD_MAP(KB_SI,			KB_US,	pckbd_keydesc_si),
 	/* placeholders */

A unified diff relative to /usr/src/sys/dev/wscons/wsksymdef.h revision

--- wsksymdef.h.old	Wed Mar 17 23:25:13 2004
+++ wsksymdef.h	Wed Mar 17 23:18:10 2004
@@ -263,6 +263,40 @@
 #define KS_Udoubleacute 	0x170
 #define KS_udoubleacute 	0x171
+ * ISO 8859-2 (Latin 2) characters
+ */
+#define KS_L2_Aogonek		0xa1
+#define KS_L2_Lstroke		0xa3
+#define KS_L2_Sacute		0xa6
+#define KS_L2_Zacute		0xac
+#define KS_L2_Zdotabove		0xaf
+#define KS_L2_aogonek		0xb1
+#define KS_L2_lstroke		0xb3
+#define KS_L2_sacute		0xb6
+#define KS_L2_zacute		0xbc
+#define KS_L2_zdotabove		0xbf
+#define KS_L2_Cacute		0xc6
+#define KS_L2_Eogonek		0xca
+#define KS_L2_Nacute		0xd1
+#define KS_L2_cacute		0xe6
+#define KS_L2_eogonek		0xea
+#define KS_L2_nacute		0xf1
+#define KS_L2_Ccaron		0xc8
+#define KS_L2_ccaron		0xe8
+#define KS_L2_Scaron		0xa9
+#define KS_L2_scaron		0xb9
+#define KS_L2_Zcaron		0xae
+#define	KS_L2_zcaron		0xbe
+#define	KS_L2_Dstroke		0xd0
+#define	KS_L2_dstroke		0xf0
+#define KS_L2_caron		0xb7
+#define KS_L2_breve		0xa2
+#define KS_L2_ogonek		0xb2
+#define KS_L2_dotabove		0xff
+#define KS_L2_dblacute		0xbd
  * Group Dead (dead accents)
@@ -502,6 +536,7 @@
 #define KB_PT			0x1100
 #define KB_UA			0x1200
 #define KB_BE			0x1300
+#define KB_SI			0x1400
 #define KB_NODEAD		0x0001
 #define KB_DECLK		0x0002	/* DEC LKnnn layout */
@@ -531,7 +566,8 @@
 	{ KB_SF,        "sf" }, \
 	{ KB_PT,        "pt" }, \
 	{ KB_UA,        "ua" }, \
-	{ KB_BE,        "be" }
+	{ KB_BE,        "be" }, \
+	{ KB_SI,	"si" }
 #define KB_VARTAB \
 	{ KB_NODEAD,	"nodead" }, \

You may check also <> (revision 1.23) and <> (revision 1.25)