1
By Nicolas Mailhot, from https://bugs.freedesktop.org/show_bug.cgi?id=9529#c29
3
diff -uNr xkeyboard-config-20080420/rules/base.o_s.part xkeyboard-config-20080420.new/rules/base.o_s.part
4
--- xkeyboard-config-20080420/rules/base.o_s.part 2008-04-07 23:28:16.000000000 +0200
5
+++ xkeyboard-config-20080420.new/rules/base.o_s.part 2008-04-20 16:43:06.000000000 +0200
7
nbsp:level3n = +nbsp(level3n)
8
nbsp:level4 = +nbsp(level4)
9
nbsp:level4n = +nbsp(level4n)
10
+ nbsp:level4nl = +nbsp(level4nl)
11
japan:nicola_f_bs = +jp(nicola_f_bs)
13
kpdl:comma = +kpdl(comma)
14
diff -uNr xkeyboard-config-20080420/rules/base.xml.in xkeyboard-config-20080420.new/rules/base.xml.in
15
--- xkeyboard-config-20080420/rules/base.xml.in 2008-04-20 00:36:46.000000000 +0200
16
+++ xkeyboard-config-20080420.new/rules/base.xml.in 2008-04-20 21:12:23.000000000 +0200
17
@@ -4588,6 +4588,12 @@
18
<_description>Space key outputs non-breakable space character at fourth level, thin non-breakable space character at sixth level</_description>
23
+ <name>nbsp:level4nl</name>
24
+ <_description>Space key outputs non-breakable space character at fourth level, thin non-breakable space character at sixth level; uses hardcoded control instead of iso-level-5 to access high levels.</_description>
28
<group allowMultipleSelection="true">
30
diff -uNr xkeyboard-config-20080420/symbols/fr xkeyboard-config-20080420.new/symbols/fr
31
--- xkeyboard-config-20080420/symbols/fr 2008-03-22 19:50:08.000000000 +0100
32
+++ xkeyboard-config-20080420.new/symbols/fr 2008-04-20 17:18:30.000000000 +0200
34
// Unicode French derivative
35
// Loose refactoring of the historic Linux French keyboard layout
37
-// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
38
+// Copyright © 2006-2008 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
40
// Credits (fr-latin1, fr-latin0, fr-latin9)
41
// © 199x-1996 René Cougnenc ✝
42
-// © 1997-2002 Guylhem Aznar <clavier @ externe.net>
43
+// © 1997-2002 Guylhem Aznar <clavier @ externe.net>
44
// © 2003-2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
46
// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
50
include "level3(ralt_switch)"
51
- include "level5(rctrl_switch)"
52
- include "nbsp(level4n)"
53
+ include "nbsp(level4nl)"
56
name[Group1]="France - Alternative";
57
diff -uNr xkeyboard-config-20080420/symbols/nbsp xkeyboard-config-20080420.new/symbols/nbsp
58
--- xkeyboard-config-20080420/symbols/nbsp 2007-01-05 00:31:30.000000000 +0100
59
+++ xkeyboard-config-20080420.new/symbols/nbsp 2008-04-20 17:50:36.000000000 +0200
63
// level4n provides narrow no-breaking space in addition to the normal one
64
-// Used by fr(oss), be(oss)…
66
xkb_symbols "level4n" {
72
+// level4nl provides narrow no-breaking space in addition to the normal one
73
+// without forcing the use of level5 for mostly four-level layouts
74
+// Used by fr(oss), be(oss)…
76
+xkb_symbols "level4nl" {
78
+ type[Group1]="LOCAL_EIGHT_LEVEL",
79
+ symbols[Group1]= [ space, space, space, nobreakspace, space, 0x100202F, NoSymbol, NoSymbol ]
83
diff -uNr xkeyboard-config-20080420/types/pc xkeyboard-config-20080420.new/types/pc
84
--- xkeyboard-config-20080420/types/pc 2007-08-29 00:04:38.000000000 +0200
85
+++ xkeyboard-config-20080420.new/types/pc 2008-04-20 21:15:24.000000000 +0200
87
level_name[Level1] = "Base";
88
level_name[Level2] = "Ctrl+Alt";
91
+ // Local eight level
92
+ // Needed when you want part of your layout eight-level but can not use
93
+ // LevelFive as modifier, as this will take over right ctrl by default
94
+ // for all the layout and is too invasive for your average four-level user
95
+ // Needed to fix bug #9529
96
+ // FIXME Should really use RControl but it's seems not to be enabled by
97
+ // default and touching this requires a lot of testing
98
+ type "LOCAL_EIGHT_LEVEL" {
99
+ modifiers = Shift+Lock+LevelThree+Control;
101
+ map[None] = Level1;
102
+ map[Lock+Shift] = Level1;
103
+ map[Shift] = Level2;
104
+ map[Lock] = Level2;
106
+ map[LevelThree] = Level3;
107
+ map[Lock+Shift+LevelThree] = Level3;
108
+ map[Shift+LevelThree] = Level4;
109
+ map[Lock+LevelThree] = Level4;
111
+ map[Control] = Level5;
112
+ map[Lock+Shift+Control] = Level5;
113
+ map[Shift+Control] = Level6;
114
+ map[Lock+Control] = Level6;
116
+ map[LevelThree+Control] = Level7;
117
+ map[Lock+Shift+LevelThree+Control] = Level7;
118
+ map[Shift+LevelThree+Control] = Level8;
119
+ map[Lock+LevelThree+Control] = Level8;
121
+ level_name[Level1] = "Base";
122
+ level_name[Level2] = "Shift";
123
+ level_name[Level3] = "Level3";
124
+ level_name[Level4] = "Shift Level3";
125
+ level_name[Level5] = "Ctrl";
126
+ level_name[Level6] = "Shift Ctrl";
127
+ level_name[Level7] = "Level3 Ctrl";
128
+ level_name[Level8] = "Shift Level3 Ctrl";