summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey V. Udaltsov <svu@gnome.org>2009-06-27 21:30:47 +0100
committerSergey V. Udaltsov <svu@gnome.org>2009-06-27 21:30:47 +0100
commit2a2922cdfdf26b2793fe53f7fd0472f56f65b953 (patch)
tree07b086b5d680a6799a42430ef49c6483bf6a64b2
parent2344d12391d949e8b0041d2cd5f3c60185538fde (diff)
Added 3 exotic us variants: ats, intl-unicode, alt-intl-unicode
http://bugs.freedesktop.org/show_bug.cgi?id=22004 http://bugs.freedesktop.org/show_bug.cgi?id=22446
-rw-r--r--ChangeLog8
-rw-r--r--rules/base.extras.xml.in29
-rw-r--r--rules/extras/variantsMapping.lst2
-rw-r--r--symbols/extras/Makefile.am3
-rw-r--r--symbols/extras/us119
5 files changed, 160 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index ca4cbc2f..812608a8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2009-06-27 Sergey Udaltsov
+
+ * symbols/extras/us, rules/base.extras.xml.in,
+ rules/extras/variantsMapping.lst, symbols/extras/Makefile.am: Added 3
+ exotic us variants: ats, intl-unicode, alt-intl-unicode
+ http://bugs.freedesktop.org/show_bug.cgi?id=22004
+ http://bugs.freedesktop.org/show_bug.cgi?id=22446
+
2009-06-22 Sergey Udaltsov
* .gitignore, configure.in, rules/Makefile.am,
diff --git a/rules/base.extras.xml.in b/rules/base.extras.xml.in
index 12d3f95e..580b2c28 100644
--- a/rules/base.extras.xml.in
+++ b/rules/base.extras.xml.in
@@ -14,6 +14,35 @@
</layout>
<layout>
<configItem>
+ <name>us</name>
+ <_shortDescription>USA</_shortDescription>
+ <_description>USA</_description>
+ <languageList><iso639Id>eng</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>intl-unicode</name>
+ <_description>International (AltGr Unicode combining)</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>alt-intl-unicode</name>
+ <_description>International (AltGr Unicode combining, alternative)</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ats</name>
+ <_description>Atsina</_description>
+ <!-- No ISO code in ISO639-2, only draft ISO693-3 -->
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
<name>rs</name>
<_shortDescription>SRB</_shortDescription>
<_description>Serbia</_description>
diff --git a/rules/extras/variantsMapping.lst b/rules/extras/variantsMapping.lst
index eda0a315..4ed9be3f 100644
--- a/rules/extras/variantsMapping.lst
+++ b/rules/extras/variantsMapping.lst
@@ -1 +1,3 @@
rs combiningkeys extras/rs combiningkeys
+us intl-unicode extras/us intl-unicode
+us alt-intl-unicode extras/us alt-intl-unicode
diff --git a/symbols/extras/Makefile.am b/symbols/extras/Makefile.am
index 14332741..6140b945 100644
--- a/symbols/extras/Makefile.am
+++ b/symbols/extras/Makefile.am
@@ -1,3 +1,4 @@
symbolsdir = $(xkb_base)/symbols/extras
dist_symbols_DATA = apl \
- rs
+ rs \
+ us
diff --git a/symbols/extras/us b/symbols/extras/us
new file mode 100644
index 00000000..63fb3afd
--- /dev/null
+++ b/symbols/extras/us
@@ -0,0 +1,119 @@
+// XCompose is out! Unicode combining is in! For those of us who live
+// on the edge: A keymap using Unicode combining characters instead of
+// deadkeys. This variation does not deviate from the lame MS-style
+// US-intl layout; but it uses AltGr for combining, like altgr-intl.
+//
+// This might break your font layout layout systems (because they
+// suck), caveat emptor. Also, most of today's software will count
+// individual combining marks for selection, deletion, character
+// counting &c., and won't be smart enough to do canonical equivalence
+// when searching, &c.
+//
+// With Unicode combining you use "handwriting order", not
+// "typewriting order" as with deadkeys. That is, you first type the
+// base character, then the diacritics/accents/modifiers. This has
+// the advantage of avoiding hidden states --- each keypress changes
+// something on screen.
+//
+// TODO: as of now, this duplicates all us(intl) functionality with
+// combining. With care, perhaps we could add more combining marks
+// not present in intl, and support all major languages.
+partial alphanumeric_keys
+xkb_symbols "intl-unicode" {
+
+ name[Group1]= "USA - International (AltGr Unicode combining)";
+
+ include "us(intl)"
+ include "level3(ralt_switch)"
+
+ // grave, tilde
+ key <TLDE> { [grave, asciitilde, U0300, U0303 ] };
+ // double acute
+ key <AE02> { [ 2, at, twosuperior, U030B ] };
+ // macron
+ key <AE03> { [ 3, numbersign, threesuperior, U0304 ] };
+ // circumflex
+ key <AE06> { [ 6, asciicircum, onequarter, U0302 ] };
+ // horn
+ key <AE07> { [ 7, ampersand, onehalf, U031B ] };
+ // ogonek
+ key <AE08> { [ 8, asterisk, threequarters, U0328 ] };
+ // breve
+ key <AE09> { [ 9, parenleft, leftsinglequotemark, U0306 ] };
+ // abovering
+ key <AE10> { [ 0, parenright, rightsinglequotemark, U030A ] };
+
+ // belowdot
+ key <AE11> { [ minus, underscore, yen, U0323 ] };
+ // acute, diaeresis
+ key <AC11> { [apostrophe, quotedbl, U0301, U0308 ] };
+ // abovedot, caron
+ key <AB09> { [ period, greater, U0307, U030C ] };
+ // hook
+ key <AB10> { [ slash, question, questiondown, 0309 ] };
+
+ // alt-intl compatibility
+ // cedilla, caron
+ key <AB08> { [ comma, less, U0327, U030C ] };
+ // ogonek, diaeresis
+ key <AC10> { [ semicolon, colon, U0328, U0308 ] };
+ // doubleacute, horn
+ key <AE12> { [ equal, plus, U030B, U031B ] };
+
+ // we don't do combining latin letters and combining enclosures
+ // because support for those is very rare.
+};
+
+// XCompose is out! Unicode combining is in! For those of us who live
+// on the edge: A keymap using Unicode combining characters instead of
+// deadkeys. This variation does break compatibility with us-intl,
+// whenever I thought it would be more mnemonic or Unicodeish.
+partial alphanumeric_keys
+xkb_symbols "alt-intl-unicode" {
+
+ name[Group1]= "USA - International (AltGr Unicode combining, alternative)";
+
+ include "extras/us(intl-unicode)"
+ include "level3(ralt_switch)"
+
+ // easier macron; em-dash.
+ // em-dash is available via compose, but I added here since it's such
+ // an important typographic character.
+ key <AE11> { [ minus, underscore, U0304, U2014 ] };
+
+ // belowdot, abovedot (caron at coma/less key, per above)
+ key <AB09> { [ period, greater, U0323, U0307 ] };
+
+};
+
+partial alphanumeric_keys
+xkb_symbols "ats" {
+
+ include "us"
+
+ name[Group1]= "USA - Atsina";
+
+ //Using Dead key to get COMBINING COMMA ABOVE for ejectives on
+ //q, l, t, s, m, g, k, p, w, y, r
+ //XCompose key is used for the other accute and grave.
+
+ key <AD03> { [ e, E, eacute, Eacute ] };
+ key <AD07> { [ u, U, uacute, Uacute ] };
+ key <AD08> { [ i, I, iacute, Iacute ] };
+ key <AD09> { [ o, O, oacute, Oacute ] };
+ key <AD11> { [ bracketleft, braceleft, U03B8 ] };
+ key <AD12> { [ bracketright, braceright, U010D, U010C ] };
+ //U+010C (uppercase Č) and U+010D (lowercase č).
+
+ key <AC01> { [ a, A, aacute, Aacute ] };
+
+
+ //Small letter Open use compose to key get acute accent
+ key <AB03> { [ c, C, U0254, U0186 ] };
+ key <AB08> { [ comma, less, U0313 ] };
+ key <AB10> { [ slash, question, U0294 ] };
+
+ include "level3(ralt_switch)"
+ include "compose(rctrl)"
+};
+