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