From d8181925b26add4a8fe8b80b873730ac51d2d379 Mon Sep 17 00:00:00 2001 From: pascal Date: Sat, 24 Apr 2004 11:35:45 +0000 Subject: [PATCH] Add Azeri, Canadian and Vietnamese keymaps. --- rules/base | 4 +- symbols/az | 92 +++++++++++++++++++++++ symbols/ca | 203 ++++++++++++++++++++++++++++++++++++++++++++++++++ symbols/group | 9 +++ symbols/vn | 37 +++++++++ 5 files changed, 344 insertions(+), 1 deletion(-) create mode 100644 symbols/az create mode 100644 symbols/ca create mode 100644 symbols/vn diff --git a/rules/base b/rules/base index 7174883..e80989f 100644 --- a/rules/base +++ b/rules/base @@ -9,7 +9,7 @@ // // Layouts that still need be composed by old rules -! $oldlayouts = az bs ca ch hu hu_qwerty lt_std mn vn hr_US +! $oldlayouts = bs ch hu hu_qwerty lt_std mn hr_US // If you want non-latin layouts implicitly include the en_US layout // uncomment lines below @@ -78,6 +78,8 @@ $pcmodels intl = us(%mcompose) * intl = us(pc104compose) * jp = jp + $pcmodels ca = pc(%m)+ca(multi)+ca(multi-2gr):2+group(rctrl_switch) + * ca = pc(pc105)+ca(multi)+ca(multi-2gr):2+group(rctrl_switch) $pcmodels $oldlayouts = en_US(%m)+%l%(v) $pcmodels $nonlatin = pc(%m)+us+%l%(v):2 $pcmodels * = pc(%m)+%l%(v) diff --git a/symbols/az b/symbols/az new file mode 100644 index 0000000..8dce8be --- /dev/null +++ b/symbols/az @@ -0,0 +1,92 @@ +// based on: +// symbols definition for a very simple Azerbaidjani keyboard layout. +// 2001 - Pablo Saratxaga + +partial default alphanumeric_keys +xkb_symbols "latin" { + + include "us" + + name[Group1]= "Azeri Latin"; + + key { [ grave, asciitilde, dead_grave, dead_tilde ] }; + + key { [ 3, numbersign, U2166 ] }; + key { [ 6, colon, EuroSign, periodcentered ] }; + key { [ 7, question ] }; + + key { [ 8, asterisk, asciicircum, dead_circumflex ] }; + key { [ minus, underscore, hyphen, emdash ] }; + + key { [ udiaeresis, Udiaeresis ] }; + key { [ r, R, registered ] }; + key { [ i, Iabovedot ] }; + key { [ odiaeresis, Odiaeresis, bracketleft, braceleft ] }; + key { [ gbreve, Gbreve, bracketright, braceright ] }; + + key { [ idotless, I ] }; + key { [ schwa, SCHWA ] }; + + key { [ c, C, copyright, division ] }; + key { [ m, M, periodcentered, currency ] }; + key { [ ccedilla, Ccedilla ] }; + key { [ scedilla, Scedilla ] }; + key { [ period, comma ] }; + // End alphanumeric section + + include "level3(ralt_switch_multikey)" +}; + +partial alphanumeric_keys +xkb_symbols "cyrillic" { + + name[Group1]= "Azeri Cyrillic"; + + key {[ 2, quotedbl ] }; + key {[ 3, numbersign ] }; + key {[ 4, semicolon ] }; + key {[ 6, colon ] }; + key {[ 7, question ] }; + key {[ 8, asterisk, braceleft ] }; + key {[ 9, parenleft, bracketleft ] }; + key {[ 0, parenright, bracketright ] }; + key {[ minus, underscore, braceright ] }; + + key {[ Cyrillic_je, Cyrillic_JE ] }; + key {[ Cyrillic_u_straight, Cyrillic_U_straight ] }; + key {[ Cyrillic_u, Cyrillic_U ] }; + key {[ Cyrillic_ka, Cyrillic_KA ] }; + key {[ Cyrillic_ie, Cyrillic_IE ] }; + key {[ Cyrillic_en, Cyrillic_EN ] }; + key {[ Cyrillic_ghe, Cyrillic_GHE ] }; + key {[ Cyrillic_sha, Cyrillic_SHA ] }; + key {[ Cyrillic_shha, Cyrillic_SHHA ] }; + key {[ Cyrillic_ze, Cyrillic_ZE ] }; + key {[ Cyrillic_ha, Cyrillic_HA ] }; + key {[ Cyrillic_che_vertstroke, Cyrillic_CHE_vertstroke ] }; + + key {[ Cyrillic_ef, Cyrillic_EF ] }; + key {[ Cyrillic_yeru, Cyrillic_YERU ] }; + key {[ Cyrillic_ve, Cyrillic_VE ] }; + key {[ Cyrillic_a, Cyrillic_A ] }; + key {[ Cyrillic_pe, Cyrillic_PE ] }; + key {[ Cyrillic_er, Cyrillic_ER ] }; + key {[ Cyrillic_o, Cyrillic_O ] }; + key {[ Cyrillic_el, Cyrillic_EL ] }; + key {[ Cyrillic_de, Cyrillic_DE ] }; + key {[ Cyrillic_zhe, Cyrillic_ZHE ] }; + key {[ Cyrillic_ka_vertstroke,Cyrillic_KA_vertstroke ] }; + + key {[ Cyrillic_schwa, Cyrillic_SCHWA ] }; + key {[ Cyrillic_che, Cyrillic_CHE ] }; + key {[ Cyrillic_es, Cyrillic_ES ] }; + key {[ Cyrillic_em, Cyrillic_EM ] }; + key {[ Cyrillic_i, Cyrillic_I ] }; + key {[ Cyrillic_te, Cyrillic_TE ] }; + key {[ Cyrillic_ghe_bar, Cyrillic_GHE_bar ] }; + key {[ Cyrillic_be, Cyrillic_BE ] }; + key {[ Cyrillic_o_bar, Cyrillic_O_bar ] }; + key {[ period, comma ] }; + + // End alphanumeric section +}; diff --git a/symbols/ca b/symbols/ca new file mode 100644 index 0000000..d1ee034 --- /dev/null +++ b/symbols/ca @@ -0,0 +1,203 @@ + +default partial +xkb_symbols "fr" { + name[Group1] = "Canadian French"; + + key { [ numbersign, bar, backslash ] }; + key { [ 1, exclam, plusminus ] }; + key { [ 2, quotedbl, at ] }; + key { [ 3, slash, sterling ] }; + key { [ 4, dollar, cent ] }; + key { [ 5, percent, currency ] }; + key { [ 6, question, notsign ] }; + key { [ 7, ampersand, brokenbar ] }; + key { [ 8, asterisk, twosuperior ] }; + key { [ 9, parenleft, threesuperior ] }; + key { [ 0, parenright, onequarter ] }; + key { [ minus, underscore, onehalf ] }; + key { [ equal, plus, threequarters ] }; + + key { [ q, Q ] }; + key { [ w, W ] }; + key { [ e, E ] }; + key { [ r, R ] }; + key { [ t, T ] }; + key { [ y, Y ] }; + key { [ u, U ] }; + key { [ i, I ] }; + key { [ o, O, section ] }; + key { [ p, P, paragraph ] }; + key { [dead_circumflex, dead_circumflex, bracketleft ] }; + key { [ dead_cedilla, dead_diaeresis, bracketright ] }; + + key { [ a, A ] }; + key { [ s, S ] }; + key { [ d, D ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ h, H ] }; + key { [ j, J ] }; + key { [ k, K ] }; + key { [ l, L ] }; + key { [ semicolon, colon, asciitilde ] }; + key { [dead_grave, dead_grave, braceleft ] }; + key { [ less, greater, braceright ] }; + + key { [guillemotleft, guillemotright, degree] }; + key { [ z, Z ] }; + key { [ x, X ] }; + key { [ c, C ] }; + key { [ v, V ] }; + key { [ b, B ] }; + key { [ n, N ] }; + key { [ m, M, mu ] }; + key { [ comma, apostrophe, macron ] }; + key { [ period, period, hyphen ] }; + key { [ eacute, Eacute, dead_acute ] }; + + include "level3(ralt_switch_multikey)" +}; + +partial +xkb_symbols "fr-legacy" { + + name[Group1] = "Canadian French (Legacy)"; + + include "pc/ca(fr)" + + key { [ degree, degree, notsign ] }; + key { [ 1, exclam, onesuperior ] }; + + key { [ 3, numbersign, threesuperior ] }; + key { [ 4, dollar, onequarter ] }; + key { [ 5, percent, onehalf ] }; + key { [ 6, question, threequarters ] }; + key { [ 7, ampersand, braceleft ] }; + key { [ 8, asterisk, bracketleft ] }; + key { [ 9, parenleft, bracketright, plusminus ] }; + key { [ 0, parenright, braceright ] }; + key { [ minus, underscore, bar, questiondown] }; + key { [ equal, plus, dead_cedilla ] }; + + key { [ r, R, paragraph, registered ] }; + key { [ y, Y, yen ] }; + key { [ o, O, oslash, Ooblique ] }; + key { [ p, P, thorn, THORN ] }; + key { [dead_circumflex, dead_circumflex, degree ] }; + key { [ ccedilla, Ccedilla, dead_tilde, dead_diaeresis ] }; + + key { [ a, A, ae, AE ] }; + key { [ s, S, ssharp, section ] }; + key { [ d, D, eth, ETH ] }; + key { [ f, F, ordfeminine ] }; + key { [ semicolon, colon, dead_acute, dead_acute ] }; + key { [ egrave, Egrave ] }; + key { [ agrave, Agrave, dead_grave ] }; + + key { [ ugrave, Ugrave, backslash, bar ] }; + key { [ z, Z, guillemotleft ] }; + key { [ x, X, guillemotright ] }; + key { [ c, C, cent, copyright ] }; + key { [ m, M, mu, masculine ] }; + key { [ comma, apostrophe, less ] }; + key { [ period, period, greater ] }; + key { [ eacute, Eacute, slash ] }; +}; + +partial +xkb_symbols "multi" { + + name[Group1] = "Canadian Multilingual"; + + include "pc/ca(fr)" + + key { [ slash, backslash, bar ] }; + key { [ 1, exclam ] }; + key { [ 2, at ] }; + key { [ 3, numbersign ] }; + key { [ 4, dollar ] }; + key { [ 5, percent ] }; + key { [ 6, question ] }; + key { [ 7, ampersand, braceleft ] }; + key { [ 8, asterisk, braceright ] }; + key { [ 9, parenleft, bracketleft ] }; + key { [ 0, parenright, bracketright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus, notsign ] }; + + key { [ o, O ] }; + key { [ p, P ] }; + key { [dead_circumflex, dead_diaeresis, dead_grave ] }; + key { [ ccedilla, Ccedilla, dead_tilde ] }; + + key { [ semicolon, colon, degree ] }; + key { [ egrave, Egrave ] }; + key { [ agrave, Agrave ] }; + + + key { [ ugrave, Ugrave ] }; + key { [ z, Z, guillemotleft ] }; + key { [ x, X, guillemotright ] }; + key { [ comma, apostrophe, less ] }; + key { [ period, quotedbl, greater ] }; + key { [ eacute, Eacute ] }; +}; + +partial +xkb_symbols "multi-2gr" { + + name[Group1] = "Canadian Multilingual group2"; + + key { [ VoidSymbol, hyphen ] }; + key { [ onesuperior, exclamdown ] }; + key { [ twosuperior, VoidSymbol ] }; + key { [ threesuperior, sterling ] }; + key { [ onequarter, currency ] }; + key { [ onehalf,threeeighths ] }; + key { [ threequarters, fiveeighths ] }; + key { [ VoidSymbol,seveneighths ] }; + key { [ VoidSymbol, trademark ] }; + key { [ VoidSymbol, plusminus ] }; + + key { [ VoidSymbol, questiondown] }; + key { [ dead_cedilla, dead_ogonek ] }; + + key { [ VoidSymbol, Greek_OMEGA ] }; + key { [ lstroke, Lstroke ] }; + key { [ oe, OE ] }; + key { [ paragraph, registered ] }; + key { [ U0167, U0166 ] }; + key { [ U2190, yen ] }; + key { [ U2193, U2191 ] }; + key { [ U2192, idotless ] }; + key { [ oslash, Ooblique ] }; + key { [ thorn, THORN ] }; + key { [ VoidSymbol, dead_abovering ] }; + key { [ asciitilde, VoidSymbol ] }; + + key { [ ae, AE ] }; + key { [ ssharp, section ] }; + key { [ eth, ETH ] }; + + key { [ eng, ENG ] }; + key { [ hstroke, Hstroke ] }; + key { [ U0133, U0132 ] }; + key { [ kra, VoidSymbol ] }; + key { [ U0140, U013F ] }; + key { [ dead_acute, dead_doubleacute ] }; + key { [ VoidSymbol, dead_caron ] }; + key { [ VoidSymbol, dead_breve ] }; + + + key { [ VoidSymbol, brokenbar ] }; + + key { [ cent, copyright ] }; + key { [ leftdoublequotemark, leftsinglequotemark ] }; + key { [ rightdoublequotemark, rightsinglequotemark ] }; + key { [ U0149, U266A ] }; + key { [ mu, masculine ] }; + key { [ U2015, multiply ] }; + key { [ dead_abovedot, division ] }; + key { [ VoidSymbol, dead_abovedot ] }; + +}; diff --git a/symbols/group b/symbols/group index e6092b8..e3158ad 100644 --- a/symbols/group +++ b/symbols/group @@ -63,6 +63,15 @@ xkb_symbols "rwin_switch" { }; }; +// Right Ctrl key temporary chooses the second keyboard group. +// Needed mainly for Canadian keyboard +partial modifier_keys +xkb_symbols "rctrl_switch" { + key { + symbols[Group1]= [ Mode_switch ] + }; +}; + // using the group(toggle) map, pressing the right alt key switches to // the next sequential group (until the next explicit group change). partial modifier_keys diff --git a/symbols/vn b/symbols/vn new file mode 100644 index 0000000..0cd177f --- /dev/null +++ b/symbols/vn @@ -0,0 +1,37 @@ +// based on: +// vn, TCVN 5712:1993 +// Le Hong Boi +// August 1999 +// Further modified by Ashley Clark +// July 2000 for X 4.0 + + +partial default alphanumeric_keys +xkb_symbols "basic" { + + include "us" + + name[Group1]= "Vietnamese"; + + // Alphanumeric section + key { [ quoteleft, asciitilde ] }; + key { [ 1, exclam, abreve, Abreve ] }; + key { [ 2, at, acircumflex, Acircumflex ] }; + key { [ 3, numbersign, ecircumflex, Ecircumflex ] }; + key { [ 4, dollar, ocircumflex, Ocircumflex ] }; + key { [ 5, percent, dead_grave, percent ] }; + key { [ 6, asciicircum,dead_hook, asciicircum ] }; + key { [ 7, ampersand, dead_tilde, ampersand ] }; + key { [ 8, asterisk, dead_acute, asterisk ] }; + key { [ 9, parenlef, dead_belowdot,parenleft ] }; + key { [ 0, parenright, dstroke, Dstroke ] }; + key { [ minus, underscore ] }; + key { [ equal, plus, DongSign ] }; + + key { [ bracketleft, braceleft, U01b0, U01af ] }; // U horn + key { [ bracketright, braceright, U01a1, U01a0 ] }; // O horn + + // End alphanumeric section + + include "level3(ralt_switch_multikey)" +}; -- 2.32.0.93.g670b81a890