diff -uNr xkeyboard-config-0.8.orig/docs/README.enhancing xkeyboard-config-0.8/docs/README.enhancing --- xkeyboard-config-0.8.orig/docs/README.enhancing 2005-09-21 23:29:24.000000000 +0200 +++ xkeyboard-config-0.8/docs/README.enhancing 2006-09-15 19:49:03.000000000 +0200 @@ -293,6 +293,19 @@ Lock+LevelThree modifiers apply the symbol from the third level is taken. This also, shift-cancels-caps variant. + FOUR_LEVEL_MIXED_KEYPAD + A four-level keypad scheme where the first two levels are + controled by NumLock, with LevelThree overriding them and adding + two Shift-ed levels + Intended for the digit area of the keypad + + FOUR_LEVEL_X + A four-level scheme where the base level accepts no modifier, + LevelThree provides two more Shift-ed levels like in the previous + scheme, and Ctrl+Alt controls the fourth level + Intended for the operator part of a keypad, though since NumLock + plays no part, it is not keypad-specific + Besides that, there are several schemes for special purposes: PC_BREAK diff -uNr xkeyboard-config-0.8.orig/po/fr.po xkeyboard-config-0.8/po/fr.po --- xkeyboard-config-0.8.orig/po/fr.po 2006-03-04 18:41:23.000000000 +0100 +++ xkeyboard-config-0.8/po/fr.po 2006-09-15 19:49:03.000000000 +0200 @@ -179,6 +179,9 @@ msgid "Alternative" msgstr "Autre" +msgid "Alternative with unicode additions" +msgstr "Autre, avec des suppléments unicode" + #: ../rules/base.xml.in.h:41 msgid "Alternative international (former us_intl)" msgstr "International (auparavant us_intl)" diff -uNr xkeyboard-config-0.8.orig/rules/base xkeyboard-config-0.8/rules/base --- xkeyboard-config-0.8.orig/rules/base 2006-02-28 00:14:28.000000000 +0100 +++ xkeyboard-config-0.8/rules/base 2006-09-15 19:49:03.000000000 +0200 @@ -251,6 +251,8 @@ * yu = pc(pc105)+srp $pcmodels fr-latin9 = pc(%m)+fr(latin9) * fr-latin9 = pc(pc105)+fr(latin9) + $pcmodels fr-unicode = pc(%m)+fr(unicode) + * fr-unicode = pc(pc105)+fr(unicode) $pcmodels us_intl = pc(%m)+us(alt-intl) * us_intl = pc(pc105)+us(alt-intl) $pcmodels ben(basic) = pc(%m)+in(ben) @@ -409,6 +411,8 @@ * yu = pc(pc105)+srp%(v[1]) $pcmodels fr-latin9 = pc(%m)+fr(latin9)%(v[1]) * fr-latin9 = pc(pc105)+fr(latin9)%(v[1]) + $pcmodels fr-unicode = pc(%m)+fr(unicode)%(v[1]) + * fr-unicode = pc(pc105)+fr(unicode)%(v[1]) $pcmodels us_intl = pc(%m)+us(alt-intl)%(v[1]) * us_intl = pc(pc105)+us(alt-intl)%(v[1]) $pcmodels ben(basic) = pc(%m)+in(ben) @@ -610,6 +614,7 @@ tml = +in(tam)%(v[2]):2 yu = +srp%(v[2]):2 fr-latin9 = +fr(latin9)%(v[2]):2 + fr-unicode = +fr(unicode)%(v[2]):2 us_intl = +us(alt-intl)%(v[2]):2 ben(basic) = +in(ben):2 ben(probhat) = +in(ben_probhat):2 @@ -679,6 +684,7 @@ tml = +in(tam)%(v[3]):3 yu = +srp%(v[3]):3 fr-latin9 = +fr(latin9)%(v[3]):3 + fr-unicode = +fr(unicode)%(v[3]):3 us_intl = +us(alt-intl)%(v[3]):3 ben(basic) = +in(ben):3 ben(probhat) = +in(ben_probhat):3 @@ -748,6 +754,7 @@ tml = +in(tam)%(v[4]):4 yu = +srp%(v[4]):4 fr-latin9 = +fr(latin9)%(v[4]):4 + fr-unicode = +fr(unicode)%(v[4]):4 us_intl = +us(alt-intl)%(v[4]):4 ben(basic) = +in(ben):4 ben(probhat) = +in(ben_probhat):4 diff -uNr xkeyboard-config-0.8.orig/rules/base.lst xkeyboard-config-0.8/rules/base.lst --- xkeyboard-config-0.8.orig/rules/base.lst 2006-03-04 18:45:00.000000000 +0100 +++ xkeyboard-config-0.8/rules/base.lst 2006-09-15 19:49:03.000000000 +0200 @@ -260,6 +260,7 @@ latin9 fr: Alternative latin9_nodeadkeys fr: Alternative, eliminate dead keys latin9_sundeadkeys fr: Alternative, Sun dead keys + unicode fr:Alternative with unicode additions dvorak fr: Dvorak generic gh: Multilingual akan gh: Akan diff -uNr xkeyboard-config-0.8.orig/rules/base.xml.in xkeyboard-config-0.8/rules/base.xml.in --- xkeyboard-config-0.8.orig/rules/base.xml.in 2006-02-26 17:12:33.000000000 +0100 +++ xkeyboard-config-0.8/rules/base.xml.in 2006-09-15 19:49:03.000000000 +0200 @@ -1331,6 +1331,12 @@ + unicode + <_description>Alternative with unicode additions + + + + latin9_nodeadkeys <_description>Alternative, eliminate dead keys diff -uNr xkeyboard-config-0.8.orig/symbols/fr xkeyboard-config-0.8/symbols/fr --- xkeyboard-config-0.8.orig/symbols/fr 2005-09-28 00:15:11.000000000 +0200 +++ xkeyboard-config-0.8/symbols/fr 2006-09-16 01:24:26.000000000 +0200 @@ -83,9 +83,9 @@ // Historic Linux French keyboard layout (fr-latin9) // Copyright (c) 199x, 2002 Rene Cougnenc (original work) -// Guylhem Aznar (maintainer) +// Guylhem Aznar // Nicolas Mailhot -// (XFree86 submission) +// (active maintainer)) // // $XFree86: xc/programs/xkbcomp/symbols/fr-latin9,v 1.1 2002/12/20 02:07:11 dawes Exp $ // @@ -107,45 +107,45 @@ // (If you can't read it you probably have no business changing this file anyway:) // // Les accents circonflexes des principales voyelles sont obtenus avec -// la touche Alt_Gr, les trémas sont obtenus par Alt_Gr + Shift. +// la touche Alt_Gr, les trémas sont obtenus par Alt_Gr + Shift. // // ____ _________ _____________ _______ -// | S A| S = Shift, A = AltGr + Shift | Imprime | Arrêt défil | Pause | +// | S A| S = Shift, A = AltGr + Shift | Imprime | Arrêt défil | Pause | // | s a| s = normal, a = AltGr | Exec | | Halte | -// ¯¯¯¯ ¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯ +// ¯¯¯¯ ¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯ // ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ _______ -// | ½ "| 1 ·| 2 É| 3 ,| 4 '| 5 "| 6 || 7 È| 8 ¯| 9 Ç| 0 À| ° ÿ| + °| <-- | -// | ¼ "| & '| é ~| " #| ' {| ( [| - || è `| _ \| ç ^| à @| ) ]| = }| | +// | Å“ "| 1 ·| 2 É| 3 ,| 4 '| 5 "| 6 || 7 È| 8 ¯| 9 Ç| 0 À| ° ÿ| + °| <-- | +// | Å’ "| & '| é ~| " #| ' {| ( [| - || è `| _ \| ç ^| à @| ) ]| = }| | // ======================================================================== -// | |<- | A ä| Z Å| E ¢| R Ç| T Þ| Y Ý| U ü| I ï| O ö| P '| " `| $ ë| , | -// | ->| | a â| z å| e ¤| r ç| t þ| y ý| u û| i î| o ô| p ¶| ^ ~| £ ê| <-' | -// ===================================================================¬ | -// | | Q Ä| S Ø| D Ë| F ª| G Æ| H Ð| J Ü| K Ï| L Ö| M º| % Ù| µ ¥| | -// | MAJ | q Â| s ø| d Ê| f ±| g æ| h ð| j Û| k Î| l Ô| m ¹| ù ²| * ³| | +// | |<- | A ä| Z Ã…| E ¢| R Ç| T Þ| Y Ã| U ü| I ï| O ö| P '| " `| $ ë| , | +// | ->| | a â| z Ã¥| e €| r ç| t þ| y ý| u û| i î| o ô| p ¶| ^ ~| £ ê| <-' | +// ===================================================================¬ | +// | | Q Ä| S Ø| D Ë| F ª| G Æ| H Ã| J Ãœ| K Ã| L Ö| M º| % Ù| µ Â¥| | +// | MAJ | q Â| s ø| d Ê| f ±| g æ| h ð| j Û| k ÃŽ| l Ô| m ¹| ù ²| * ³| | // ======================================================================== -// | ^ | > | W | X | C | V | B | N | ? | . | / | § | ^ | -// | | | < || w «| x »| c ©| v ®| b ß| n ¬| , ¿| ; ×| : ÷| ! ¡| | | +// | ^ | > | W | X | C | V | B | N | ? | . | / | § | ^ | +// | | | < || w «| x »| c ©| v ®| b ß| n ¬| , ¿| ; ×| : ÷| ! ¡| | | // ======================================================================== // | | | | | | | | | // | Ctrl | Meta | Alt | Space Nobreakspace | AltGr | Multi|Menu | Ctrl | -// ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯ ¯¯¯¯¯¯ +// ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯ ¯¯¯¯¯¯ // // // Si les touches mortes fonctionnent, utiliser les accents dits -// « morts », i.e. fonctionnant comme l'accent circonflexe & le -// tréma des machines à écrire ; sont disponibles : +// « morts », i.e. fonctionnant comme l'accent circonflexe & le +// tréma des machines à écrire ; sont disponibles : // // (^) : accent circonflexe, -// Shift+(^) : tréma, +// Shift+(^) : tréma, // Shift+AltGr (^) : tilde, // AltGr (1) : accent aigu, // AltGr (7) : accent grave // -// Pour s'en servir, procéder comme avec l'accent circonflexe & le tréma -// sur les vielles machines à écrire : +// Pour s'en servir, procéder comme avec l'accent circonflexe & le tréma +// sur les vielles machines à écrire : // -// AltGr (1) puis e : é -// Shift+AltGr (1) puis e : É ... +// AltGr (1) puis e : é +// Shift+AltGr (1) puis e : É ... partial alphanumeric_keys @@ -216,6 +216,88 @@ include "level3(ralt_switch)" }; + +// Unicode derivative of the historic Linux French keyboard layout +// Copyright © 2006 Nicolas Mailhot +// +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲â”â”â”â”â”â”â”â”┓ +// │ Å’ Ŭ │ 1 ´ │ 2 É │ 3 ¸ │ 4 ’ │ 5 ¨ │ 6 ¦ │ 7 È │ 8 ¯ │ 9 Ç │ 0 À │ ° ÿ │ + Ëš ┃↠Retour┃ +// │ Å“ Å­ │ & ´ │ é ~ │ " # │ ' { │ ( [ │ - | │ è ` │ _ \ │ ç ^ │ à @ │ ) ] │ = } ┃arrière ┃ +// ┢â”â”â”â”â”â”·â”┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺â”┳â”â”â”â”â”â”┫ +// ┃ ┃ A  │ Z Ã… │ E ¢ │ R Ç │ T Þ │ Y à │ U Û │ I ÃŽ │ O Ô │ P ` │ ¨ ' │ £ Ê ┃Entrée┃ +// ┃Tab ↹ ┃ a â │ z Ã¥ │ e € │ r ç │ t þ │ y ý │ u û │ i î │ o ô │ p ¶ │ ^ ~ │ $ ê ┃ ↵ ┃ +// ┣â”â”â”â”â”â”â”┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ +// ┃ ┃ Q Ä │ S Ø │ D Ë │ F ª │ G Æ │ H à │ J Ãœ │ K à │ L Ö │ M º │ % Ù │ µ Â¥ ┃ ┃ +// ┃Maj ⇬ ┃ q ä │ s ø │ d ë │ f ± │ g æ │ h ð │ j ü │ k ï │ l ö │ m ¹ │ ù ² │ * ³ ┃ ┃ +// ┣â”â”â”â”â”â”â”┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷â”â”â”â”â”â”»â”â”â”â”â”┫ +// ┃ ┃ > ≥ │ W “ │ X †│ C â„¢ │ V │ B – │ N — │ ? … │ . . │ / ∕ │ § − ┃ ┃ +// ┃Shift ⇧┃ < ≤ │ w « │ x » │ c © │ v ® │ b ß │ n ¬ │ , ¿ │ ; × │ : ÷ │ ! ¡ ┃Shift ⇧ ┃ +// ┣â”â”â”â”â”â”â”â•‹â”â”â”â”â”┷┳â”â”â”â”â”·â”┱───┴─────┴─────┴─────┴─────┴─────┴────┲┷â”â”â”â”â”╈â”â”â”â”â”┻┳â”â”â”â”â”â”┳â”â”â”â”â”› +// ┃ ┃ ┃ ┃ Espace insécable┃ ┃ ┃ ┃ +// ┃Ctrl ┃Meta ┃Alt ┃Espace ┃AltGr⇮┃Menu ┃Ctrl ┃ +// â”—â”â”â”â”â”â”â”â”»â”â”â”â”â”â”â”»â”â”â”â”â”â”┹──────────────────────────────────────┺â”â”â”â”â”â”â”»â”â”â”â”â”â”â”»â”â”â”â”â”â”â”› + +partial alphanumeric_keys +xkb_symbols "unicode" { + + include "fr(latin9)" + + name[Group1]="France - Alternative with unicode additions"; + + // Replace doublequotemarks with ubreve + key { [ oe, OE, ubreve, Ubreve ] }; // Å“ Å’ Å­ Ŭ + + // Move acute and remove periodcentered + key { [ ampersand, 1, dead_acute, acute ] }; // & 1 ´ ´ + + // Add correct unicode typographical apostrophe + key { [ apostrophe, 4, braceleft, rightsinglequotemark ] }; // ' 4 { ’ + + // Group accented letters with the corresponding accented caps + key { [ a, A, acircumflex, Acircumflex ] }; // a A â  + key { [ u, U, ucircumflex, Ucircumflex ] }; // u U û Û + key { [ i, I, icircumflex, Icircumflex ] }; // i I î ÃŽ + key { [ o, O, ocircumflex, Ocircumflex ] }; // o O ô Ô + key { [ dollar, sterling, ecircumflex, Ecircumflex ] }; // $ £ ê Ê + + key { [ q, Q, adiaeresis, Adiaeresis ] }; // q Q ä Ä + key { [ j, J, udiaeresis, Udiaeresis ] }; // j J ü Ãœ + key { [ k, K, idiaeresis, Idiaeresis ] }; // k K ï à + key { [ l, L, odiaeresis, Odiaeresis ] }; // l L ö Ö + key { [ d, D, ediaeresis, Ediaeresis ] }; // d D ë Ë + + // Move doublequotemarks + key { [ w, W, guillemotleft, leftdoublequotemark ] }; // w W « “ + key { [ x, X, guillemotright, rightdoublequotemark ] }; // x X » †+ + // add trademark access + key { [ c, C, copyright, trademark ] }; // c C © â„¢ + + // add typographical dashes, ellipsis and narrow no-break space + key { [ v, V, registered, 0x100202F ] }; // v V ® "narrow no-break space" + key { [ b, B, ssharp, 0x1002013 ] }; // b B ß – + key { [ n, N, notsign, 0x1002014 ] }; // n N ¬ — + key { [ comma, question, questiondown, 0x1002026 ] }; // , ? ¿ … + + // Add more math operators + key { [ semicolon, period, multiply, 0x10022C5 ] }; // ; . × â‹… + key { [ colon, slash, division, 0x1002215 ] }; // : / ÷ ¿ + key { [ exclam, section, exclamdown, 0x1002212 ] }; // ! § ¡ ¿ + + + // Add brokenbar access + key { [ less, greater, lessthanequal, greaterthanequal ] }; // < > ¿ ¿ + + // Make nobreakspace harder to hit + key { [ space, space, space, nobreakspace ] }; + + // Add math operators and arrows to the keypad + include "keypad(unimath)" + include "keypad(uniarrows)" +}; + + + partial alphanumeric_keys xkb_symbols "latin9_Sundeadkeys" { @@ -252,7 +334,7 @@ key { [ asciicircum, diaeresis, asciitilde, quoteright ] }; }; -// Keymap Dvorak pour le Français +// Keymap Dvorak pour le Français // par Josselin Mouette . partial alphanumeric_keys diff -uNr xkeyboard-config-0.8.orig/symbols/fr~ xkeyboard-config-0.8/symbols/fr~ --- xkeyboard-config-0.8.orig/symbols/fr~ 1970-01-01 01:00:00.000000000 +0100 +++ xkeyboard-config-0.8/symbols/fr~ 2006-09-16 01:24:21.000000000 +0200 @@ -0,0 +1,401 @@ +// $XKeyboardConfig: xkbdesc/symbols/fr,v 1.8 2005/01/16 02:18:20 svu Exp $ + +// based on a keyboard map from an 'xkb/symbols/fr' file +// +// $XFree86: xc/programs/xkbcomp/symbols/fr,v 1.2 2002/11/22 04:03:28 dawes Exp $ + +partial default alphanumeric_keys +xkb_symbols "basic" { + + include "latin" + + name[Group1]="France"; + + key { [ ampersand, 1, onesuperior, exclamdown ] }; + key { [ eacute, 2, asciitilde, oneeighth ] }; + key { [ quotedbl, 3, numbersign, sterling ] }; + key { [apostrophe, 4, braceleft, dollar ] }; + key { [ parenleft, 5, bracketleft, threeeighths ] }; + key { [ minus, 6, bar, fiveeighths ] }; + key { [ egrave, 7, grave, seveneighths ] }; + key { [underscore, 8, backslash, trademark ] }; + key { [ ccedilla, 9, asciicircum, plusminus ] }; + key { [ agrave, 0, at, degree ] }; + key { [parenright, degree, bracketright, questiondown ] }; + key { [ equal, plus, braceright, dead_ogonek ] }; + + key { [ a, A, ae, AE ] }; + key { [ z, Z, guillemotleft, less ] }; + key { [ e, E, EuroSign, cent ] }; + key { [dead_circumflex, dead_diaeresis, dead_diaeresis, dead_abovering ] }; + key { [ dollar, sterling, currency, dead_macron ] }; + + key { [ q, Q, at, Greek_OMEGA ] }; + key { [ m, M, mu, masculine ] }; + key { [ ugrave, percent, dead_circumflex, dead_caron] }; + key { [twosuperior, asciitilde, notsign, notsign ] }; + + key { [ asterisk, mu, dead_grave, dead_breve ] }; + key { [ w, W, lstroke, Lstroke ] }; + key { [ comma, question, dead_acute, dead_doubleacute ] }; + key { [ semicolon, period, horizconnector, multiply ] }; + key { [ colon, slash, periodcentered, division ] }; + key { [ exclam, section, dead_belowdot, dead_abovedot ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "Sundeadkeys" { + + // Modifies the basic French layout to use the Sun dead keys + + include "fr(basic)" + + key { [SunFA_Circum, SunFA_Diaeresis ] }; + key { [comma, question, SunFA_Acute, dead_doubleacute ] }; +}; + +partial alphanumeric_keys +xkb_symbols "sundeadkeys" { + include "fr(Sundeadkeys)" + + name[Group1]="France - Sun dead keys"; +}; + +partial alphanumeric_keys +xkb_symbols "nodeadkeys" { + + // Modifies the basic French layout to eliminate all dead keys + + include "fr(basic)" + + name[Group1]="France - Eliminate dead keys"; + + key { [ equal, plus, braceright, ogonek ] }; + key { [asciicircum, diaeresis ] }; + key { [ dollar, sterling, currency, macron ] }; + key { [ ugrave, percent, asciicircum, caron ] }; + key { [ asterisk, mu, grave, breve ] }; + key { [ comma, question, acute, doubleacute ] }; + key { [ exclam, section, dead_belowdot, abovedot ] }; +}; + +// Historic Linux French keyboard layout (fr-latin9) +// Copyright (c) 199x, 2002 Rene Cougnenc (original work) +// Guylhem Aznar +// Nicolas Mailhot +// (active maintainer)) +// +// $XFree86: xc/programs/xkbcomp/symbols/fr-latin9,v 1.1 2002/12/20 02:07:11 dawes Exp $ +// +// This layout has long been distributed and refined outside official channels. +// To this day it remains more feature-rich and popular than the 'fr' layout. +// +// This file is derived from an original version by Guylhem Aznar. The +// original version is always available from: +// http://en.tldp.org/HOWTO/Francophones-HOWTO.html +// and is distributed under a GPL license. +// +// The author has given permission for this derived version to be distributed +// under the standard XFree86 license. He would like all changes to this +// version be send to him at so he can sync the +// identically named linux console map (kbd, linux-console) and this +// fileout-of-tree GPL version. +// +// Now follows the keyboard design description in French. +// (If you can't read it you probably have no business changing this file anyway:) +// +// Les accents circonflexes des principales voyelles sont obtenus avec +// la touche Alt_Gr, les trémas sont obtenus par Alt_Gr + Shift. +// +// ____ _________ _____________ _______ +// | S A| S = Shift, A = AltGr + Shift | Imprime | Arrêt défil | Pause | +// | s a| s = normal, a = AltGr | Exec | | Halte | +// ¯¯¯¯ ¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯ +// ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ _______ +// | Å“ "| 1 ·| 2 É| 3 ,| 4 '| 5 "| 6 || 7 È| 8 ¯| 9 Ç| 0 À| ° ÿ| + °| <-- | +// | Å’ "| & '| é ~| " #| ' {| ( [| - || è `| _ \| ç ^| à @| ) ]| = }| | +// ======================================================================== +// | |<- | A ä| Z Ã…| E ¢| R Ç| T Þ| Y Ã| U ü| I ï| O ö| P '| " `| $ ë| , | +// | ->| | a â| z Ã¥| e €| r ç| t þ| y ý| u û| i î| o ô| p ¶| ^ ~| £ ê| <-' | +// ===================================================================¬ | +// | | Q Ä| S Ø| D Ë| F ª| G Æ| H Ã| J Ãœ| K Ã| L Ö| M º| % Ù| µ Â¥| | +// | MAJ | q Â| s ø| d Ê| f ±| g æ| h ð| j Û| k ÃŽ| l Ô| m ¹| ù ²| * ³| | +// ======================================================================== +// | ^ | > | W | X | C | V | B | N | ? | . | / | § | ^ | +// | | | < || w «| x »| c ©| v ®| b ß| n ¬| , ¿| ; ×| : ÷| ! ¡| | | +// ======================================================================== +// | | | | | | | | | +// | Ctrl | Meta | Alt | Space Nobreakspace | AltGr | Multi|Menu | Ctrl | +// ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯ ¯¯¯¯¯¯ +// +// +// Si les touches mortes fonctionnent, utiliser les accents dits +// « morts », i.e. fonctionnant comme l'accent circonflexe & le +// tréma des machines à écrire ; sont disponibles : +// +// (^) : accent circonflexe, +// Shift+(^) : tréma, +// Shift+AltGr (^) : tilde, +// AltGr (1) : accent aigu, +// AltGr (7) : accent grave +// +// Pour s'en servir, procéder comme avec l'accent circonflexe & le tréma +// sur les vielles machines à écrire : +// +// AltGr (1) puis e : é +// Shift+AltGr (1) puis e : É ... + +partial alphanumeric_keys + +xkb_symbols "latin9" { + + include "latin" + + name[Group1]="France - Alternative"; + + key { [ oe, OE, leftdoublequotemark, rightdoublequotemark ] }; + key { [ ampersand, 1, dead_acute, periodcentered ] }; + key { [ eacute, 2, asciitilde, Eacute ] }; + key { [ quotedbl, 3, numbersign, cedilla ] }; + key { [ apostrophe, 4, braceleft, acute ] }; + key { [ parenleft, 5, bracketleft, diaeresis ] }; + key { [ minus, 6, bar, brokenbar ] }; + key { [ egrave, 7, dead_grave, Egrave ] }; + key { [ underscore, 8, backslash, macron ] }; + key { [ ccedilla, 9, asciicircum, Ccedilla ] }; + key { [ agrave, 0, at, Agrave ] }; + key { [ parenright, degree, bracketright, ydiaeresis ] }; + key { [ equal, plus, braceright, dead_abovering ] }; + + key { [ a, A, acircumflex, adiaeresis ] }; + key { [ z, Z, aring, Aring ] }; + key { [ e, E, EuroSign, cent ] }; + key { [ r, R, ccedilla, Ccedilla ] }; + key { [ t, T, thorn, THORN ] }; + key { [ y, Y, yacute, Yacute ] }; + key { [ u, U, ucircumflex, udiaeresis ] }; + key { [ i, I, icircumflex, idiaeresis ] }; + key { [ o, O, ocircumflex, odiaeresis ] }; + key { [ p, P, paragraph, quoteleft ] }; + key { [ dead_circumflex, dead_diaeresis, dead_tilde, quoteright ] }; + key { [ dollar, sterling, ecircumflex, ediaeresis ] }; + + key { [ q, Q, Acircumflex, Adiaeresis ] }; + key { [ s, S, oslash, Ooblique ] }; + key { [ d, D, Ecircumflex, Ediaeresis ] }; + key { [ f, F, plusminus, ordfeminine ] }; + key { [ g, G, ae, AE ] }; + key { [ h, H, eth, ETH ] }; + key { [ j, J, Ucircumflex, Udiaeresis ] }; + key { [ k, K, Icircumflex, Idiaeresis ] }; + key { [ l, L, Ocircumflex, Odiaeresis ] }; + key { [ m, M, onesuperior, masculine ] }; + key { [ ugrave, percent, twosuperior, Ugrave ] }; + key { [ asterisk, mu, threesuperior, yen ] }; + + key { [ less, greater, bar ] }; + key { [ w, W, guillemotleft ] }; + key { [ x, X, guillemotright ] }; + key { [ c, C, copyright ] }; + key { [ v, V, registered ] }; + key { [ b, B, ssharp ] }; + key { [ n, N, notsign ] }; + key { [ comma, question, questiondown ] }; + key { [ semicolon, period, multiply ] }; + key { [ colon, slash, division ] }; + key { [ exclam, section, exclamdown ] }; + + key { [ space, space, nobreakspace ] }; + + // French uses a comma as decimal separator, but keyboards are labeled with a period + // Will take effect when KP_Decimal is mapped to the locale decimal separator + key { [ KP_Delete, period, KP_Delete, KP_Decimal ] }; + + include "level3(ralt_switch)" +}; + +// Unicode derivative of the historic Linux French keyboard layout +// Copyright © 2006 Nicolas Mailhot +// +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲â”â”â”â”â”â”â”â”┓ +// │ Å’ Ŭ │ 1 ´ │ 2 É │ 3 ¸ │ 4 ’ │ 5 ¨ │ 6 ¦ │ 7 È │ 8 ¯ │ 9 Ç │ 0 À │ ° ÿ │ + Ëš ┃↠Retour┃ +// │ Å“ Å­ │ & ´ │ é ~ │ " # │ ' { │ ( [ │ - | │ è ` │ _ \ │ ç ^ │ à @ │ ) ] │ = } ┃arrière ┃ +// ┢â”â”â”â”â”â”·â”┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺â”┳â”â”â”â”â”â”┫ +// ┃ ┃ A  │ Z Ã… │ E ¢ │ R Ç │ T Þ │ Y à │ U Û │ I ÃŽ │ O Ô │ P ` │ ¨ ' │ £ Ê ┃Entrée┃ +// ┃Tab ↹ ┃ a â │ z Ã¥ │ e € │ r ç │ t þ │ y ý │ u û │ i î │ o ô │ p ¶ │ ^ ~ │ $ ê ┃ ↵ ┃ +// ┣â”â”â”â”â”â”â”┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ +// ┃ ┃ Q Ä │ S Ø │ D Ë │ F ª │ G Æ │ H à │ J Ãœ │ K à │ L Ö │ M º │ % Ù │ µ Â¥ ┃ ┃ +// ┃Maj ⇬ ┃ q ä │ s ø │ d ë │ f ± │ g æ │ h ð │ j ü │ k ï │ l ö │ m ¹ │ ù ² │ * ³ ┃ ┃ +// ┣â”â”â”â”â”â”â”┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷â”â”â”â”â”â”»â”â”â”â”â”┫ +// ┃ ┃ > ≥ │ W “ │ X †│ C â„¢ │ V │ B – │ N — │ ? … │ . . │ / ∕ │ § − ┃ ┃ +// ┃Shift ⇧┃ < ≤ │ w « │ x » │ c © │ v ® │ b ß │ n ¬ │ , ¿ │ ; × │ : ÷ │ ! ¡ ┃Shift ⇧ ┃ +// ┣â”â”â”â”â”â”â”â•‹â”â”â”â”â”┷┳â”â”â”â”â”·â”┱───┴─────┴─────┴─────┴─────┴─────┴────┲┷â”â”â”â”â”╈â”â”â”â”â”┻┳â”â”â”â”â”â”┳â”â”â”â”â”› +// ┃ ┃ ┃ ┃ Espace insécable┃ ┃ ┃ ┃ +// ┃Ctrl ┃Meta ┃Alt ┃Espace ┃AltGr⇮┃Menu ┃Ctrl ┃ +// â”—â”â”â”â”â”â”â”â”»â”â”â”â”â”â”â”»â”â”â”â”â”â”┹──────────────────────────────────────┺â”â”â”â”â”â”â”»â”â”â”â”â”â”â”»â”â”â”â”â”â”â”› + +partial alphanumeric_keys +xkb_symbols "unicode" { + + include "fr(latin9)" + + name[Group1]="France - Alternative with unicode additions"; + + // Replace doublequotemarks with ubreve + key { [ oe, OE, ubreve, Ubreve ] }; // Å“ Å’ Å­ Ŭ + + // Move acute and remove periodcentered + key { [ ampersand, 1, dead_acute, acute ] }; // & 1 ´ ´ + + // Add correct unicode typographical apostrophe + key { [ apostrophe, 4, braceleft, rightsinglequotemark ] }; // ' 4 { ’ + + // Group accented letters with the corresponding accented caps + key { [ a, A, acircumflex, Acircumflex ] }; // a A â  + key { [ u, U, ucircumflex, Ucircumflex ] }; // u U û Û + key { [ i, I, icircumflex, Icircumflex ] }; // i I î ÃŽ + key { [ o, O, ocircumflex, Ocircumflex ] }; // o O ô Ô + key { [ dollar, sterling, ecircumflex, Ecircumflex ] }; // $ £ ê Ê + + key { [ q, Q, adiaeresis, Adiaeresis ] }; // q Q ä Ä + key { [ j, J, udiaeresis, Udiaeresis ] }; // j J ü Ãœ + key { [ k, K, idiaeresis, Idiaeresis ] }; // k K ï à + key { [ l, L, odiaeresis, Odiaeresis ] }; // l L ö Ö + key { [ d, D, ediaeresis, Ediaeresis ] }; // d D ë Ë + + // Move doublequotemarks + key { [ w, W, guillemotleft, leftdoublequotemark ] }; // w W « “ + key { [ x, X, guillemotright, rightdoublequotemark ] }; // x X » †+ + // add trademark access + key { [ c, C, copyright, trademark ] }; // c C © â„¢ + + // add typographical dashes, ellipsis and narrow no-break space + key { [ v, V, registered, 0x100202F ] }; // v V ® "narrow no-break space" + key { [ b, B, ssharp, 0x1002013 ] }; // b B ß – + key { [ n, N, notsign, 0x1002014 ] }; // n N ¬ — + key { [ comma, question, questiondown, 0x1002026 ] }; // , ? ¿ … + + // Add more math operators + key { [ semicolon, period, multiply, 0x10022C5 ] }; // ; . × â‹… + key { [ colon, slash, division, 0x1002215 ] }; // : / ÷ ¿ + key { [ exclam, section, exclamdown, 0x1002212 ] }; // ! § ¡ ¿ + + + // Add brokenbar access + key { [ less, greater, lessthanequal, greaterthanequal ] }; // < > ¿ ¿ + + // Make nobreakspace harder to hit + key { [ space, space, space, nobreakspace ] }; + + // Add math operators and arrows to the keypad + include "keypad(unimath)" + include "keypad(uniarrows)" +}; + + + +partial alphanumeric_keys +xkb_symbols "latin9_Sundeadkeys" { + + // Modifies the basic fr-latin9 layout to use the Sun dead keys + + include "fr(latin9)" + + key { [ ampersand, 1, SunFA_Acute, periodcentered ] }; + key { [ egrave, 7, SunFA_Grave, Egrave ] }; + key { [ SunFA_Circum, SunFA_Diaeresis, SunFA_Tilde, quoteright ] }; + +}; + +partial alphanumeric_keys +xkb_symbols "latin9_sundeadkeys" { + + include "fr(latin9_Sundeadkeys)" + + name[Group1]="France - Alternative, Sun dead keys"; +}; + +partial alphanumeric_keys +xkb_symbols "latin9_nodeadkeys" { + + // Modifies the basic fr-latin9 layout to eliminate all dead keys + + include "fr(latin9)" + + name[Group1]="France - Alternative, eliminate dead keys"; + + key { [ ampersand, 1, apostrophe, periodcentered ] }; + key { [ egrave, 7, grave, Egrave ] }; + key { [ equal, plus, braceright ] }; + key { [ asciicircum, diaeresis, asciitilde, quoteright ] }; +}; + +// Keymap Dvorak pour le Français +// par Josselin Mouette . + +partial alphanumeric_keys +xkb_symbols "dvorak" { + + name[Group1]= "France - Dvorak"; + + key { [ oe, OE, ae, AE ] }; + + key { [ slash, 1, ampersand, onesuperior ] }; + key { [ plus, 2, asciitilde, twosuperior ] }; + key { [ minus, 3, numbersign, threesuperior ] }; + key { [ asterisk, 4, less, guillemotleft ] }; + key { [ equal, 5, greater, guillemotright ] }; + key { [ backslash, 6, at, notsign ] }; + key { [ parenleft, 7, dead_circumflex, multiply ] }; + key { [ grave, 8, dead_grave, division ] }; + key { [ parenright, 9, asciicircum, plusminus ] }; + key { [ quotedbl, 0, dead_diaeresis, dead_diaeresis ] }; + key { [bracketleft, braceleft, bar, degree ] }; + key { [bracketright, braceright, percent, percent ] }; + + key { [ colon, question, question, questiondown ] }; + key { [ agrave, Agrave, aring, Aring ] }; + key { [ eacute, Eacute, EuroSign, cent ] }; + key { [ g, G, oslash, Ooblique ] }; + key { [ period, exclam, periodcentered, exclamdown ] }; + key { [ h, H, eth, ETH ] }; + key { [ v, V ] }; + key { [ c, C, copyright, registered ] }; + key { [ m, M, mu, mu ] }; + key { [ k, K, dollar, dollar ] }; + key { [ egrave, Egrave, sterling, sterling ] }; + key { [ z, Z, yen, yen ] }; + + key { [ o, O, ocircumflex, Ocircumflex ] }; + key { [ a, A, acircumflex, Acircumflex ] }; + key { [ u, U, ucircumflex, Ucircumflex ] }; + key { [ e, E, ecircumflex, Ecircumflex ] }; + key { [ b, B, ssharp, ssharp ] }; + key { [ f, F ] }; + key { [ s, S ] }; + key { [ t, T, thorn, THORN ] }; + key { [ n, N, ntilde, Ntilde ] }; + key { [ d, D, section, section ] }; + key { [ w, W, paragraph, paragraph ] }; + key { [ ugrave, Ugrave, masculine, ordfeminine ] }; + + key { [ apostrophe, underscore, dead_acute, macron ] }; + key { [ q, Q, guillemotleft, guillemotleft ] }; + key { [ comma, semicolon, guillemotright, guillemotright ] }; + key { [ i, I, icircumflex, Icircumflex ] }; + key { [ y, Y, ydiaeresis, Ydiaeresis ] }; + key { [ x, X, ediaeresis, Ediaeresis ] }; + key { [ r, R, udiaeresis, Udiaeresis ] }; + key { [ l, L, adiaeresis, Adiaeresis ] }; + key { [ p, P, odiaeresis, Odiaeresis ] }; + key { [ j, J, idiaeresis, Idiaeresis ] }; + + key { [ space, space, nobreakspace, nobreakspace ] }; + key { [ ccedilla, Ccedilla ] }; + + include "level3(ralt_switch)" +}; + diff -uNr xkeyboard-config-0.8.orig/symbols/keypad xkeyboard-config-0.8/symbols/keypad --- xkeyboard-config-0.8.orig/symbols/keypad 2005-09-21 23:29:26.000000000 +0200 +++ xkeyboard-config-0.8/symbols/keypad 2006-09-16 01:59:07.000000000 +0200 @@ -87,3 +87,77 @@ xkb_symbols "comma" { key { [ KP_Delete, KP_Separator ] }; }; + + +// Keypad part with unicode math operators +// Copyright © 2006 Nicolas Mailhot +// +// â”â”â”â”â”â”┱─────┬─────┬─────┠+// ┃Num ┃ ∕ ₠│ . â‚‚ │ − ₃ │ â‚ +// ┃Lock⇭┃ / ÷ │ * × │ - − │ â‚‚ +// ┡â”â”â”â”â”╃─────┼─────┼─────┤ ₃ +// │ + â‚„ │ â‚„ +// │ │ +// ┤ │ 1 None +// │ │ 2 Level3 +// │ + + │ 3 Shift+Level3 +// ╆â”â”â”â”â”┪ 4 Ctrl+Alt + + + +partial hidden keypad_keys +xkb_symbols "unimath" { + + key.type[Group1] = "FOUR_LEVEL_X" ; + + key { [ KP_Divide, 0x1002215, 0x10000F7, XF86_Ungrab ] }; // / ∕ ÷ + key { [ KP_Multiply, 0x10022C5, 0x10000D7, XF86_ClearGrab ] }; // * â‹… × + key { [ KP_Subtract, 0x1002212, 0x1002212, XF86_Prev_VMode ] }; // - − − + + key { [ KP_Add, 0x100002B, 0x100002B, XF86_Next_VMode ] }; // + + + + +}; + + +// Keypad part with arrows +// Copyright © 2006 Nicolas Mailhot +// +// â”â”â”â”â”â”â”± (Usual keypad level1 not represented) +// ┃Num ┃ +// ┃Lock⇭┃ â‚ narrow no-break space +// ┡â”â”â”â”â”╃─────┼─────┼ +// │ 7 ⇖ │ 8 ⇑ │ 9 ⇗ │ 1 None +// │ ↖ │ ↑ │ ↗ │ 2 Num Lock +// ├─────┼─────┼─────┤ 3 Level3 +// │ 4 ⇠│ 5 ⇔ │ 6 ⇗ │ 4 Shift+Level3 +// │ ↠│ ↔ │ ↗ │ +// ├─────┼─────┼─────╆â”â”â”â”â”┪ +// │ 1 ⇙ │ 2 ⇓ │ 3 ⇘ ┃Enter┃ +// │ ↙ │ ↓ │ ↘ ┃ ↵ ┃ +// ├─────┴─────┼─────┨ ┃ +// │ 0 ⇕ │ . ₠┃ ┃ +// │ ↕ │ , ┃ ┃ +// └───────────┴─────┺â”â”â”â”â”â”› + +partial hidden keypad_keys +xkb_symbols "uniarrows" { + + key.type[Group1] = "FOUR_LEVEL_MIXED_KEYPAD" ; + + key { [ KP_Home, KP_7, 0x1002196, 0x10021D6 ] }; // 7 ↖ ⇖ + key { [ KP_Up, KP_8, 0x1002191, 0x10021D1 ] }; // 8 ↑ ⇑ + key { [ KP_Prior, KP_9, 0x1002197, 0x10021D7 ] }; // 9 ↗ ⇗ + + key { [ KP_Left, KP_4, 0x1002190, 0x10021D0 ] }; // 4 ↠⇠+ key { [ KP_Begin, KP_5, 0x1002194, 0x10021D4 ] }; // 5 ↔ ⇔ + key { [ KP_Right, KP_6, 0x1002192, 0x10021D2 ] }; // 6 → ⇒ + + key { [ KP_End, KP_1, 0x1002199, 0x10021D9 ] }; // 1 ↙ ⇙ + key { [ KP_Down, KP_2, 0x1002193, 0x10021D3 ] }; // 2 ↓ ⇓ + key { [ KP_Next, KP_3, 0x1002198, 0x10021D8 ] }; // 3 ↘ ⇘ + + key { [ KP_Insert, KP_0, 0x1002195, 0x10021D5 ] }; // 0 ↕ ⇕ + // We could use KP_Decimal and KP_Separator but we do not want the locale + // decimal and separator symbol but locale-insensitive dot and comma + key { [ KP_Delete, period, comma, 0x100202F ] }; // . , "narrow no-break space" +}; diff -uNr xkeyboard-config-0.8.orig/symbols/keypad~ xkeyboard-config-0.8/symbols/keypad~ --- xkeyboard-config-0.8.orig/symbols/keypad~ 1970-01-01 01:00:00.000000000 +0100 +++ xkeyboard-config-0.8/symbols/keypad~ 2006-09-15 19:49:03.000000000 +0200 @@ -0,0 +1,129 @@ +// $XKeyboardConfig: xkbdesc/symbols/keypad,v 1.2 2004/09/14 19:14:36 svu Exp $ +// $Xorg: keypad,v 1.3 2000/08/17 19:54:43 cpqbld Exp $ + +partial hidden keypad_keys +xkb_symbols "overlay" { + include "keypad(overlay1)" +}; + +partial hidden keypad_keys +xkb_symbols "overlay1" { + + // Begin "Keypad" section + + key { [ KP_Home ], overlay1= }; + key { [ KP_Up ], overlay1= }; + key { [ KP_Prior ], overlay1= }; + + key { [ KP_Left ], overlay1= }; + key { [ KP_Begin ], overlay1= }; + key { [ KP_Right ], overlay1= }; + + key { [ KP_End ], overlay1= }; + key { [ KP_Down ], overlay1= }; + key { [ KP_Next ], overlay1= }; + + key { [ KP_Insert ], overlay1= }; + key { [ KP_Delete ], overlay1= }; + + key { [ KP_7 ] }; + key { [ KP_8 ] }; + key { [ KP_9 ] }; + + key { [ KP_4 ] }; + key { [ KP_5 ] }; + key { [ KP_6 ] }; + + key { [ KP_1 ] }; + key { [ KP_2 ] }; + key { [ KP_3 ] }; + + key { [ KP_0 ] }; + key { [ KP_Decimal ] }; + + // End "Keypad" section +}; + +partial hidden keypad_keys +xkb_symbols "overlay2" { + + // Begin "Keypad" section + + key { [ KP_Home ], overlay2= }; + key { [ KP_Up ], overlay2= }; + key { [ KP_Prior ], overlay2= }; + + key { [ KP_Left ], overlay2= }; + key { [ KP_Begin ], overlay2= }; + key { [ KP_Right ], overlay2= }; + + key { [ KP_End ], overlay2= }; + key { [ KP_Down ], overlay2= }; + key { [ KP_Next ], overlay2= }; + + key { [ KP_Insert ], overlay2= }; + key { [ KP_Delete ], overlay2= }; + + key { [ KP_7 ] }; + key { [ KP_8 ] }; + key { [ KP_9 ] }; + + key { [ KP_4 ] }; + key { [ KP_5 ] }; + key { [ KP_6 ] }; + + key { [ KP_1 ] }; + key { [ KP_2 ] }; + key { [ KP_3 ] }; + + key { [ KP_0 ] }; + key { [ KP_Decimal ] }; + + // End "Keypad" section +}; + +// Some national standards use comma on the keypad instead of decimal dot +partial keypad_keys +xkb_symbols "comma" { + key { [ KP_Delete, KP_Separator ] }; +}; + +// Math keypad with unicode operators +// Added by nicolas.mailhot at laposte.net +partial hidden keypad_keys +xkb_symbols "unimath" { + + key.type[Group1] = "FOUR_LEVEL_X" ; + + key { [ KP_Divide, 0x1002215, 0x10000F7, XF86_Ungrab ] }; // / ∕ ÷ + key { [ KP_Multiply, 0x10022C5, 0x10000D7, XF86_ClearGrab ] }; // * â‹… × + key { [ KP_Subtract, 0x1002212, 0x1002212, XF86_Prev_VMode ] }; // - − − + + key { [ KP_Add, 0x100002B, 0x100002B, XF86_Next_VMode ] }; // + + + + +}; + +// Adds arrow symbols to the keypad digit keys +// Added by nicolas.mailhot at laposte.net +partial hidden keypad_keys +xkb_symbols "uniarrows" { + + key.type[Group1] = "FOUR_LEVEL_MIXED_KEYPAD" ; + + key { [ KP_Home, KP_7, 0x1002196, 0x10021D6 ] }; // 7 ↖ ⇖ + key { [ KP_Up, KP_8, 0x1002191, 0x10021D1 ] }; // 8 ↑ ⇑ + key { [ KP_Prior, KP_9, 0x1002197, 0x10021D7 ] }; // 9 ↗ ⇗ + + key { [ KP_Left, KP_4, 0x1002190, 0x10021D0 ] }; // 4 ↠⇠+ key { [ KP_Begin, KP_5, 0x1002194, 0x10021D4 ] }; // 5 ↔ ⇔ + key { [ KP_Right, KP_6, 0x1002192, 0x10021D2 ] }; // 6 → ⇒ + + key { [ KP_End, KP_1, 0x1002199, 0x10021D9 ] }; // 1 ↙ ⇙ + key { [ KP_Down, KP_2, 0x1002193, 0x10021D3 ] }; // 2 ↓ ⇓ + key { [ KP_Next, KP_3, 0x1002198, 0x10021D8 ] }; // 3 ↘ ⇘ + + key { [ KP_Insert, KP_0, 0x1002195, 0x10021D5 ] }; // 0 ↕ ⇕ + // We could use KP_Decimal and KP_Separator but we do not want the locale + // decimal and separator symbol but locale-insensitive dot and comma + key { [ KP_Delete, period, comma, 0x100202F ] }; // . , "narrow no-break space" +}; diff -uNr xkeyboard-config-0.8.orig/types/extra xkeyboard-config-0.8/types/extra --- xkeyboard-config-0.8.orig/types/extra 2005-10-16 03:24:47.000000000 +0200 +++ xkeyboard-config-0.8/types/extra 2006-09-15 19:49:03.000000000 +0200 @@ -68,6 +68,36 @@ level_name[Level4] = "Alt Number"; }; + // Another four level keypad variant + // First two levels controled by NumLock + // LevelThree overrides this mode, with two Shift-ed levels + type "FOUR_LEVEL_MIXED_KEYPAD" { + modifiers = Shift+NumLock+LevelThree; + map[None] = Level1; + map[NumLock] = Level2; + map[LevelThree] = Level3; + map[NumLock+LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Shift+NumLock+LevelThree] = Level4; + level_name[Level1] = "Base"; + level_name[Level2] = "Number"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + }; + + // Base level, two Shift-ed LevelThree levels, one Ctrl+Alt command level + type "FOUR_LEVEL_X" { + modifiers = Shift+LevelThree+Control+Alt; + map[None] = Level1; + map[LevelThree] = Level2; + map[Shift+LevelThree] = Level3; + map[Control+Alt] = Level4; + level_name[Level1] = "Base"; + level_name[Level2] = "Alt Base"; + level_name[Level3] = "Shift Alt"; + level_name[Level4] = "Ctrl+Alt"; + }; + // Special type for keys used in Serbian Latin Unicode map // It makes it possible to use all three forms of latin letters // present in Unicode that are made up of two separate letters