Hello Branden, On Saturday 26 March 2005 07:18, Branden Robinson wrote: > I've attached a patch. Because I am unable to evaluate its correctness > (not having a Dutch keyboard), I ask you to please evaluate it. You > can apply it to your running system by applying it as follows: Thanks very much for creating the patch. On testing (after borrowing a Dutch keyboard to test with) however, I discovered there was a lot more wrong with the X definitions for Dutch keyboards. The additional problems were: - accent keys are expected to work as deadkeys; - therefore, having accented characters defined (e.g. AltGr-a for á) is superfluous; - EuroSign missing; - a lot of characters were defined more than once (under different keys); - some characters that were defined are not supported in iso-8859-15, the preferred encoding for Dutch. I have therefore created two new files: 1 /etc/X11/xkb/symbols/nl .I have kept this file basic: only the characters actually printed on the keyboard (with the 'yen' as only exception) .This file has mainly been cleaned up; it is a subset of the second file (there are no differences in the characters that _are_ defined) 2 /etc/X11/xkb/symbols/pc/nl .This file is a bit more elaborate: it supports almost all "extra" characters available in the iso-8859-15 encoding .This file is a complete rewrite and no longer depends on the definition for the 'latin' keymap I have extensively tested the _second_ file as that was the one used on the command 'setxkbmap nl'. I have not been able to find out how/when/where the _first_ file is used, but have of course reviewed the changes carefully. The following link shows the new keymap definition: http://home.tiscali.nl/isildur/debian/xkbd_nl.html A few remarks on the new definition: - The ~ key is not a deadkey because the tilde is rarely (if ever) used as an accent and because it _is_ used very often in Linux. - There are some characters that are not defined in iso-8859-15. This is because Dutch keyboards were originally developed for iso-8859-1 which does have these characters. Because of the Euro iso-8859-15 is now preferred. Also, these keys _do_ work under X11 (provided you save your document in UTF encoding). - Maybe it would be useful to create a "nodeadkeys" variant of this keymap, but I have left that for later. A diff from the old definitions is attached as well as a tarbal with the new files. I hope you do not find this patch too invasive. I've tried making a patch with only the most essential changes, but the result was unsatisfactory and even that patch got quite large. If you can give me some hints on how the file /etc/X11/xkb/symbols/nl is used, I'd be more than happy to test that as well (if possible). Cheers, Frans
diff -ur symbols.orig/nl symbols/nl
--- symbols.orig/nl 2005-04-03 22:58:40.000000000 +0200
+++ symbols/nl 2005-04-03 22:59:16.000000000 +0200
@@ -3,12 +3,13 @@
// converted from the nl-latin.map of the Linux kbd package by
// Pablo Saratxaga <srtxg@f2219.n293.z2.fidonet.org>
+// Revised by Frans Pop <aragorn@tiscali.nl>, April 2005
default partial alphanumeric_keys
xkb_symbols "basic" {
// Describes the differences between a very simple US/ASCII
- // keyboard and a very simple Nederland keyboard
+ // keyboard and a very simple Dutch keyboard
// Alphanumeric section
name[Group1]= "Nederland";
@@ -22,7 +23,7 @@
key <AE04> { [ 4, dollar ],
[ onequarter ] };
key <AE05> { [ 5, percent ],
- [ EuroSign ] };
+ [ onehalf ] };
key <AE06> { [ 6, ampersand ],
[ threequarters ] };
key <AE07> { [ 7, underscore ],
@@ -34,59 +35,40 @@
key <AE10> { [ 0, apostrophe ] };
key <AE11> { [ slash, question ],
[ backslash ] };
- key <AE12> { [ degree, dead_tilde ],
- [ dead_cedilla ] };
+ key <AE12> { [ degree, asciitilde ],
+ [ dead_cedilla, dead_tilde ] };
key <AD03> { [ e, E ],
- [ eacute, Eacute ] };
+ [ EuroSign ] };
key <AD04> { [ r, R ],
- [ paragraph, registered ] };
- key <AD05> { [ t, T ],
- [ thorn, THORN ] };
+ [ paragraph ] };
key <AD06> { [ y, Y ],
- [ ydiaeresis, yen ] };
- key <AD07> { [ u, U ],
- [ udiaeresis, Udiaeresis ] };
- key <AD08> { [ i, I ],
- [ idiaeresis, Idiaeresis ] };
- key <AD09> { [ o, O ],
- [ ograve, Ograve ] };
- key <AD10> { [ p, P ],
- [ paragraph ] };
- key <AD11> { [ dead_diaeresis, dead_tilde ],
- [ asciitilde, asciicircum ] };
+ [ yen ] };
+ key <AD11> { [ dead_diaeresis, dead_circumflex ],
+ [ asciicircum ] };
key <AD12> { [ asterisk, bar ] };
- key <AC01> { [ a, A ],
- [ aacute, Aacute ] };
key <AC02> { [ s, S ],
[ ssharp ] };
- key <AC03> { [ d, D ],
- [ eth, ETH ] };
- key <AC04> { [ f, F ],
- [ ordfeminine, ordfeminine ] };
key <AC10> { [ plus, plusminus ] };
- key <AC11> { [ apostrophe, grave ],
- [ dead_acute, dead_grave ] };
+ key <AC11> { [ dead_acute, dead_grave ],
+ [ grave ] };
key <TLDE> { [ at, section ],
[ notsign ] };
key <BKSL> { [ less, greater ] };
key <AB01> { [ z, Z ],
[ guillemotleft ] };
key <AB02> { [ x, X ],
- [ guillemotright ] };
+ [ guillemotright ] };
key <AB03> { [ c, C ],
[ cent, copyright ] };
- key <AB06> { [ n, N ],
- [ ntilde, Ntilde ] };
key <AB07> { [ m, M ],
- [ Greek_mu, masculine ] };
- key <AB08> { [ comma, semicolon ],
- [ cedilla, guillemotleft ] };
+ [ mu ] };
+ key <AB08> { [ comma, semicolon ] };
key <AB09> { [ period, colon ],
- [ periodcentered, guillemotright ] };
+ [ periodcentered ] };
key <AB10> { [ minus, equal ],
[ hyphen ] };
- key <LSGT> { [ bracketleft, bracketright ],
- [ bar ] };
+ key <LSGT> { [ bracketright, bracketleft ],
+ [ brokenbar ] };
// End alphanumeric section
diff -ur symbols.orig/pc/nl symbols/pc/nl
--- symbols.orig/pc/nl 2005-04-03 22:58:40.000000000 +0200
+++ symbols/pc/nl 2005-04-03 22:59:10.000000000 +0200
@@ -5,49 +5,68 @@
// converted from the nl-latin.map of the Linux kbd package by
// Pablo Saratxaga <srtxg@f2219.n293.z2.fidonet.org>
+// Revised by Frans Pop <aragorn@tiscali.nl>, April 2005
+
//
// $XFree86: xc/programs/xkbcomp/symbols/pc/nl,v 1.3 2003/04/19 12:22:12 pascal Exp $
default partial alphanumeric_keys
xkb_symbols "basic" {
- include "pc/latin"
-
name[Group1]="Nederland";
- key <AE02> { [ 2, quotedbl, twosuperior, oneeighth ] };
- key <AE06> { [ 6, ampersand, threequarters, fiveeighths ] };
- key <AE07> { [ 7, underscore, sterling, seveneighths ] };
- key <AE08> { [ 8, parenleft, braceleft, VoidSymbol ] };
- key <AE09> { [ 9, parenright, braceright, VoidSymbol ] };
- key <AE10> { [ 0, apostrophe, VoidSymbol, VoidSymbol ] };
+ key <TLDE> { [ at, section, notsign ] };
+ key <AE01> { [ 1, exclam, onesuperior, exclamdown ] };
+ key <AE02> { [ 2, quotedbl, twosuperior, masculine ] };
+ key <AE03> { [ 3, numbersign, threesuperior, ordfeminine ] };
+ key <AE04> { [ 4, dollar, onequarter ] };
+ key <AE05> { [ 5, percent, onehalf ] };
+ key <AE06> { [ 6, ampersand, threequarters ] };
+ key <AE07> { [ 7, underscore, sterling ] };
+ key <AE08> { [ 8, parenleft, braceleft ] };
+ key <AE09> { [ 9, parenright, braceright ] };
+ key <AE10> { [ 0, apostrophe, VoidSymbol ] };
key <AE11> { [ slash, question, backslash, questiondown ] };
key <AE12> { [ degree, asciitilde, dead_cedilla, dead_tilde ] };
- key <AD03> { [ e, E, eacute, Eacute ] };
- key <AD05> { [ t, T, thorn, THORN ] };
- key <AD06> { [ y, Y, ydiaeresis, yen ] };
- key <AD07> { [ u, U, udiaeresis, Udiaeresis ] };
- key <AD08> { [ i, I, idiaeresis, Idiaeresis ] };
- key <AD09> { [ o, O, ograve, Ograve ] };
- key <AD10> { [ p, P, VoidSymbol ] };
+ key <AD01> { [ q, Q, VoidSymbol ] };
+ key <AD02> { [ w, W, VoidSymbol ] };
+ key <AD03> { [ e, E, EuroSign ] };
+ key <AD04> { [ r, R, paragraph, registered ] };
+ key <AD05> { [ t, T, VoidSymbol, trademark ] };
+ key <AD06> { [ y, Y, yen ] };
+ key <AD07> { [ u, U, VoidSymbol ] };
+ key <AD08> { [ i, I, VoidSymbol ] };
+ key <AD09> { [ o, O, oslash, Ooblique ] };
+ key <AD10> { [ p, P, thorn, THORN ] };
key <AD11> { [dead_diaeresis, dead_circumflex, asciicircum ] };
key <AD12> { [ asterisk, bar, VoidSymbol ] };
- key <AC01> { [ a, A, aacute, Aacute ] };
- key <AC04> { [ f, F, ordfeminine, ordfeminine ] };
- key <AC10> { [ plus, plusminus, VoidSymbol ] };
+ key <AC01> { [ a, A, ae, AE ] };
+ key <AC02> { [ s, S, ssharp ] };
+ key <AC03> { [ d, D, VoidSymbol ] };
+ key <AC04> { [ f, F, VoidSymbol ] };
+ key <AC05> { [ g, G, VoidSymbol ] };
+ key <AC06> { [ h, H, VoidSymbol ] };
+ key <AC07> { [ j, J, VoidSymbol ] };
+ key <AC08> { [ k, K, VoidSymbol ] };
+ key <AC09> { [ l, L, VoidSymbol ] };
+ key <AC10> { [ plus, plusminus, multiply, division ] };
key <AC11> { [dead_acute, dead_grave, grave ] };
- key <TLDE> { [ at, section, notsign, notsign ] };
-
key <BKSL> { [ less, greater, VoidSymbol ] };
+
+ key <LSGT> { [bracketright, bracketleft, brokenbar, VoidSymbol ] };
+ key <AB01> { [ z, Z, guillemotleft ] };
+ key <AB02> { [ x, X, guillemotright ] };
+ key <AB03> { [ c, C, cent, copyright ] };
+ key <AB04> { [ v, V, VoidSymbol ] };
+ key <AB05> { [ b, B, VoidSymbol ] };
key <AB06> { [ n, N, ntilde, Ntilde ] };
- key <AB07> { [ m, M, mu, masculine ] };
+ key <AB07> { [ m, M, mu ] };
key <AB08> { [ comma, semicolon, VoidSymbol ] };
key <AB09> { [ period, colon, periodcentered ] };
- key <AB10> { [ minus, equal, hyphen, dead_abovedot] };
+ key <AB10> { [ minus, equal, hyphen, macron ] };
- key <LSGT> { [bracketright, bracketleft, brokenbar ] };
include "level3(ralt_switch)"
};
Attachment:
xkb_nl.tgz
Description: application/tgz