diff -uNr xkeyboard-config-20080420/rules/base.o_s.part xkeyboard-config-20080420.new/rules/base.o_s.part
--- xkeyboard-config-20080420/rules/base.o_s.part 2008-04-07 23:28:16.000000000 +0200
+++ xkeyboard-config-20080420.new/rules/base.o_s.part 2008-04-20 16:43:06.000000000 +0200
@@ -65,9 +65,9 @@
eurosign:5 = +eurosign(5)
keypad:oss = +keypad(oss)
keypad:legacy = +keypad(legacy)
- keypad:legacy_wang = +keypad(legacy_wang)
- keypad:oss_wang = +keypad(oss_wang)
- keypad:future_wang = +keypad(future_wang)
+ keypad:legacy_wang = +keypad(legacy_wang)
+ keypad:oss_wang = +keypad(oss_wang)
+ keypad:future_wang = +keypad(future_wang)
nbsp:none = +nbsp(none)
nbsp:level2 = +nbsp(level2)
nbsp:level3 = +nbsp(level3)
@@ -75,6 +75,7 @@
nbsp:level3n = +nbsp(level3n)
nbsp:level4 = +nbsp(level4)
nbsp:level4n = +nbsp(level4n)
+ nbsp:level4nl = +nbsp(level4nl)
japan:nicola_f_bs = +jp(nicola_f_bs)
kpdl:dot = +kpdl(dot)
kpdl:comma = +kpdl(comma)
diff -uNr xkeyboard-config-20080420/rules/base.xml.in xkeyboard-config-20080420.new/rules/base.xml.in
--- xkeyboard-config-20080420/rules/base.xml.in 2008-04-20 00:36:46.000000000 +0200
+++ xkeyboard-config-20080420.new/rules/base.xml.in 2008-04-20 21:12:23.000000000 +0200
@@ -4588,6 +4588,12 @@
<_description>Space key outputs non-breakable space character at fourth level, thin non-breakable space character at sixth level
+
diff -uNr xkeyboard-config-20080420/symbols/fr xkeyboard-config-20080420.new/symbols/fr
--- xkeyboard-config-20080420/symbols/fr 2008-03-22 19:50:08.000000000 +0100
+++ xkeyboard-config-20080420.new/symbols/fr 2008-04-20 17:18:30.000000000 +0200
@@ -85,11 +85,11 @@
// Unicode French derivative
// Loose refactoring of the historic Linux French keyboard layout
//
-// Copyright © 2006 Nicolas Mailhot
+// Copyright © 2006-2008 Nicolas Mailhot
//
// Credits (fr-latin1, fr-latin0, fr-latin9)
// © 199x-1996 René Cougnenc ✝
-// © 1997-2002 Guylhem Aznar
+// © 1997-2002 Guylhem Aznar
// © 2003-2006 Nicolas Mailhot
//
// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
@@ -113,8 +113,7 @@
include "latin"
include "level3(ralt_switch)"
- include "level5(rctrl_switch)"
- include "nbsp(level4n)"
+ include "nbsp(level4nl)"
include "keypad(oss)"
name[Group1]="France - Alternative";
diff -uNr xkeyboard-config-20080420/symbols/nbsp xkeyboard-config-20080420.new/symbols/nbsp
--- xkeyboard-config-20080420/symbols/nbsp 2007-01-05 00:31:30.000000000 +0100
+++ xkeyboard-config-20080420.new/symbols/nbsp 2008-04-20 17:50:36.000000000 +0200
@@ -62,7 +62,6 @@
};
// level4n provides narrow no-breaking space in addition to the normal one
-// Used by fr(oss), be(oss)…
partial
xkb_symbols "level4n" {
key {
@@ -71,3 +70,14 @@
};
};
+// level4nl provides narrow no-breaking space in addition to the normal one
+// without forcing the use of level5 for mostly four-level layouts
+// Used by fr(oss), be(oss)…
+partial
+xkb_symbols "level4nl" {
+ key {
+ type[Group1]="LOCAL_EIGHT_LEVEL",
+ symbols[Group1]= [ space, space, space, nobreakspace, space, 0x100202F, NoSymbol, NoSymbol ]
+ };
+};
+
diff -uNr xkeyboard-config-20080420/types/pc xkeyboard-config-20080420.new/types/pc
--- xkeyboard-config-20080420/types/pc 2007-08-29 00:04:38.000000000 +0200
+++ xkeyboard-config-20080420.new/types/pc 2008-04-20 21:15:24.000000000 +0200
@@ -67,4 +67,45 @@
level_name[Level1] = "Base";
level_name[Level2] = "Ctrl+Alt";
};
+
+ // Local eight level
+ // Needed when you want part of your layout eight-level but can not use
+ // LevelFive as modifier, as this will take over right ctrl by default
+ // for all the layout and is too invasive for your average four-level user
+ // Needed to fix bug #9529
+ // FIXME Should really use RControl but it's seems not to be enabled by
+ // default and touching this requires a lot of testing
+ type "LOCAL_EIGHT_LEVEL" {
+ modifiers = Shift+Lock+LevelThree+Control;
+
+ map[None] = Level1;
+ map[Lock+Shift] = Level1;
+ map[Shift] = Level2;
+ map[Lock] = Level2;
+
+ map[LevelThree] = Level3;
+ map[Lock+Shift+LevelThree] = Level3;
+ map[Shift+LevelThree] = Level4;
+ map[Lock+LevelThree] = Level4;
+
+ map[Control] = Level5;
+ map[Lock+Shift+Control] = Level5;
+ map[Shift+Control] = Level6;
+ map[Lock+Control] = Level6;
+
+ map[LevelThree+Control] = Level7;
+ map[Lock+Shift+LevelThree+Control] = Level7;
+ map[Shift+LevelThree+Control] = Level8;
+ map[Lock+LevelThree+Control] = Level8;
+
+ level_name[Level1] = "Base";
+ level_name[Level2] = "Shift";
+ level_name[Level3] = "Level3";
+ level_name[Level4] = "Shift Level3";
+ level_name[Level5] = "Ctrl";
+ level_name[Level6] = "Shift Ctrl";
+ level_name[Level7] = "Level3 Ctrl";
+ level_name[Level8] = "Shift Level3 Ctrl";
+ };
+
};