diff -uNr xkeyboard-config-20070104.orig/rules/base.xml.in xkeyboard-config-20070104.space/rules/base.xml.in --- xkeyboard-config-20070104.orig/rules/base.xml.in 2007-01-02 21:56:55.000000000 +0100 +++ xkeyboard-config-20070104.space/rules/base.xml.in 2007-01-04 23:24:58.000000000 +0100 @@ -3499,10 +3499,28 @@ + + + diff -uNr xkeyboard-config-20070104.orig/symbols/ca xkeyboard-config-20070104.space/symbols/ca --- xkeyboard-config-20070104.orig/symbols/ca 2006-09-04 22:25:10.000000000 +0200 +++ xkeyboard-config-20070104.space/symbols/ca 2007-01-04 23:24:12.000000000 +0100 @@ -445,7 +445,7 @@ key { [ eacute, Eacute, dead_acute, NoSymbol, NoSymbol, dead_abovedot ] }; - key { type[Group1]= "FOUR_LEVEL", [ space, space, nobreakspace, NoSymbol ] }; + include "nbsp(level3s)" modifier_map Control{ Control_L }; diff -uNr xkeyboard-config-20070104.orig/symbols/fr xkeyboard-config-20070104.space/symbols/fr --- xkeyboard-config-20070104.orig/symbols/fr 2006-11-02 21:49:10.000000000 +0100 +++ xkeyboard-config-20070104.space/symbols/fr 2007-01-04 23:24:42.000000000 +0100 @@ -105,14 +105,16 @@ // ┃ ┃ > ≥ │ W “ │ X ” │ C ® │ V ← │ B ↑ │ N → │ ? … │ . . │ / ∕ │ § − ┃ ┃ // ┃Shift ⇧┃ < ≤ │ w « │ x » │ c © │ v ⍽ │ b ↓ │ n ¬ │ , ¿ │ ; × │ : ÷ │ ! ¡ ┃Shift ⇧ ┃ // ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ -// ┃ ┃ ┃ ┃ ␣ Espace insécable ⍽ ┃ ┃ ┃ ┃ -// ┃Ctrl ┃Meta ┃Alt ┃ ␣ Espace ␣ ┃AltGr ⇮┃Menu ┃Ctrl ┃ +// ┃ ┃ ┃ ┃ ␣ Espace fine insécable ⍽ ┃ ┃ ┃ ┃ +// ┃Ctrl ┃Meta ┃Alt ┃ ␣ Espace Espace insécable ⍽ ┃AltGr ⇮┃Menu ┃Ctrl ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ partial alphanumeric_keys xkb_symbols "oss" { include "latin" include "level3(ralt_switch)" + include "level5(rctrl_switch)" + include "nbsp(level4n)" include "keypad(oss)" name[Group1]="France - Alternative"; @@ -172,9 +174,6 @@ 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 @@ -332,6 +331,7 @@ xkb_symbols "latin9" { include "latin" + include "nbsp(level3)" name[Group1]="France - (Legacy) Alternative"; @@ -387,8 +387,6 @@ 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 ] }; diff -uNr xkeyboard-config-20070104.orig/symbols/nbsp xkeyboard-config-20070104.space/symbols/nbsp --- xkeyboard-config-20070104.orig/symbols/nbsp 2006-10-11 21:32:35.000000000 +0200 +++ xkeyboard-config-20070104.space/symbols/nbsp 2007-01-04 23:25:31.000000000 +0100 @@ -19,6 +19,11 @@ }; }; + +// level3 & level3ns provide no-breaking spaces starting from level3 +// This is good for typographers but experience shows many users accidently +// type no-breaking spaces on the CLI (resulting in errors) +// Used by fr(latin9) partial xkb_symbols "level3" { key { @@ -27,6 +32,27 @@ }; }; +// level3s kills fourth level +// Used by ca(multix) +partial +xkb_symbols "level3s" { + key { + type[Group1]="FOUR_LEVEL", + symbols[Group1]= [ space, space, nobreakspace, NoSymbol ] + }; +}; + +// level3n provides narrow no-breaking space in addition to the normal one +partial +xkb_symbols "level3n" { + key { + type[Group1]="FOUR_LEVEL", + symbols[Group1]= [ space, space, nobreakspace, 0x100202F ] + }; +}; + + +// for this reason pushing no-breaking spaces to level4 is the safe default nowadays partial xkb_symbols "level4" { key { @@ -34,3 +60,14 @@ symbols[Group1]= [ space, space, space, nobreakspace ] }; }; + +// level4n provides narrow no-breaking space in addition to the normal one +// Used by fr(oss), be(oss)… +partial +xkb_symbols "level4n" { + key { + type[Group1]="EIGHT_LEVEL", + symbols[Group1]= [ space, space, space, nobreakspace, space, 0x100202F, NoSymbol, NoSymbol ] + }; +}; +