NetBSD Problem Report #29648

From www@netbsd.org  Thu Mar 10 07:03:34 2005
Return-Path: <www@netbsd.org>
Received: by narn.netbsd.org (Postfix, from userid 31301)
	id BC0E363B116; Thu, 10 Mar 2005 07:03:34 +0000 (UTC)
Message-Id: <20050310070334.BC0E363B116@narn.netbsd.org>
Date: Thu, 10 Mar 2005 07:03:34 +0000 (UTC)
From: jkovacic@gmail.com
Reply-To: jkovacic@gmail.com
To: gnats-bugs@netbsd.org
Subject: Userland implementation of Slovenian keymap
X-Send-Pr-Version: www-1.0

>Number:         29648
>Category:       misc
>Synopsis:       Userland implementation of Slovenian keymap
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    martin
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Thu Mar 10 07:04:00 +0000 2005
>Last-Modified:  Sat Jul 16 20:32:20 +0000 2005
>Originator:     Jernej Kovacic
>Release:        NetBSD 2.0-releae
>Organization:
>Environment:
>Description:
	Slovenian keymap not supported in NetBSD. kern/29615 already suggests
	an in-kernel solution, this is its userland version that does not
	require recompiling the kernel.
>How-To-Repeat:

>Fix:
Copy/paste the following lines into a file (e.g. /usr/share/wscons/keymaps/pckbd.si):

------ file start ----------
# Slovenian keymap (usable in most parts of the former Yugoslavia)
# by Jernej Kovacic

keycode   2=1 exclam asciitilde
keycode   3=2 quotedbl L2_caron
keycode   4=3 numbersign asciicircum
keycode   5=4 dollar L2_breve
keycode   6=5 percent degree
keycode   7=6 ampersand	L2_ogonek
keycode   8=7 slash grave
keycode   9=8 parenleft L2_dotabove
keycode  10=9 parenright acute
keycode  11=0 equal L2_dblacute
keycode  12=apostrophe question diaeresis
keycode  13=plus asterisk cedilla
keycode  16=q Q backslash
keycode  17=w W bar
keycode  21=z Z
keycode  26=L2_scaron L2_Scaron division
keycode  27=L2_dstroke L2_Dstroke multiply
keycode  33=f F bracketleft
keycode  34=g G bracketright
keycode  37=k K L2_lstroke
keycode  38=l L L2_Lstroke
keycode  39=L2_ccaron L2_Ccaron
keycode  40=L2_cacute L2_Cacute ssharp
keycode  41=cedilla diaeresis
keycode  43=L2_zcaron L2_Zcaron currency
keycode  44=y Y
keycode  47=v V at
keycode  48=b B braceleft
keycode  49=n N braceright
keycode  50=m M section
keycode  51=comma semicolon
keycode  52=period colon
keycode  53=minus underscore
keycode  86=less greater
keycode 184=Mode_switch Multi_key
-------- file end ---------------

open /etc/wscons.conf, comment out any lines starting with encoding and add
mapfile  /usr/share/wscons/keymaps/pckbd.si
(or whatever your filename is).

Now you have to recompile wsconsctl so it will recognise new keysyms. Open sys/dev/wscons/wsksymdef.h

If you want central/eastern European charcters to be encoded in Unicode,
insert the following lines into it:

------ file section start -----------
#define KS_L2_Lstroke		0x0141
#define KS_L2_lstroke		0x0142
#define KS_L2_Cacute		0x0106
#define KS_L2_cacute		0x0107
#define KS_L2_Ccaron		0x010c
#define KS_L2_ccaron		0x010d
#define KS_L2_Scaron		0x0160
#define KS_L2_scaron		0x0161
#define KS_L2_Zcaron		0x017d
#define KS_L2_zcaron		0x017e
#define KS_L2_Dstroke		0x0110
#define KS_L2_dstroke		0x0111
#define KS_L2_caron		0x02c7
#define KS_L2_breve		0x02d8
#define KS_L2_ogonek		0x02db
#define KS_L2_dotabove		0x02d9
#define KS_L2_dblacute		0x02dd
-------- file section end -----------

if you prefer ISO8859-2 encoded characters, insert the following lines instead:

------ file section start -----------
/*
 * Group Latin-2 (characters from iso8859-2)
*/

#define KS_L2_Lstroke		0xa3
#define KS_L2_lstroke		0xb3
#define KS_L2_Cacute		0xc6
#define KS_L2_cacute		0xe6
#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
-------- file section end -----------

Then copy wsksymdef.h to /usr/include/dev/wscons
and recompile wsconsctl:

cd sbin/wsconsctl
make
make install

Now you can restart your computer.

If you don't want to recompile wsconsctl, do not touch wsksymdef.h. Just open pckbd.si again and replace newly created ISO8859-2 keysyms with their ISO8859-1 "counterparts" bearing the same numeric code:

L2_Lstroke	-->	sterling
L2_lstroke	-->	threesuperior
L2_Cacute	-->	AE
L2_cacute	-->	ae
L2_Ccaron	-->	Egrave
L2_ccaron	-->	egrave
L2_Scaron	-->	copyright
L2_scaron	-->	onesuperior
L2_Zcaron	-->	registered
L2_zcaron	-->	threequarters
L2_Dstroke	-->	ETH
L2_dstroke	-->	eth
L2_caron	-->	periodcentered
L2_breve	-->	cent
L2_ogonek	-->	twosuperior
L2_dotabove	-->	ydiaeresis
L2_dblacute	-->	onehalf

edit /etc/wscons.conf as described above and reboot.

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

>Release-Note:

>Audit-Trail:

Responsible-Changed-From-To: misc-bug-people->martin
Responsible-Changed-By: martin@netbsd.org
Responsible-Changed-When: Thu, 10 Mar 2005 07:29:57 +0000
Responsible-Changed-Why:
I'll handle it


>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.