diff options
-rw-r--r-- | compat/Makefile.am | 2 | ||||
-rw-r--r-- | compat/complete | 1 | ||||
-rw-r--r-- | compat/default | 1 | ||||
-rw-r--r-- | compat/level5 | 49 | ||||
-rw-r--r-- | rules/base.xml.in | 6 | ||||
-rw-r--r-- | symbols/Makefile.am | 2 | ||||
-rw-r--r-- | symbols/ca | 155 | ||||
-rw-r--r-- | symbols/level3 | 4 | ||||
-rw-r--r-- | symbols/level5 | 18 | ||||
-rw-r--r-- | types/Makefile.am | 2 | ||||
-rw-r--r-- | types/complete | 1 | ||||
-rw-r--r-- | types/default | 1 | ||||
-rw-r--r-- | types/level5 | 95 | ||||
-rw-r--r-- | types/pc | 5 |
14 files changed, 323 insertions, 19 deletions
diff --git a/compat/Makefile.am b/compat/Makefile.am index f8dd837..3f994fa 100644 --- a/compat/Makefile.am +++ b/compat/Makefile.am @@ -4,7 +4,7 @@ dist_compat_DATA = \ accessx basic complete \ default iso9995 \ japan keypad ledcaps \ -lednum ledscroll \ +lednum ledscroll level5 \ misc mousekeys norepeat \ pc pc98 xfree86 \ xtest README diff --git a/compat/complete b/compat/complete index 68f89c8..93ff687 100644 --- a/compat/complete +++ b/compat/complete @@ -6,5 +6,6 @@ default xkb_compatibility "complete" { augment "accessx(full)" augment "misc" augment "xfree86" + augment "level5" }; diff --git a/compat/default b/compat/default index 7cea0f8..e215a64 100644 --- a/compat/default +++ b/compat/default @@ -5,6 +5,7 @@ default xkb_compatibility "default" { augment "accessx(basic)" augment "misc" augment "iso9995" + augment "level5" // ??should be changed/renamed/removed // augment "xfree86" augment "japan" diff --git a/compat/level5 b/compat/level5 new file mode 100644 index 0000000..2220da0 --- /dev/null +++ b/compat/level5 @@ -0,0 +1,49 @@ +// $Xorg: level5,v 1.3 2000/08/17 19:54:34 cpqbld Exp $ + +// Fairly complete set of symbol interpretations +// to provide reasonable default behavior + +// $XFree86: xc/programs/xkbcomp/compat/iso9995,v 1.3 2003/02/21 03:16:34 dawes Exp $ + +default partial xkb_compatibility "default" { + virtual_modifiers LevelFive; + + interpret.repeat= False; + setMods.clearLocks= True; + latchMods.clearLocks= True; + latchMods.latchToLock= True; + + //ISO_Level5_Shift + interpret F35+Any { + useModMapMods= level1; + virtualModifier= LevelFive; + action= SetMods(modifiers=LevelFive); + }; + + interpret F35 { + action= SetMods(modifiers=LevelFive); + }; + + //ISO_Level5_Latch + interpret F34+Any { + useModMapMods= level1; + virtualModifier= LevelFive; + action= LatchMods(modifiers=LevelFive); + }; + + interpret F34 { + action= LatchMods(modifiers=LevelFive); + }; + + //ISO_Level5_Lock + interpret F33+Any { + useModMapMods= level1; + virtualModifier= LevelFive; + action= LockMods(modifiers=LevelFive); + }; + + interpret F33 { + action= LockMods(modifiers=LevelFive); + }; + +}; diff --git a/rules/base.xml.in b/rules/base.xml.in index 723cfca..727f74d 100644 --- a/rules/base.xml.in +++ b/rules/base.xml.in @@ -1052,6 +1052,12 @@ </variant> <variant> <configItem> + <name>multix</name> + <_description>Multilingual</_description> + </configItem> + </variant> + <variant> + <configItem> <name>multi</name> <_description>Multilingual, first part</_description> </configItem> diff --git a/symbols/Makefile.am b/symbols/Makefile.am index 7884e5c..dcf724f 100644 --- a/symbols/Makefile.am +++ b/symbols/Makefile.am @@ -25,7 +25,7 @@ sk sy th \ tj tr ua \ us uz vn \ za \ -altwin capslock compose ctrl group inet keypad level3 srvr_ctrl \ +altwin capslock compose ctrl group inet keypad level3 level5 srvr_ctrl \ eurosign include $(top_srcdir)/xkbrules.am @@ -170,7 +170,7 @@ xkb_symbols "fr-legacy" { partial xkb_symbols "multi" { - name[Group1] = "Canada - Multilingual. first part"; + name[Group1] = "Canada - Multilingual, first part"; include "ca(fr)" @@ -210,21 +210,21 @@ xkb_symbols "multi-2gr" { name[Group1] = "Canada - Multilingual, second part"; - key <TLDE> { [ VoidSymbol, hyphen ] }; + key <TLDE> { [ NoSymbol, hyphen ] }; key <AE01> { [ onesuperior, exclamdown ] }; - key <AE02> { [ twosuperior, VoidSymbol ] }; + key <AE02> { [ twosuperior, NoSymbol ] }; key <AE03> { [ threesuperior, sterling ] }; key <AE04> { [ onequarter, currency ] }; key <AE05> { [ onehalf,threeeighths ] }; key <AE06> { [ threequarters, fiveeighths ] }; - key <AE07> { [ VoidSymbol,seveneighths ] }; - key <AE08> { [ VoidSymbol, trademark ] }; - key <AE09> { [ VoidSymbol, plusminus ] }; + key <AE07> { [ NoSymbol,seveneighths ] }; + key <AE08> { [ NoSymbol, trademark ] }; + key <AE09> { [ NoSymbol, plusminus ] }; - key <AE11> { [ VoidSymbol, questiondown] }; + key <AE11> { [ NoSymbol, questiondown] }; key <AE12> { [ dead_cedilla, dead_ogonek ] }; - key <AD01> { [ VoidSymbol, Greek_OMEGA ] }; + key <AD01> { [ NoSymbol, Greek_OMEGA ] }; key <AD02> { [ lstroke, Lstroke ] }; key <AD03> { [ oe, OE ] }; key <AD04> { [ paragraph, registered ] }; @@ -234,24 +234,24 @@ xkb_symbols "multi-2gr" { key <AD08> { [ rightarrow, idotless ] }; key <AD09> { [ oslash, Ooblique ] }; key <AD10> { [ thorn, THORN ] }; - key <AD11> { [ VoidSymbol, dead_abovering ] }; + key <AD11> { [ NoSymbol, dead_abovering ] }; key <AD12> { [ dead_tilde, dead_macron ] }; key <AC01> { [ ae, AE ] }; key <AC02> { [ ssharp, section ] }; key <AC03> { [ eth, ETH ] }; - key <AC04> { [ VoidSymbol, ordfeminine ] }; + key <AC04> { [ NoSymbol, ordfeminine ] }; key <AC05> { [ eng, ENG ] }; key <AC06> { [ hstroke, Hstroke ] }; key <AC07> { [ U0133, U0132 ] }; - key <AC08> { [ kra, VoidSymbol ] }; + key <AC08> { [ kra, NoSymbol ] }; key <AC09> { [ U0140, U013F ] }; key <AC10> { [ dead_acute, dead_doubleacute ] }; - key <AC11> { [ VoidSymbol, dead_caron ] }; - key <BKSL> { [ VoidSymbol, dead_breve ] }; + key <AC11> { [ NoSymbol, dead_caron ] }; + key <BKSL> { [ NoSymbol, dead_breve ] }; - key <LSGT> { [ VoidSymbol, brokenbar ] }; + key <LSGT> { [ NoSymbol, brokenbar ] }; key <AB03> { [ cent, copyright ] }; key <AB04> { [ leftdoublequotemark, leftsinglequotemark ] }; @@ -260,7 +260,7 @@ xkb_symbols "multi-2gr" { key <AB07> { [ mu, masculine ] }; key <AB08> { [ Greek_horizbar, multiply ] }; key <AB09> { [ periodcentered, division ] }; - key <AB10> { [ VoidSymbol, dead_abovedot ] }; + key <AB10> { [ NoSymbol, dead_abovedot ] }; }; @@ -328,3 +328,128 @@ xkb_symbols "ike" { // End alphanumeric section }; + +partial +xkb_symbols "multix" { + + name[Group1] = "Canada - Multilingual"; + + key.type[group1]="EIGHT_LEVEL_SEMIALPHABETIC"; + key <TLDE> { [ slash, backslash, bar, NoSymbol, + NoSymbol, hyphen ] }; + key <AE01> { [ 1, exclam, plusminus, NoSymbol, + onesuperior, exclamdown ] }; + key <AE02> { [ 2, at, at, NoSymbol, + twosuperior, NoSymbol ] }; + key <AE03> { [ 3, numbersign, sterling, NoSymbol, + threesuperior, sterling ] }; + key <AE04> { [ 4, dollar, cent, NoSymbol, + onequarter, currency ] }; + key <AE05> { [ 5, percent, currency, NoSymbol, + onehalf, threeeighths ] }; + key <AE06> { [ 6, question, notsign, NoSymbol, + threequarters, fiveeighths ] }; + key <AE07> { [ 7, ampersand, braceleft, NoSymbol, + NoSymbol, seveneighths ] }; + key <AE08> { [ 8, asterisk, braceright, NoSymbol, + NoSymbol, trademark ] }; + key <AE09> { [ 9, parenleft, bracketleft, NoSymbol, + NoSymbol, plusminus ] }; + key <AE10> { [ 0, parenright, bracketright, NoSymbol ] }; + key <AE11> { [ minus, underscore, onehalf, NoSymbol, + NoSymbol, questiondown] }; + key <AE12> { [ equal, plus, notsign, NoSymbol, + dead_cedilla, dead_ogonek ] }; + + key.type[group1]="EIGHT_LEVEL_SEMIALPHABETIC"; + key <AD01> { [ q, Q, NoSymbol, NoSymbol, + NoSymbol, Greek_OMEGA ] }; + key <AD02> { [ w, W, NoSymbol, NoSymbol, + lstroke, Lstroke ] }; + key <AD03> { [ e, E, NoSymbol, NoSymbol, + oe, OE ] }; + key <AD04> { [ r, R, NoSymbol, NoSymbol, + paragraph, registered ] }; + key <AD05> { [ t, T, NoSymbol, NoSymbol, + tslash, Tslash ] }; + key <AD06> { [ y, Y, NoSymbol, NoSymbol, + leftarrow, yen ] }; + key <AD07> { [ u, U, NoSymbol, NoSymbol, + downarrow, uparrow ] }; + key <AD08> { [ i, I, NoSymbol, NoSymbol, + rightarrow, idotless ] }; + key <AD09> { [ o, O, section, NoSymbol, + oslash, Ooblique ] }; + key <AD10> { [ p, P, paragraph, NoSymbol, + thorn, THORN ] }; + + key.type[group1]="EIGHT_LEVEL"; + key <AD11> { [dead_circumflex, dead_diaeresis, dead_grave, NoSymbol, + NoSymbol, dead_abovering ] }; + + key.type[group1]="EIGHT_LEVEL_SEMIALPHABETIC"; + key <AD12> { [ ccedilla, Ccedilla, asciitilde, NoSymbol, + dead_tilde, dead_macron ] }; + + key <AC01> { [ a, A, NoSymbol, NoSymbol, + ae, AE ] }; + key <AC02> { [ s, S, NoSymbol, NoSymbol, + ssharp, section ] }; + key <AC03> { [ d, D, NoSymbol, NoSymbol, + eth, ETH ] }; + key <AC04> { [ f, F, NoSymbol, NoSymbol, + NoSymbol, ordfeminine ] }; + key <AC05> { [ g, G, NoSymbol, NoSymbol, + eng, ENG ] }; + key <AC06> { [ h, H, NoSymbol, NoSymbol, + hstroke, Hstroke ] }; + key <AC07> { [ j, J, NoSymbol, NoSymbol, + U0133, U0132 ] }; + key <AC08> { [ k, K, NoSymbol, NoSymbol, + kra, NoSymbol ] }; + key <AC09> { [ l, L, NoSymbol, NoSymbol, + U0140, U013F ] }; + + key.type[group1]="EIGHT_LEVEL"; + key <AC10> { [ semicolon, colon, degree, NoSymbol, + dead_acute, dead_doubleacute ] }; + + key.type[group1]="EIGHT_LEVEL_SEMIALPHABETIC"; + key <AC11> { [ egrave, Egrave, braceleft, NoSymbol, + NoSymbol, dead_caron ] }; + key <BKSL> { [ agrave, Agrave, braceright, NoSymbol, + NoSymbol, dead_breve ] }; + + key <LSGT> { [ ugrave, Ugrave, degree, NoSymbol, + NoSymbol, brokenbar ] }; + + key.type[group1]="FOUR_LEVEL_SEMIALPHABETIC"; + key <AB01> { [ z, Z, guillemotleft, NoSymbol ] }; + key <AB02> { [ x, X, guillemotright, NoSymbol ] }; + + key.type[group1]="EIGHT_LEVEL_SEMIALPHABETIC"; + key <AB03> { [ c, C, NoSymbol, NoSymbol, + cent, copyright ] }; + key <AB04> { [ v, V, NoSymbol, NoSymbol, + leftdoublequotemark, leftsinglequotemark ] }; + key <AB05> { [ b, B, NoSymbol, NoSymbol, + rightdoublequotemark, rightsinglequotemark ] }; + key <AB06> { [ n, N, NoSymbol, NoSymbol, + U0149, U266A ] }; + key <AB07> { [ m, M, mu, NoSymbol, + mu, masculine ] }; + key <AB08> { [ comma, apostrophe, less, NoSymbol, + Greek_horizbar, multiply ] }; + key <AB09> { [ period, quotedbl, greater, NoSymbol, + periodcentered, division ] }; + key <AB10> { [ eacute, Eacute, dead_acute, NoSymbol, + NoSymbol, dead_abovedot ] }; + + key <SPCE> { type= "FOUR_LEVEL", [ space, space, nobreakspace, NoSymbol ] }; + + modifier_map Control{ Control_L }; + + include "level3(ralt_switch)" + include "level5(rctrl_switch)" +}; + diff --git a/symbols/level3 b/symbols/level3 index e25fdca..7610ed6 100644 --- a/symbols/level3 +++ b/symbols/level3 @@ -21,6 +21,10 @@ xkb_symbols "ralt_switch" { // partial hidden modifier_keys xkb_symbols "ralt_switch_for_alts_toggle" { + key <LALT> { + type[Group1]="PC_SYSRQ", + symbols[Group1] = [ Alt_L, ISO_Prev_Group, ISO_Prev_Group ] + }; key <RALT> { type[Group1]="PC_SYSRQ", symbols[Group1] = [ ISO_Level3_Shift, ISO_Next_Group ] diff --git a/symbols/level5 b/symbols/level5 new file mode 100644 index 0000000..3ed1a53 --- /dev/null +++ b/symbols/level5 @@ -0,0 +1,18 @@ +// $XKeyboardConfig$ + +// these variants assign various XKB keycodes to ISO_Level5_Shift so that +// the third shift level can be reached +// +// $XFree86: xc/programs/xkbcomp/symbols/level3,v 1.7 2003/09/08 14:25:32 eich Exp $ +// + +// using the level(switch) map, the right Control key temporarily +// chooses the fifth shift level (until it is released). +partial modifier_keys +xkb_symbols "rctrl_switch" { + key <RCTL> { + type[Group1]="ONE_LEVEL", + symbols[Group1] = [ F35 ] + }; + modifier_map Mod5 { F35 }; +}; diff --git a/types/Makefile.am b/types/Makefile.am index 19f1c5e..bcec060 100644 --- a/types/Makefile.am +++ b/types/Makefile.am @@ -3,7 +3,7 @@ typesdir = $(xkb_base)/types dist_types_DATA = \ basic cancel caps \ complete default extra \ -iso9995 mousekeys numpad \ +iso9995 level5 mousekeys numpad \ pc README include $(top_srcdir)/xkbrules.am diff --git a/types/complete b/types/complete index ecf6ec1..833a862 100644 --- a/types/complete +++ b/types/complete @@ -10,5 +10,6 @@ default xkb_types "complete" { include "mousekeys" include "pc" include "iso9995" + include "level5" include "extra" }; diff --git a/types/default b/types/default index a8fe069..1077f0f 100644 --- a/types/default +++ b/types/default @@ -5,5 +5,6 @@ default xkb_types "default" { include "pc" include "iso9995" include "extra" +// include "level5" include "mousekeys" }; diff --git a/types/level5 b/types/level5 new file mode 100644 index 0000000..3fba18f --- /dev/null +++ b/types/level5 @@ -0,0 +1,95 @@ +// $XFree86: xc/programs/xkbcomp/types/extra,v 1.3 2002/11/26 02:14:02 dawes Exp $ + +partial default xkb_types "default" { + // Definition for a key type used for the czech keymap, for instance. + // Defines style a with four level shift. It is similar to three_level + // type used for iso9995 but it lets the shift key behave "normally". + + virtual_modifiers LevelThree; + virtual_modifiers LevelFive; + + type "EIGHT_LEVEL" { + modifiers = Shift+LevelThree+LevelFive; + map[None] = Level1; + map[Shift] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[LevelFive] = Level5; + map[Shift+LevelFive] = Level6; + map[LevelThree+LevelFive] = Level7; + map[Shift+LevelThree+LevelFive] = Level8; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + level_name[Level5] = "X"; + level_name[Level6] = "X Shift"; + level_name[Level7] = "X Alt Base"; + level_name[Level8] = "X Shift Alt"; + }; + + type "EIGHT_LEVEL_ALPHABETIC" { + modifiers = Shift+Lock+LevelThree+LevelFive; + map[None] = Level1; + map[Shift] = Level2; + map[Lock] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Lock+LevelThree] = Level4; + map[Lock+Shift+LevelThree] = Level3; + + map[LevelFive] = Level5; + map[Shift+LevelFive] = Level6; + map[Lock+LevelFive] = Level6; + map[LevelThree+LevelFive] = Level7; + map[Shift+LevelThree+LevelFive] = Level8; + map[Lock+LevelThree+LevelFive] = Level8; + map[Lock+Shift+LevelThree+LevelFive] = Level7; + + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + level_name[Level5] = "X"; + level_name[Level6] = "X Shift"; + level_name[Level7] = "X Alt Base"; + level_name[Level8] = "X Shift Alt"; + }; + + type "EIGHT_LEVEL_SEMIALPHABETIC" { + modifiers = Shift+Lock+LevelThree+LevelFive; + map[None] = Level1; + map[Shift] = Level2; + map[Lock] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Lock+LevelThree] = Level3; + map[Lock+Shift+LevelThree] = Level4; + + map[LevelFive] = Level5; + map[Shift+LevelFive] = Level6; + map[Lock+LevelFive] = Level6; + map[LevelThree+LevelFive] = Level7; + map[Shift+LevelThree+LevelFive] = Level8; + map[Lock+LevelThree+LevelFive] = Level7; + map[Lock+Shift+LevelThree+LevelFive] = Level8; + + preserve[Lock+LevelThree] = Lock; + preserve[Lock+Shift+LevelThree] = Lock; + preserve[Lock+LevelFive] = Lock; + preserve[Lock+Shift+LevelFive] = Lock; + preserve[Lock+LevelThree+LevelFive] = Lock; + preserve[Lock+Shift+LevelThree+LevelFive] = Lock; + + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + level_name[Level5] = "X"; + level_name[Level6] = "X Shift"; + level_name[Level7] = "X Alt Base"; + level_name[Level8] = "X Shift Alt"; + }; + +}; + @@ -7,6 +7,7 @@ partial default xkb_types "default" { // for a full implementation of // a PC compatible keyboard. virtual_modifiers Alt; + virtual_modifiers LevelThree; type "PC_BREAK" { modifiers = Control; @@ -17,11 +18,13 @@ partial default xkb_types "default" { }; type "PC_SYSRQ" { - modifiers = Alt; + modifiers = Alt+LevelThree; map[None] = Level1; map[Alt] = Level2; + map[LevelThree] = Level3; level_name[Level1] = "Base"; level_name[Level2] = "Alt"; + level_name[Level3] = "Level3"; }; type "CTRL+ALT" { |