summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsvu <svu>2008-04-22 19:54:10 +0000
committersvu <svu>2008-04-22 19:54:10 +0000
commit2e8a4f8fbbbd4b3439438db9f0d0110f80446ece (patch)
tree058f7be68267a5b177715d89cba21557afb79f1d
parent127fc5ef25a119bf7e62cdc881a700f10534a41f (diff)
downloadxkeyboard-config-2e8a4f8fbbbd4b3439438db9f0d0110f80446ece.tar.gz
options for nonbreakspace handling, b.fd.o#9529
-rw-r--r--ChangeLog6
-rw-r--r--rules/base.o_s.part7
-rw-r--r--rules/base.xml.in17
-rw-r--r--symbols/fr7
-rw-r--r--symbols/nbsp12
-rw-r--r--types/pc41
6 files changed, 72 insertions, 18 deletions
diff --git a/ChangeLog b/ChangeLog
index 4d49362..b94738e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2008-04-22 Sergey Udaltsov
+
+ * rules/base.o_s.part, rules/base.xml.in, symbols/fr, symbols/nbsp,
+ types/pc: options for nonbreakspace handling,
+ http://bugs.freedesktop.org/show_bug.cgi?id=9529
+
2008-04-21 Sergey Udaltsov
* rules/base.xml.in: fixed some ISO codes
diff --git a/rules/base.o_s.part b/rules/base.o_s.part
index a670ed3..53a6b9d 100644
--- a/rules/base.o_s.part
+++ b/rules/base.o_s.part
@@ -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 --git a/rules/base.xml.in b/rules/base.xml.in
index 915d50c..2beb0d7 100644
--- a/rules/base.xml.in
+++ b/rules/base.xml.in
@@ -1739,46 +1739,37 @@
<name>ca</name>
<_shortDescription>Can</_shortDescription>
<_description>Canada</_description>
- <languageList><iso639Id>eng</iso639Id>
- <iso639Id>fra</iso639Id></languageList>
+ <languageList><iso639Id>fra</iso639Id></languageList>
</configItem>
<variantList>
<variant>
<configItem>
<name>fr-dvorak</name>
<_description>French Dvorak</_description>
- <languageList><iso639Id>fra</iso639Id></languageList>
</configItem>
</variant>
<variant>
<configItem>
<name>fr-legacy</name>
<_description>French (legacy)</_description>
- <languageList><iso639Id>fra</iso639Id></languageList>
</configItem>
</variant>
<variant>
<configItem>
<name>multix</name>
<_description>Multilingual</_description>
- <languageList><iso639Id>eng</iso639Id>
- <iso639Id>fra</iso639Id></languageList>
</configItem>
</variant>
<variant>
<configItem>
<name>multi</name>
<_description>Multilingual, first part</_description>
- <languageList><iso639Id>eng</iso639Id>
- <iso639Id>fra</iso639Id></languageList>
</configItem>
</variant>
<variant>
<configItem>
<name>multi-2gr</name>
<_description>Multilingual, second part</_description>
- <languageList><iso639Id>eng</iso639Id>
- <iso639Id>fra</iso639Id></languageList>
</configItem>
</variant>
<variant>
@@ -4589,6 +4580,12 @@
<_description>Space key outputs non-breakable space character at fourth level, thin non-breakable space character at sixth level</_description>
</configItem>
</option>
+ <option>
+ <configItem>
+ <name>nbsp:level4nl</name>
+ <_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>
+ </configItem>
+ </option>
</group>
<group allowMultipleSelection="true">
<configItem>
diff --git a/symbols/fr b/symbols/fr
index 22e74d6..38bbce3 100644
--- a/symbols/fr
+++ b/symbols/fr
@@ -85,11 +85,11 @@ xkb_symbols "nodeadkeys" {
// Unicode French derivative
// Loose refactoring of the historic Linux French keyboard layout
//
-// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
+// Copyright © 2006-2008 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
//
// Credits (fr-latin1, fr-latin0, fr-latin9)
// © 199x-1996 René Cougnenc ✝
-// © 1997-2002 Guylhem Aznar <clavier @ externe.net>
+// © 1997-2002 Guylhem Aznar <clavier @ externe.net>
// © 2003-2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
//
// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
@@ -113,8 +113,7 @@ xkb_symbols "oss" {
include "latin"
include "level3(ralt_switch)"
- include "level5(rctrl_switch)"
- include "nbsp(level4n)"
+ include "nbsp(level4nl)"
include "keypad(oss)"
name[Group1]="France - Alternative";
diff --git a/symbols/nbsp b/symbols/nbsp
index 47a76cf..1033470 100644
--- a/symbols/nbsp
+++ b/symbols/nbsp
@@ -62,7 +62,6 @@ xkb_symbols "level4" {
};
// level4n provides narrow no-breaking space in addition to the normal one
-// Used by fr(oss), be(oss)…
partial
xkb_symbols "level4n" {
key <SPCE> {
@@ -71,3 +70,14 @@ xkb_symbols "level4n" {
};
};
+// 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 <SPCE> {
+ type[Group1]="LOCAL_EIGHT_LEVEL",
+ symbols[Group1]= [ space, space, space, nobreakspace, space, 0x100202F, NoSymbol, NoSymbol ]
+ };
+};
+
diff --git a/types/pc b/types/pc
index 9d20c12..3c1986a 100644
--- a/types/pc
+++ b/types/pc
@@ -67,4 +67,45 @@ partial default xkb_types "default" {
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";
+ };
+
};