Subject: kern/28099: There is no dvorak keymap design for the french language
To: None <gnats-bugs@gnats.NetBSD.org>
From: None <sarahem@tele2.fr>
List: netbsd-bugs
Date: 11/08/2004 14:55:16
>Number:         28099
>Category:       kern
>Synopsis:       a dvorak-like keymap for the french language
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Mon Nov 08 14:08:00 UTC 2004
>Closed-Date:
>Last-Modified:
>Originator:     Sarah Burgo
>Release:        NetBSD 2.99.10
>Organization:
none
>Environment:
>Description:
	Realise that no dvorak-like keymap for the french language is
available for the NetBSD console without resorting to home-made
mapfiles.
>How-To-Repeat:
	Do a fresh install.
>Fix:
	A keymap offering the layout created by Francis Leboutte that
may be seen here :
(http://www.algo.be/ergo/dvorak-fr.html)

--- /sys/dev/wscons/wsksymdef.h.orig	2004-05-29 05:01:31.000000000 +0200
+++ /sys/dev/wscons/wsksymdef.h	2004-11-05 12:20:42.000000000 +0100
@@ -505,6 +505,7 @@
 #define KB_PT			0x1100
 #define KB_UA			0x1200
 #define KB_BE			0x1300
+#define KB_DVORAK_FR		0x1400
 
 #define KB_NODEAD		0x0001
 #define KB_DECLK		0x0002	/* DEC LKnnn layout */
@@ -535,7 +536,8 @@
 	{ KB_SF,        "sf" }, \
 	{ KB_PT,        "pt" }, \
 	{ KB_UA,        "ua" }, \
-	{ KB_BE,        "be" }
+	{ KB_BE,        "be" }, \
+	{ KB_DVORAK_FR,     "dvorak_fr" }
 
 #define KB_VARTAB \
 	{ KB_NODEAD,	"nodead" }, \
--- /sys/dev/pckbport/wskbdmap_mfii.c.orig	2004-10-04 05:01:44.000000000 +0200
+++ /sys/dev/pckbport/wskbdmap_mfii.c	2004-11-05 13:38:18.000000000 +0100
@@ -452,6 +452,60 @@
     KC(207),	KS_Select, /* replace end */
 };
 
+static const keysym_t pckbd_keydesc_dvorak_fr[] = {
+/*  pos      normal             shifted         altgr           shift-altgr */
+    KC(2),   KS_equal,          KS_1,
+    KC(3),   KS_slash,          KS_2,           KS_plusminus,
+    KC(4),   KS_minus,          KS_3,           KS_onequarter,
+    KC(5),   KS_egrave,         KS_4,           KS_onehalf,
+    KC(6),   KS_backslash,      KS_5,           KS_threequarters,
+    KC(7),  KS_dead_circumflex, KS_6,
+    KC(8),   KS_parenleft,      KS_7,
+    KC(9),   KS_dead_grave,     KS_8,
+    KC(10),  KS_parenright,     KS_9,
+    KC(11),  KS_quotedbl,       KS_0,
+    KC(12),  KS_bracketleft,    KS_plus,
+    KC(13),  KS_bracketright,   KS_percent,
+    KC(16),  KS_colon,          KS_question,    KS_ae,		KS_AE,
+    KC(17),  KS_apostrophe,     KS_less,        KS_dollar,
+    KC(18),  KS_eacute,         KS_greater,     KS_Eacute,
+    KC(19),  KS_g,              KS_G,           KS_currency,
+    KC(20),  KS_period,         KS_exclam,      KS_degree,
+    KC(21),  KS_h,              KS_H,
+    KC(22),  KS_v,              KS_V,
+    KC(23),  KS_c,              KS_C,
+    KC(24),  KS_m,              KS_M,           KS_mu,
+    KC(25),  KS_k,              KS_K,
+    KC(26),  KS_z,              KS_Z,
+    KC(27),  KS_dead_diaeresis, KS_ampersand,
+    KC(30),  KS_o,              KS_O,
+    KC(31),  KS_a,              KS_A,
+    KC(32),  KS_u,              KS_U,
+    KC(33),  KS_e,              KS_E,
+    KC(34),  KS_b,              KS_B,
+    KC(35),  KS_f,              KS_F,
+    KC(36),  KS_s,              KS_S,           KS_guillemotleft,
+    KC(37),  KS_t,              KS_T,
+    KC(38),  KS_n,              KS_N,           KS_guillemotright,
+    KC(39),  KS_d,              KS_D,
+    KC(40),  KS_w,              KS_W,
+    KC(41),  KS_underscore,     KS_asterisk,
+    KC(43),  KS_asciitilde,     KS_numbersign,
+    KC(44),  KS_semicolon,      KS_bar,
+    KC(45),  KS_q,              KS_Q,		KS_braceleft,
+    KC(46),  KS_comma,          KS_at,		KS_braceright,
+    KC(47),  KS_i,              KS_I,
+    KC(48),  KS_y,              KS_Y,
+    KC(49),  KS_x,              KS_X,
+    KC(50),  KS_r,              KS_R,
+    KC(51),  KS_l,              KS_L,
+    KC(52),  KS_p,              KS_P,           KS_section,
+    KC(53),  KS_j,              KS_J,
+    KC(58),  KS_Shift_Lock,
+    KC(86),  KS_agrave,         KS_ccedilla,    KS_Agrave,	KS_Ccedilla,
+    KC(184), KS_Mode_switch,    KS_Multi_key,
+};
+
 static const keysym_t pckbd_keydesc_us_dvorak[] = {
 /*  pos      command		normal		shifted */
     KC(12), 			KS_bracketleft,	KS_braceleft,
@@ -533,6 +587,7 @@
 	KBD_MAP(KB_SV | KB_NODEAD,	KB_SV,	pckbd_keydesc_sv_nodead),
 	KBD_MAP(KB_NO,			KB_DK,	pckbd_keydesc_no),
 	KBD_MAP(KB_NO | KB_NODEAD,	KB_NO,	pckbd_keydesc_no_nodead),
+	KBD_MAP(KB_DVORAK_FR,           KB_US,  pckbd_keydesc_dvorak_fr),
 	KBD_MAP(KB_US | KB_DECLK,	KB_US,	pckbd_keydesc_us_declk),
 	KBD_MAP(KB_US | KB_DVORAK,	KB_US,	pckbd_keydesc_us_dvorak),
 	KBD_MAP(KB_US | KB_SWAPCTRLCAPS, KB_US,	pckbd_keydesc_swapctrlcaps),
>Release-Note:
>Audit-Trail:
>Unformatted:
 >system: NetBSD magrat.lampadas.network 2.99.10 NetBSD 2.99.10 (GENERIC2) #0: Fri Nov 5 14:00:03 CET 2004 root@magrat.lampadas.network:/usr/src/sys/arch/i386/compile/GENERIC2 i386
 >Architecture: i386
 >Machine: i386