summaryrefslogtreecommitdiff
path: root/linux/X/compat
diff options
context:
space:
mode:
Diffstat (limited to 'linux/X/compat')
-rw-r--r--linux/X/compat/caps12
-rw-r--r--linux/X/compat/level556
-rw-r--r--linux/X/compat/misc127
-rw-r--r--linux/X/compat/neo_mods30
4 files changed, 195 insertions, 30 deletions
diff --git a/linux/X/compat/caps b/linux/X/compat/caps
new file mode 100644
index 0000000..d787ab6
--- /dev/null
+++ b/linux/X/compat/caps
@@ -0,0 +1,12 @@
+partial xkb_compatibility "caps_lock" {
+ // Keysym Caps_Lock locks Lock modifier.
+ // With this, the keysym Caps_Lock can be used without binding the whole
+ // key to a real modifier.
+ // This is essential when you don't want to use caps lock on the first
+ // level.
+ // This should not have any compatibility issues when used together with
+ // other layouts which don't utilize this capability.
+ interpret Caps_Lock {
+ action = LockMods(modifiers = Lock);
+ };
+};
diff --git a/linux/X/compat/level5 b/linux/X/compat/level5
new file mode 100644
index 0000000..4769354
--- /dev/null
+++ b/linux/X/compat/level5
@@ -0,0 +1,56 @@
+// $XKeyboardConfig$
+// $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;
+
+ interpret ISO_Level5_Shift+Any {
+ useModMapMods= level1;
+ virtualModifier= LevelFive;
+ action= SetMods(modifiers=LevelFive);
+ };
+
+ interpret ISO_Level5_Shift {
+ action= SetMods(modifiers=LevelFive);
+ };
+
+ interpret ISO_Level5_Latch+Any {
+ virtualModifier= LevelFive;
+ action= LatchMods(modifiers=LevelFive);
+ };
+
+ interpret ISO_Level5_Latch {
+ action= LatchMods(modifiers=LevelFive);
+ };
+
+ interpret ISO_Level5_Lock+Any {
+ virtualModifier= LevelFive;
+ action= LockMods(modifiers=LevelFive);
+ };
+
+ interpret ISO_Level5_Lock {
+ action= LockMods(modifiers=LevelFive);
+ };
+};
+partial xkb_compatibility "level5_lock" {
+ // This defines a Level5-Lock using the NumLock real modifier in order to
+ // create arbitrary level-behaviour, which would not be possible with the
+ // virtual modifier.
+ // See also: types/level5 : EIGHT_LEVEL_LEVEL_FIVE_LOCK
+ // See also: symbols/level5(lock)
+ virtual_modifiers NumLock;
+
+ interpret ISO_Level5_Lock {
+ action = LockMods(modifiers = NumLock);
+ };
+};
diff --git a/linux/X/compat/misc b/linux/X/compat/misc
new file mode 100644
index 0000000..68cda95
--- /dev/null
+++ b/linux/X/compat/misc
@@ -0,0 +1,127 @@
+// $XdotOrg: xc/programs/xkbcomp/compat/misc,v 1.1.4.4 2004/03/05 13:41:28 eich Exp $
+// $Xorg: misc,v 1.3 2000/08/17 19:54:34 cpqbld Exp $
+//
+//
+//
+// $XFree86: xc/programs/xkbcomp/compat/misc,v 1.4 2003/05/15 13:31:57 pascal Exp $
+
+default partial xkb_compatibility "misc" {
+
+ virtual_modifiers Alt,Meta,Super,Hyper,ScrollLock;
+
+ // Interpretations for some other useful keys
+
+ interpret Terminate_Server {
+ action = Terminate();
+ };
+
+ setMods.clearLocks= True;
+
+ // Sets the "Alt" virtual modifier
+
+ interpret Alt_L+Any {
+ //useModMapMods= level1;
+ virtualModifier= Alt;
+ action = SetMods(modifiers=modMapMods);
+ };
+
+ interpret Alt_L {
+ action = SetMods(modifiers=Alt);
+ };
+
+ interpret Alt_R+Any {
+ //useModMapMods= level1;
+ virtualModifier= Alt;
+ action = SetMods(modifiers=modMapMods);
+ };
+
+ interpret Alt_R {
+ action = SetMods(modifiers=Alt);
+ };
+
+ // Sets the "Meta" virtual modifier
+
+ interpret Meta_L+Any {
+// useModMapMods= level1;
+ virtualModifier= Meta;
+ action = SetMods(modifiers=modMapMods);
+ };
+
+ interpret Meta_L {
+ action = SetMods(modifiers=Meta);
+ };
+
+ interpret Meta_R+Any {
+ //useModMapMods= level1;
+ virtualModifier= Meta;
+ action = SetMods(modifiers=modMapMods);
+ };
+
+ interpret Meta_R {
+ action = SetMods(modifiers=Meta);
+ };
+
+ // Sets the "Super" virtual modifier
+
+ interpret Super_L+Any {
+// useModMapMods= level1;
+ virtualModifier= Super;
+ action = SetMods(modifiers=modMapMods);
+ };
+
+ interpret Super_L {
+ action = SetMods(modifiers=Super);
+ };
+
+ interpret Super_R+Any {
+ //useModMapMods= level1;
+ virtualModifier= Super;
+ action = SetMods(modifiers=modMapMods);
+ };
+
+ interpret Super_R {
+ action = SetMods(modifiers=Super);
+ };
+
+ // Sets the "Hyper" virtual modifier
+
+ interpret Hyper_L+Any {
+// useModMapMods= level1;
+ virtualModifier= Hyper;
+ action = SetMods(modifiers=modMapMods);
+ };
+
+ interpret Hyper_L {
+ action = SetMods(modifiers=Hyper);
+ };
+
+ interpret Hyper_R+Any {
+ //useModMapMods= level1;
+ virtualModifier= Hyper;
+ action = SetMods(modifiers=modMapMods);
+ };
+
+ interpret Hyper_R {
+ action = SetMods(modifiers=Hyper);
+ };
+
+ // Sets the "ScrollLock" virtual modifier and
+ // makes it actually lock when pressed. Sets
+ // up a map for the scroll lock indicator.
+ interpret Scroll_Lock+Any {
+ virtualModifier= ScrollLock;
+ action = LockMods(modifiers=modMapMods);
+ };
+
+ include "ledscroll"
+};
+
+partial xkb_compatibility "assign_shift_left_action" {
+ // Because of the irrevertable modifier mapping in symbols/pc <LFSH> is
+ // getting bound to the Lock modifier when using
+ // symbols/shift(both_capslock), creating unwanted behaviour.
+ // This is a quirk, to circumvent the problem.
+ interpret Shift_L {
+ action = SetMods(modifiers = Shift);
+ };
+};
diff --git a/linux/X/compat/neo_mods b/linux/X/compat/neo_mods
deleted file mode 100644
index b45f576..0000000
--- a/linux/X/compat/neo_mods
+++ /dev/null
@@ -1,30 +0,0 @@
-// Neo special modifiers
-default partial xkb_compatibility "default" {
- include "neo_mods(caps_lock)"
- include "neo_mods(shift_fix)"
- include "neo_mods(level5_lock)"
-};
-
-partial xkb_compatibility "caps_lock" {
- // Keysym Caps_Lock locks Lock modifier
- // No need for modifier-mapping
- interpret Caps_Lock {
- action = LockMods(modifiers = Lock);
- };
-};
-
-partial xkb_compatibility "shift_fix" {
- // Seems like symbols/level3(caps_switch) does something evil to the left shift-key.
- // This should do the trick:
- interpret Shift_L {
- action = SetMods(modifiers = Shift);
- };
-};
-
-partial xkb_compatibility "level5_lock" {
- virtual_modifiers NumLock;
- // NumLock is misused for level5-lock-indication
- interpret ISO_Level5_Lock {
- action = LockMods(modifiers = NumLock);
- };
-};