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-13 22:13:03.000000000 +0200
@@ -293,6 +293,12 @@
Lock+LevelThree modifiers apply the symbol from the third level
is taken. This also, shift-cancels-caps variant.
+ SIMPLE_FOUR_LEVEL_KEYPAD
+ Is similar to FOUR_LEVEL_KEYPAD scheme but only uses LevelThree
+ and Numlock, not confusing users with two modifiers (Numlock and
+ Shift) fighting each other
+ Primary modifier is NumLock, secondary LevelThree
+
Besides that, there are several schemes for special purposes:
PC_BREAK
diff -uNr xkeyboard-config-0.8.orig/keymap/xfree86 xkeyboard-config-0.8/keymap/xfree86
--- xkeyboard-config-0.8.orig/keymap/xfree86 2005-09-21 23:29:24.000000000 +0200
+++ xkeyboard-config-0.8/keymap/xfree86 2006-09-11 20:59:43.000000000 +0200
@@ -112,6 +112,13 @@
xkb_symbols { include "en_US(pc105)+fr-latin9" };
xkb_geometry { include "pc" };
};
+xkb_keymap "fr-unicode" {
+ xkb_keycodes { include "xfree86" };
+ xkb_types { include "default" };
+ xkb_compatibility { include "default" };
+ xkb_symbols { include "en_US(pc105)+fr-unicode" };
+ xkb_geometry { include "pc" };
+};
xkb_keymap "fr_CA" {
xkb_keycodes { include "xfree86" };
xkb_types { include "default" };
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-13 22:06:59.000000000 +0200
@@ -179,6 +179,9 @@
msgid "Alternative"
msgstr "Autre"
+msgid "Alternative with unicode additions"
+msgstr "Autre, avec des suppléments unicode"
+
#: ../rules/base.xml.in.h:41
msgid "Alternative international (former us_intl)"
msgstr "International (auparavant us_intl)"
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-11 21:03:25.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-unicode = pc(%m)+fr(unicode)
+ * fr-unicode = pc(pc105)+fr(unicode)
$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-unicode = pc(%m)+fr(unicode)%(v[1])
+ * fr-unicode = pc(pc105)+fr(unicode)%(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-unicode = +fr(unicode)%(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-unicode = +fr(unicode)%(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-unicode = +fr(unicode)%(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.lst xkeyboard-config-0.8/rules/base.lst
--- xkeyboard-config-0.8.orig/rules/base.lst 2006-03-04 18:45:00.000000000 +0100
+++ xkeyboard-config-0.8/rules/base.lst 2006-09-13 23:16:20.000000000 +0200
@@ -260,6 +260,7 @@
latin9 fr: Alternative
latin9_nodeadkeys fr: Alternative, eliminate dead keys
latin9_sundeadkeys fr: Alternative, Sun dead keys
+ unicode fr:Alternative with unicode additions
dvorak fr: Dvorak
generic gh: Multilingual
akan gh: Akan
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-13 22:05:49.000000000 +0200
@@ -1331,6 +1331,12 @@
+ unicode
+ <_description>Alternative with unicode additions
+
+
+
+
latin9_nodeadkeys
<_description>Alternative, eliminate dead keys
diff -uNr xkeyboard-config-0.8.orig/rules/compat/base.l3_s.part xkeyboard-config-0.8/rules/compat/base.l3_s.part
--- xkeyboard-config-0.8.orig/rules/compat/base.l3_s.part 2006-02-04 16:17:08.000000000 +0100
+++ xkeyboard-config-0.8/rules/compat/base.l3_s.part 2006-09-11 21:04:56.000000000 +0200
@@ -23,6 +23,7 @@
tml = +in(tam)%(v[3]):3
yu = +srp%(v[3]):3
fr-latin9 = +fr(latin9)%(v[3]):3
+ fr-unicode = +fr(unicode)%(v[3]):3
us_intl = +us(alt-intl)%(v[3]):3
ben(basic) = +in(ben):3
ben(probhat) = +in(ben_probhat):3
diff -uNr xkeyboard-config-0.8.orig/rules/compat/base.l4_s.part xkeyboard-config-0.8/rules/compat/base.l4_s.part
--- xkeyboard-config-0.8.orig/rules/compat/base.l4_s.part 2006-02-04 16:17:08.000000000 +0100
+++ xkeyboard-config-0.8/rules/compat/base.l4_s.part 2006-09-11 21:04:09.000000000 +0200
@@ -23,6 +23,7 @@
tml = +in(tam)%(v[4]):4
yu = +srp%(v[4]):4
fr-latin9 = +fr(latin9)%(v[4]):4
+ fr-unicode = +fr(unicode)%(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/compat/base.ml1_s.part xkeyboard-config-0.8/rules/compat/base.ml1_s.part
--- xkeyboard-config-0.8.orig/rules/compat/base.ml1_s.part 2006-02-04 16:17:08.000000000 +0100
+++ xkeyboard-config-0.8/rules/compat/base.ml1_s.part 2006-09-11 21:07:20.000000000 +0200
@@ -48,6 +48,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-unicode = pc(%m)+fr(unicode)%(v[1])
+ * fr-unicode = pc(pc105)+fr(unicode)%(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)
diff -uNr xkeyboard-config-0.8.orig/rules/compat/base.ml_s.part xkeyboard-config-0.8/rules/compat/base.ml_s.part
--- xkeyboard-config-0.8.orig/rules/compat/base.ml_s.part 2006-02-04 16:17:08.000000000 +0100
+++ xkeyboard-config-0.8/rules/compat/base.ml_s.part 2006-09-11 21:06:23.000000000 +0200
@@ -48,6 +48,8 @@
* yu = pc(pc105)+srp
$pcmodels fr-latin9 = pc(%m)+fr(latin9)
* fr-latin9 = pc(pc105)+fr(latin9)
+ $pcmodels fr-unicode = pc(%m)+fr(unicode)
+ * fr-unicode = pc(pc105)+fr(unicode)
$pcmodels us_intl = pc(%m)+us(alt-intl)
* us_intl = pc(pc105)+us(alt-intl)
$pcmodels ben(basic) = pc(%m)+in(ben)
diff -uNr xkeyboard-config-0.8.orig/rules/compat/layoutRename.lst xkeyboard-config-0.8/rules/compat/layoutRename.lst
--- xkeyboard-config-0.8.orig/rules/compat/layoutRename.lst 2006-02-02 01:08:19.000000000 +0100
+++ xkeyboard-config-0.8/rules/compat/layoutRename.lst 2006-09-11 21:05:27.000000000 +0200
@@ -23,4 +23,5 @@
tml in(tam)
yu srp
fr-latin9 fr(latin9)
+fr-unicode fr(unicode)
us_intl us(alt-intl)
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-14 00:16:13.000000000 +0200
@@ -217,6 +217,55 @@
};
partial alphanumeric_keys
+xkb_symbols "unicode" {
+
+ include "fr(latin9)"
+
+ // Replace doublequotemarks with ubreve
+ key { [ oe, OE, ubreve, Ubreve ] };
+
+ // Move acute and remove periodcentered
+ key { [ ampersand, 1, dead_acute, acute ] };
+
+ // Add correct unicode typographical apostrophe
+ key { [ apostrophe, 4, braceleft, 0x1002019 ] };
+
+ // Move doublequotemarks
+ key { [ w, W, guillemotleft, leftdoublequotemark ] };
+ key { [ x, X, guillemotright, rightdoublequotemark ] };
+
+ // add trademark access
+ key { [ c, C, copyright, trademark ] };
+
+ // add arrows
+ key { [ v, V, registered, leftarrow ] };
+ key { [ b, B, ssharp, rightarrow ] };
+ key { [ n, N, notsign, uparrow ] };
+ key { [ comma, question, questiondown, downarrow ] };
+
+ // Add more math operators
+ key { [ semicolon, period, multiply, 0x10022C5 ] };
+ key { [ colon, slash, division, 0x1002215 ] };
+ key { [ exclam, section, exclamdown, 0x1002212 ] };
+
+
+ // Add brokenbar access
+ key { [ less, greater, lessthanequal, greaterthanequal ] };
+
+ // Make nobreakspace harder to hit
+ key { [ space, space, space, nobreakspace ] };
+
+ // Fix the broken dot/comma logic (original errors : mine)
+ include "keypad(comma3)"
+
+ // Add math operators and arrows to the keypad
+ include "keypad(unimath)"
+ include "keypad(uniarrows)"
+};
+
+
+
+partial alphanumeric_keys
xkb_symbols "latin9_Sundeadkeys" {
// Modifies the basic fr-latin9 layout to use the Sun dead 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-13 23:17:52.000000000 +0200
@@ -87,3 +87,52 @@
xkb_symbols "comma" {
key { [ KP_Delete, KP_Separator ] };
};
+
+xkb_symbols "comma2" {
+
+ key { type[Group1] = "SIMPLE_FOUR_LEVEL_KEYPAD",
+ [ KP_Delete, KP_Separator, KP_Delete, KP_Decimal ] };
+};
+
+xkb_symbols "comma3" {
+
+ key { type[Group1] = "SIMPLE_FOUR_LEVEL_KEYPAD",
+ [ KP_Delete, KP_Decimal, KP_Delete, KP_Separator ] };
+};
+
+// Math keypad with unicode operators
+// Added by nicolas.mailhot at laposte.net
+
+xkb_symbols "unimath" {
+
+ // Not using numlock as modifier may seem unintuive
+ // But these levels are more a computer science vs typography switch
+ // than a digit vs directions one
+ // As such they belong more with level3 and shift than numlock
+ key.type[Group1] = "FOUR_LEVEL" ;
+
+ key { [ KP_Divide, KP_Divide, 0x1002215, 0x10000F7 ] };
+ key { [ KP_Multiply, KP_Multiply, 0x10022C5, 0x10000D7 ] };
+ key { [ KP_Subtract, KP_Subtract, 0x1002212, 0x1002212 ] };
+ key { [ KP_Add, KP_Add, 0x100002B, 0x100002B ] };
+
+};
+
+// Adds arrow symbols to the keypad digit keys
+// Added by nicolas.mailhot at laposte.net
+
+xkb_symbols "uniarrows" {
+
+ key.type[Group1] = "SIMPLE_FOUR_LEVEL_KEYPAD" ;
+
+ key { [ KP_Home, KP_7, 0x1002196, 0x10021D6 ] };
+ key { [ KP_Up, KP_8, 0x1002191, 0x10021D1 ] };
+ key { [ KP_Prior, KP_9, 0x1002197, 0x10021D7 ] };
+ key { [ KP_Left, KP_4, 0x1002190, 0x10021D0 ] };
+ key { [ KP_Begin, KP_5, 0x1002194, 0x10021D4 ] };
+ key { [ KP_Right, KP_6, 0x1002192, 0x10021D2 ] };
+ key { [ KP_End, KP_1, 0x1002199, 0x10021D9 ] };
+ key { [ KP_Down, KP_2, 0x1002193, 0x10021D3 ] };
+ key { [ KP_Next, KP_3, 0x1002198, 0x10021D8 ] };
+ key { [ KP_Insert, KP_0, 0x1002195, 0x10021D5 ] };
+};
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-13 21:29:25.000000000 +0200
@@ -68,6 +68,20 @@
level_name[Level4] = "Alt Number";
};
+ // Another shift-insensitive four level keypad variant
+ // Sometimes three modifiers is just too much
+ type "SIMPLE_FOUR_LEVEL_KEYPAD" {
+ modifiers = NumLock+LevelThree;
+ map[None] = Level1;
+ map[NumLock] = Level2;
+ map[LevelThree] = Level3;
+ map[NumLock+LevelThree] = Level4;
+ level_name[Level1] = "Base";
+ level_name[Level2] = "Number";
+ level_name[Level3] = "Alt Base";
+ level_name[Level4] = "Alt Number";
+ };
+
// 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