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;
// Set the "Alt" virtual modifier.
interpret Alt_L+Any {
virtualModifier= Alt;
action = SetMods(modifiers=modMapMods);
};
interpret Alt_L {
action = SetMods(modifiers=Alt);
};
interpret Alt_R+Any {
virtualModifier= Alt;
action = SetMods(modifiers=modMapMods);
};
interpret Alt_R {
action = SetMods(modifiers=Alt);
};
// Set the "Meta" virtual modifier.
interpret Meta_L+Any {
virtualModifier= Meta;
action = SetMods(modifiers=modMapMods);
};
interpret Meta_L {
action = SetMods(modifiers=Meta);
};
interpret Meta_R+Any {
virtualModifier= Meta;
action = SetMods(modifiers=modMapMods);
};
interpret Meta_R {
action = SetMods(modifiers=Meta);
};
// Set the "Super" virtual modifier.
interpret Super_L+Any {
virtualModifier= Super;
action = SetMods(modifiers=modMapMods);
};
interpret Super_L {
action = SetMods(modifiers=Super);
};
interpret Super_R+Any {
virtualModifier= Super;
action = SetMods(modifiers=modMapMods);
};
interpret Super_R {
action = SetMods(modifiers=Super);
};
// Set the "Hyper" virtual modifier.
interpret Hyper_L+Any {
virtualModifier= Hyper;
action = SetMods(modifiers=modMapMods);
};
interpret Hyper_L {
action = SetMods(modifiers=Hyper);
};
interpret Hyper_R+Any {
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"
include "misc(assign_shift_left_action)"
include "misc(assign_shift_right_action)"
};
partial xkb_compatibility "assign_shift_left_action" {
// Because of the irreversible mapping of the Lock modifier to the
// keysym Caps_Lock in symbols/pc, some combinations of options
// involving e.g symbols/shift(lshift_both_capslock) may make
// <LFSH> bound to the Lock modifier, creating unwanted behaviour.
// The following statement ensures Shift_L always sets the Shift
// modifier.
interpret Shift_L {
action = SetMods(modifiers = Shift);
};
};
partial xkb_compatibility "assign_shift_right_action" {
// A similar issue as assign_shift_left_action hereinabove may
// happen to <RTSH> with some combinations of options,
// involving e.g symbols/shift(shift_both_capslock) and
// symbols/group(lalt_lshift_toggle). The following statement
// ensures Shift_R always sets the Shift modifier.
interpret Shift_R {
action = SetMods(modifiers = Shift);
};
};
|