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-17 18:24:48.000000000 +0200
@@ -293,6 +293,20 @@
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 similar
+ to the KEYPAD scheme (NumLock+Shift)
+ LevelThree acts as an override providing access to two Shift-ed
+ levels. When LevelThree is active we totally ignore NumLock state
+ 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-17 17:34:52.000000000 +0200
@@ -175,22 +175,31 @@
msgid "Alt/Win key behavior"
msgstr "Comportement des touches Alt/Logo"
-#: ../rules/base.xml.in.h:40
msgid "Alternative"
msgstr "Autre"
-#: ../rules/base.xml.in.h:41
-msgid "Alternative international (former us_intl)"
-msgstr "International (auparavant us_intl)"
+msgid "Alternative, latin-9 only"
+msgstr "Autre, restreinte latin-9"
-#: ../rules/base.xml.in.h:42
msgid "Alternative, Sun dead keys"
msgstr "Autre, touches mortes Sun"
-#: ../rules/base.xml.in.h:43
msgid "Alternative, eliminate dead keys"
msgstr "Autre, sans touches mortes"
+msgid "(Legacy) Alternative"
+msgstr "(Obsolète) Autre"
+
+msgid "(Legacy) Alternative, Sun dead keys"
+msgstr "(Obsolète) Autre, touches mortes Sun"
+
+msgid "Legacy alternative, eliminate dead keys"
+msgstr "(Obsolète) Autre, sans touches mortes"
+
+#: ../rules/base.xml.in.h:41
+msgid "Alternative international (former us_intl)"
+msgstr "International (auparavant us_intl)"
+
#: ../rules/base.xml.in.h:44
#, fuzzy
msgid "And"
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-17 17:10:00.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-oss = pc(%m)+fr(oss)
+ * fr-oss = pc(pc105)+fr(oss)
$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-oss = pc(%m)+fr(oss)%(v[1])
+ * fr-oss = pc(pc105)+fr(oss)%(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-oss = +fr(oss)%(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-oss = +fr(oss)%(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-oss = +fr(oss)%(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.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-17 17:32:42.000000000 +0200
@@ -1325,24 +1325,48 @@
- latin9
+ oss
<_description>Alternative
- latin9_nodeadkeys
+ oss_latin9
+ <_description>Alternative, latin-9 only
+
+
+
+
+ oss_nodeadkeys
<_description>Alternative, eliminate dead keys
- latin9_sundeadkeys
+ oss_sundeadkeys
<_description>Alternative, Sun dead keys
+ latin9
+ <_description>(Legacy) Alternative
+
+
+
+
+ latin9_nodeadkeys
+ <_description>(Legacy) Alternative, eliminate dead keys
+
+
+
+
+ latin9_sundeadkeys
+ <_description>(Legacy) Alternative, Sun dead keys
+
+
+
+
dvorak
<_description>Dvorak
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-17 18:03:25.000000000 +0200
@@ -81,6 +81,179 @@
key { [ exclam, section, dead_belowdot, abovedot ] };
};
+
+// Unicode French derivative
+// Loose refactoring of the historic Linux French keyboard layout
+//
+// Copyright © 2006 Nicolas Mailhot
+//
+// Credits (fr-latin1, fr-latin0, fr-latin9)
+// © 199x-1996 René Cougnenc ✝
+// © 1997-2002 Guylhem Aznar
+// © 2003-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 "oss" {
+
+ include "latin"
+ include "level3(ralt_switch)"
+ include "keypad(oss)"
+
+ name[Group1]="France - Alternative";
+
+ // First row
+ key { [ 0x1000140, 0x100013F, dead_grave, dead_cedilla ] }; // ŀ Ŀ ` ¸
+ key { [ ampersand, 1, dead_acute, sterling ] }; // & 1 ´ £
+ key { [ eacute, 2, asciitilde, Eacute ] }; // é 2 ~ É
+ key { [ quotedbl, 3, numbersign, 0x1002011 ] }; // " 3 # ‑ (tiret insécable)
+ key { [ apostrophe, 4, braceleft, 0x1002013 ] }; // ' 4 { – (tiret demi-cadratin)
+ key { [ parenleft, 5, bracketleft, 0x1002014 ] }; // ( 5 } — (tiret cadratin)
+ key { [ minus, 6, bar, brokenbar ] }; // - 6 | ¦
+ key { [ egrave, 7, grave, Egrave ] }; // è 7 ` È
+ key { [ underscore, 8, backslash, trademark ] }; // _ 8 \ ™
+ key { [ ccedilla, 9, asciicircum, Ccedilla ] }; // ç 9 ^ Ç
+ key { [ agrave, 0, at, Agrave ] }; // à 0 @ À
+ key { [ parenright, degree, bracketright, notequal ] }; // ) ° ] ≠
+ key { [ equal, plus, braceright, plusminus ] }; // = + } ±
+
+ // Second row
+ key { [ a, A, ae, AE ] }; // a A æ Æ
+ key { [ z, Z, acircumflex, Acircumflex ] }; // z Z â Â
+ key { [ e, E, EuroSign, cent ] }; // e E € ¢
+ key { [ r, R, ecircumflex, Ecircumflex ] }; // r R ê Ê
+ key { [ t, T, thorn, THORN ] }; // t T þ Þ
+ key { [ y, Y, ycircumflex, Ycircumflex ] }; // y Y ÿ Ÿ
+ key { [ u, U, ucircumflex, Ucircumflex ] }; // u U û Û
+ key { [ i, I, icircumflex, Icircumflex ] }; // i I î Î
+ key { [ o, O, oe, OE ] }; // o O œ Œ
+ key { [ p, P, oslash, Ooblique ] }; // p P ø Ø
+ key { [ dead_circumflex, dead_diaeresis, dead_tilde, dead_abovering ] }; // ^ ̈ ̃ ˚
+ key { [ dollar, dead_caron, dead_macron, dead_breve ] }; // $ ̌ ̄ ̆
+
+ // Third row
+ key { [ q, Q, adiaeresis, Adiaeresis ] }; // q Q ä Ä
+ key { [ s, S, ssharp, doublelowquotemark ] }; // s S ß „
+ key { [ d, D, ediaeresis, Ediaeresis ] }; // d D ë Ë
+ key { [ f, F, leftsinglequotemark, quoteleft ] }; // f F ‘ `
+ key { [ g, G, rightsinglequotemark, quoteright ] }; // g G ’ '
+ key { [ h, H, eth, ETH ] }; // h H ð Ð
+ key { [ j, J, udiaeresis, Udiaeresis ] }; // j J ü Ü
+ key { [ k, K, idiaeresis, Idiaeresis ] }; // k K ï Ï
+ key { [ l, L, ocircumflex, Ocircumflex ] }; // l L ô Ô
+ key { [ m, M, onesuperior, masculine ] }; // m M ¹ º
+ key { [ ugrave, percent, twosuperior, Ugrave ] }; // ù % ² Ù
+ key { [ asterisk, mu, threesuperior, yen ] }; // * µ ³ ¥
+
+ // Fourth row
+ key { [ less, greater, lessthanequal, greaterthanequal ] }; // < > ≤ ≥
+ key { [ w, W, guillemotleft, leftdoublequotemark ] }; // w W « “
+ key { [ x, X, guillemotright, rightdoublequotemark ] }; // x X » ”
+ key { [ c, C, copyright, registered ] }; // c C © ®
+ key { [ v, V, leftarrow, 0x100202F ] }; // v V ← ⍽ (espace fine insécable)
+ key { [ b, B, downarrow, uparrow ] }; // b B ↓ ↑
+ key { [ n, N, rightarrow, notsign ] }; // n N → ¬
+ key { [ comma, question, questiondown, 0x1002026 ] }; // , ? ¿ …
+ key { [ semicolon, period, multiply, 0x10022C5 ] }; // ; . × ⋅
+ key { [ colon, slash, division, 0x1002215 ] }; // : / ÷ ∕
+ key { [ exclam, section, exclamdown, 0x1002212 ] }; // ! § ¡ −
+
+ // Make nobreakspace harder to hit
+ key { [ space, space, space, nobreakspace ] }; // ␣ ␣ ␣ ⍽ (espace insécable)
+};
+
+partial alphanumeric_keys
+xkb_symbols "oss_latin9" {
+
+ // Restricts the fr(oss) layout to latin9 symbols
+
+ include "fr(oss)"
+ include "keypad(oss_latin9)"
+
+ name[Group1]="France - Alternative, latin-9 only";
+
+ // First row
+ key { [ periodcentered, periodcentered, dead_grave, dead_cedilla ] }; // · · ` ¸
+ key { [ quotedbl, 3, numbersign, minus ] }; // " 3 # -
+ key { [ apostrophe, 4, braceleft, minus ] }; // ' 4 { -
+ key { [ parenleft, 5, bracketleft, underscore ] }; // ( 5 } _
+ key { [ dollar, dead_caron, dead_macron, dead_macron ] }; // $ ̌ ̄ ̄
+
+ // Third row
+ key { [ s, S, ssharp, guillemotleft ] }; // s S ß «
+ key { [ f, F, apostophe, quoteleft ] }; // f F ' `
+ key { [ g, G, apostrophe, quoteright ] }; // g G ' '
+
+ // Fourth row
+ key { [ less, greater, less, greater ] }; // < > < >
+ key { [ w, W, guillemotleft, guillemotleft ] }; // w W « «
+ key { [ x, X, guillemotright, guillemotright ] }; // x X » »
+ key { [ v, V, less, nobreakspace ] }; // v V < ⍽ (espace insécable)
+ key { [ b, B, minus, asciicircum ] }; // b B - ^
+ key { [ n, N, greater, notsign ] }; // n N > ¬
+ key { [ comma, question, questiondown, period ] }; // , ? ¿ .
+ key { [ semicolon, period, multiply, periodcentered ] }; // ; . × ·
+ key { [ colon, slash, division, slash ] }; // : / ÷ /
+ key { [ exclam, section, exclamdown, minus ] }; // ! § ¡ -
+};
+
+partial alphanumeric_keys
+xkb_symbols "oss_Sundeadkeys" {
+
+ // Modifies the basic fr(oss) layout to use the Sun dead keys
+
+ include "fr(oss)"
+
+ // First row
+ key { [ 0x1000140, 0x100013F, SunFA_Grave, SunFA_Cedilla ] }; // ŀ Ŀ ` ¸
+ key { [ ampersand, 1, SunFA_Acute, sterling ] }; // & 1 ´ £
+
+ // Second row
+ key { [ SunFA_Circum, SunFA_Diaeresis, SunFA_Tilde, dead_abovering ] }; // ^ ̈ ̃ ˚
+};
+
+partial alphanumeric_keys
+xkb_symbols "oss_sundeadkeys" {
+
+ include "fr(oss_Sundeadkeys)"
+
+ name[Group1]="France - Alternative, Sun dead keys";
+};
+
+partial alphanumeric_keys
+xkb_symbols "oss_nodeadkeys" {
+
+ // Modifies the basic fr(oss) layout to eliminate all dead keys
+
+ include "fr(oss)"
+
+ name[Group1]="France - Alternative, eliminate dead keys";
+
+ // First row
+ key { [ 0x1000140, 0x100013F, grave, dead_cedilla ] }; // ŀ Ŀ ` ¸
+ key { [ ampersand, 1, acute, sterling ] }; // & 1 ´ £
+
+ // Second row
+ key { [ asciicircum, diaeresis, asciitilde, Aring ] }; // ^ ̈ ~ Å
+ key { [ dollar, caron, macron, breve ] }; // $ ̌ ̄ ̆
+};
+
+
// Historic Linux French keyboard layout (fr-latin9)
// Copyright (c) 199x, 2002 Rene Cougnenc (original work)
// Guylhem Aznar (maintainer)
@@ -107,53 +280,52 @@
// (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 trmas 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 | Arrt dfil | 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
-// trma des machines crire ; sont disponibles :
+// « morts », i.e. fonctionnant comme l'accent circonflexe & le
+// tréma des machines à écrire ; sont disponibles :
//
// (^) : accent circonflexe,
-// Shift+(^) : trma,
+// Shift+(^) : tréma,
// Shift+AltGr (^) : tilde,
// AltGr (1) : accent aigu,
// AltGr (7) : accent grave
//
-// Pour s'en servir, procder comme avec l'accent circonflexe & le trma
-// 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
xkb_symbols "latin9" {
include "latin"
- name[Group1]="France - Alternative";
+ name[Group1]="France - (Legacy) Alternative";
key { [ oe, OE, leftdoublequotemark, rightdoublequotemark ] };
key { [ ampersand, 1, dead_acute, periodcentered ] };
@@ -234,7 +406,7 @@
include "fr(latin9_Sundeadkeys)"
- name[Group1]="France - Alternative, Sun dead keys";
+ name[Group1]="France - (Legacy) Alternative, Sun dead keys";
};
partial alphanumeric_keys
@@ -244,7 +416,7 @@
include "fr(latin9)"
- name[Group1]="France - Alternative, eliminate dead keys";
+ name[Group1]="France - (Legacy) Alternative, eliminate dead keys";
key { [ ampersand, 1, apostrophe, periodcentered ] };
key { [ egrave, 7, grave, Egrave ] };
@@ -252,7 +424,7 @@
key { [ asciicircum, diaeresis, asciitilde, quoteright ] };
};
-// Keymap Dvorak pour le Franais
+// Keymap Dvorak pour le Français
// par Josselin Mouette .
partial alphanumeric_keys
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-17 18:15:42.000000000 +0200
@@ -87,3 +87,215 @@
xkb_symbols "comma" {
key { [ KP_Delete, KP_Separator ] };
};
+
+
+// Legacy PC keypad definition
+// Copyright © 2006 Nicolas Mailhot
+keypad_keys
+xkb_symbols "legacy" {
+
+ include "keypad(core)"
+ include "keypad(legacymath)"
+ include "keypad(legacynumber)"
+};
+
+
+// Complete new keypad definition
+// Copyright © 2006 Nicolas Mailhot
+keypad_keys
+xkb_symbols "oss" {
+
+ include "keypad(core)"
+ include "keypad(ossmath)"
+ include "keypad(ossnumber)"
+};
+
+
+// Latin9 restriction of new keypad definition
+// Copyright © 2006 Nicolas Mailhot
+keypad_keys
+xkb_symbols "oss_latin9" {
+
+ include "keypad(core)"
+ include "keypad(ossmath_latin9)"
+ include "keypad(legacynumber)"
+
+ key { type="FOUR_LEVEL_MIXED_KEYPAD",
+ [ KP_Delete, period, comma, nobreakspace ] }; // . , ⍽ (no-break space)
+};
+
+// Keypad keys nobody changes
+// Copyright © 2006 Nicolas Mailhot
+partial keypad_keys
+xkb_symbols "core" {
+
+ modifier_map Mod2 { Num_Lock };
+
+ key { [ Num_Lock, Pointer_EnableKeys ] };
+ key { [ KP_Enter ] };
+ key { [ KP_Equal ] };
+};
+
+
+// Legacy keypad math area
+// Copyright © 2006 Nicolas Mailhot
+//
+// ┏━━━━━┱─────┬─────┬─────┐
+// ┃Num ┃ ₁ │ ₂ │ ₃ │ ₁
+// ┃Lock⇭┃ / │ * │ - │ ₂
+// ┡━━━━━╃─────┼─────┼─────┤ ₃
+// │ ₄ │ ₄
+// │ │
+// ┤ │ 1 None
+// │ │ 2 Ctrl+Alt
+// │ + │
+// ╆━━━━━┪
+partial keypad_keys
+xkb_symbols "legacymath" {
+
+ key.type[Group1]="CTRL+ALT" ;
+
+ key { [ KP_Divide, XF86_Ungrab ] }; // /
+ key { [ KP_Multiply, XF86_ClearGrab ] }; // *
+ key { [ KP_Subtract, XF86_Prev_VMode ] }; // -
+
+ key { [ KP_Add, XF86_Next_VMode ] }; // +
+
+};
+
+
+// Keypad math area with non-CS operators
+// Copyright © 2006 Nicolas Mailhot
+//
+// ┏━━━━━┱─────┬─────┬─────┐
+// ┃Num ┃ ∕ ₁ │ . ₂ │ − ₃ │ ₁
+// ┃Lock⇭┃ / ÷ │ * × │ - − │ ₂
+// ┡━━━━━╃─────┼─────┼─────┤ ₃
+// │ + ₄ │ ₄
+// │ │
+// ┤ │ 1 None
+// │ │ 2 Level3 ⇮
+// │ + + │ 3 Shift+Level3 ⇧⇮
+// ╆━━━━━┪ 4 Ctrl+Alt
+partial keypad_keys
+xkb_symbols "ossmath" {
+
+ 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 math area with non-CS operators, restricted to latin9
+// Copyright © 2006 Nicolas Mailhot
+//
+// ┏━━━━━┱─────┬─────┬─────┐
+// ┃Num ┃ / ₁ │ · ₂ │ - ₃ │ ₁
+// ┃Lock⇭┃ / ÷ │ * × │ - - │ ₂
+// ┡━━━━━╃─────┼─────┼─────┤ ₃
+// │ + ₄ │ ₄
+// │ │
+// ┤ │ 1 None
+// │ │ 2 Level3 ⇮
+// │ + + │ 3 Shift+Level3 ⇧⇮
+// ╆━━━━━┪ 4 Ctrl+Alt
+partial keypad_keys
+xkb_symbols "ossmath_latin9" {
+
+ key.type[Group1]="FOUR_LEVEL_X";
+
+ key { [ KP_Divide, slash, division, XF86_Ungrab ] }; // / / ÷
+ key { [ KP_Multiply, periodcentered, multiply, XF86_ClearGrab ] }; // * · ×
+ key { [ KP_Subtract, minus, minus, XF86_Prev_VMode ] }; // - - -
+
+ key { [ KP_Add, plus, plus, XF86_Next_VMode ] }; // + + +
+};
+
+
+// Legacy keypad number area
+// Copyright © 2006 Nicolas Mailhot
+//
+// ┏━━━━━┱ ⇱ Home
+// ┃Num ┃ ⇲ End
+// ┃Lock⇭┃ ⇞ Page up
+// ┡━━━━━╃─────┼─────┼ ⇟ Page down
+// │ 7 │ 8 │ 9 │ ⇞ Page up
+// │ ⇱ │ ⇧ │ ⇞ │ ⎀ Insert
+// ├─────┼─────┼─────┤ ␥ Delete
+// │ 4 │ 5 │ 6 │ ⇦⇧⇨⇩ Directions
+// │ ⇦ │ │ ⇨ │
+// ├─────┼─────┼─────╆━━━━━┪
+// │ 1 │ 2 │ 3 ┃Enter┃
+// │ ⇲ │ ⇩ │ ⇟ ┃ ⎆ ┃ 1 None
+// ├─────┴─────┼─────┨ ┃ 2 Num Lock ⇭
+// │ 0 │ . ┃ ┃
+// │ ⎀ │ ␥ ┃ ┃
+// └───────────┴─────┺━━━━━┛
+partial keypad_keys
+xkb_symbols "legacynumber" {
+
+ key.type[Group1]="KEYPAD" ;
+
+ key { [ KP_Home, KP_7 ] }; // 7
+ key { [ KP_Up, KP_8 ] }; // 8
+ key { [ KP_Prior, KP_9 ] }; // 9
+
+ key { [ KP_Left, KP_4 ] }; // 4
+ key { [ KP_Begin, KP_5 ] }; // 5
+ key { [ KP_Right, KP_6 ] }; // 6
+
+ key { [ KP_End, KP_1 ] }; // 1
+ key { [ KP_Down, KP_2 ] }; // 2
+ key { [ KP_Next, KP_3 ] }; // 3
+
+ key { [ KP_Insert, KP_0 ] }; // 0
+ key { [ KP_Delete, KP_Decimal ] }; // .
+};
+
+
+// Keypad number area with arrow symbols
+// Copyright © 2006 Nicolas Mailhot
+//
+// ┏━━━━━┱ ⇱ Home
+// ┃Num ┃ ⇲ End
+// ┃Lock⇭┃ ⇞ Page up
+// ┡━━━━━╃─────┼─────┼ ⇟ Page down
+// │ 7 ⇖ │ 8 ⇑ │ 9 ⇗ │ ⇞ Page up
+// │ ⇱ ↖ │ ⇧ ↑ │ ⇞ ↗ │ ⎀ Insert
+// ├─────┼─────┼─────┤ ␥ Delete
+// │ 4 ⇐ │ 5 ⇔ │ 6 ⇗ │ ⇦⇧⇨⇩ Directions
+// │ ⇦ ← │ ↔ │ ⇨ ↗ │ ⍽ narrow no-break space
+// ├─────┼─────┼─────╆━━━━━┪
+// │ 1 ⇙ │ 2 ⇓ │ 3 ⇘ ┃Enter┃
+// │ ⇲ ↙ │ ⇩ ↓ │ ⇟ ↘ ┃ ⎆ ┃ 1 None
+// ├─────┴─────┼─────┨ ┃ 2 Num Lock ⇭
+// │ 0 ⇕ │ . ⍽ ┃ ┃ 3 Level3 ⇮
+// │ ⎀ ↕ │ ␥ , ┃ ┃ 4 Shift+Level3 ⇧⇮
+// └───────────┴─────┺━━━━━┛
+partial keypad_keys
+xkb_symbols "ossnumber" {
+
+ 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-17 18:27:44.000000000 +0200
@@ -68,6 +68,40 @@
level_name[Level4] = "Alt Number";
};
+ // Another four level keypad variant
+ // First two levels are controled by NumLock (with active Shift-ing like
+ // in KEYPAD). LevelThree overrides this mode, with two additional
+ // Shift-ed levels
+ // NumLock state is intentionnaly ignored when LevelThree is active
+ type "FOUR_LEVEL_MIXED_KEYPAD" {
+ modifiers = Shift+NumLock+LevelThree;
+ map[None] = Level1;
+ map[Shift+NumLock] = Level1;
+ map[NumLock] = Level2;
+ map[Shift] = 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