summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--compat/Makefile.am2
-rw-r--r--compat/complete1
-rw-r--r--compat/default1
-rw-r--r--compat/level549
-rw-r--r--rules/base.xml.in6
-rw-r--r--symbols/Makefile.am2
-rw-r--r--symbols/ca155
-rw-r--r--symbols/level34
-rw-r--r--symbols/level518
-rw-r--r--types/Makefile.am2
-rw-r--r--types/complete1
-rw-r--r--types/default1
-rw-r--r--types/level595
-rw-r--r--types/pc5
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
diff --git a/symbols/ca b/symbols/ca
index 11d9110..744ebfe 100644
--- a/symbols/ca
+++ b/symbols/ca
@@ -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";
+ };
+
+};
+
diff --git a/types/pc b/types/pc
index 5671f42..162dcc5 100644
--- a/types/pc
+++ b/types/pc
@@ -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" {