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-11 21:12:02.000000000 +0200
@@ -179,6 +179,9 @@
msgid "Alternative"
msgstr "Autre"
+msgid "Alternative, unicode math keypad"
+msgstr "Autre, pavé numérique unicode mathématique"
+
#: ../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-11 21:09:36.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, unicode math keypad
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-11 21:08:51.000000000 +0200
@@ -1331,6 +1331,12 @@
+ unicode
+ <_description>Alternative, unicode math keypad
+
+
+
+
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-11 22:04:05.000000000 +0200
@@ -209,14 +209,27 @@
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 ] };
-
+ include "keypad(comma3)"
+ include "keypad(unimathrev)"
include "level3(ralt_switch)"
};
partial alphanumeric_keys
+xkb_symbols "unicode" {
+
+ // Modifies the basic fr-latin9 layout to use math operators, moving them to the keypad
+
+ include "fr(latin9)"
+
+ key { [ semicolon, period, leftarrow, uparrow ] };
+ key { [ colon, slash, rightarrow, downarrow ] };
+
+ include "keypad(comma2)"
+ include "keypad(unimath)"
+};
+
+
+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-12 08:04:58.000000000 +0200
@@ -87,3 +87,51 @@
xkb_symbols "comma" {
key { [ KP_Delete, KP_Separator ] };
};
+
+xkb_symbols "comma2" {
+
+ key { type[Group1] = "FOUR_LEVEL_KEYPAD",
+ [ KP_Delete, KP_Separator, KP_Delete, KP_Decimal ] };
+};
+
+xkb_symbols "comma3" {
+
+ key { type[Group1] = "FOUR_LEVEL_KEYPAD",
+ [ KP_Delete, KP_Decimal, KP_Delete, KP_Separator ] };
+};
+
+// Math keypad with unicode operators
+// Only use with unicode-aware apps
+// Hopefully, the future
+// Added by nicolas.mailhot at laposte.net
+
+xkb_symbols "unimath" {
+
+ // Begin "Keypad" section
+
+ key.type[Group1] = "FOUR_LEVEL_ALPHABETIC" ;
+
+ key { [ 0x1002215, 0x10000F7, KP_Divide, KP_Divide ] };
+ key { [ 0x10022C5, 0x10000D7, KP_Multiply, KP_Multiply ] };
+ key { [ 0x1002212, 0x1002212, KP_Subtract, KP_Subtract ] };
+
+ // KPAD is not really necessary, CS people know how to add and didn't
+ // create any new operator, using unicode value there just to be
+ // consistent
+ key { [ 0x100002B, 0x100002B, KP_Add, KP_Add ] };
+};
+
+// Intermediate reversed version with legacy values in primary levels
+
+xkb_symbols "unimathrev" {
+
+ // Begin "Keypad" section
+
+ key.type[Group1] = "FOUR_LEVEL_ALPHABETIC" ;
+
+ 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 ] };
+
+};