Subject: kern/24925: Slovenian keymap added
To: None <gnats-bugs@gnats.NetBSD.org>
From: None <jkovacic@email.si>
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
>Closed-Date:
>Last-Modified:
>Originator: Jernej Kovacic
>Release: None (OpenBSD 3.4)
>Organization:
>Environment:
At the moment I don't have enough diskspace to add NetBSD to other operating systems
>Description:
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 <http://obsd.17slon.org/twiki/bin/view/Main/SlovenskaTipkovnica> 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.
>How-To-Repeat:
>Fix:
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
pckbd_keydesc_swapctrlcaps),
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 */
KBD_NULLMAP(KB_US | KB_MACHDEP, KB_US),
A unified diff relative to /usr/src/sys/dev/wscons/wsksymdef.h revision 1.39.2.5:
--- 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 <http://www.openbsd.org/cgi-bin/cvsweb/src/sys/dev/pckbc/wskbdmap_mfii.c> (revision 1.23) and <http://www.openbsd.org/cgi-bin/cvsweb/src/sys/dev/wscons/wsksymdef.h> (revision 1.25)
>Release-Note:
>Audit-Trail:
>Unformatted: