1797b363dSmrgdefault partial xkb_compatibility "misc" { 2154daed1Smrg 3797b363dSmrg virtual_modifiers Alt,Meta,Super,Hyper,ScrollLock; 4154daed1Smrg 5797b363dSmrg // Interpretations for some other useful keys. 6154daed1Smrg 7154daed1Smrg interpret Terminate_Server { 8797b363dSmrg action = Terminate(); 9154daed1Smrg }; 10154daed1Smrg 11154daed1Smrg setMods.clearLocks= True; 12154daed1Smrg 1346185892Smrg // Set the "Alt" virtual modifier. 14154daed1Smrg 15797b363dSmrg interpret Alt_L+Any { 16154daed1Smrg virtualModifier= Alt; 17154daed1Smrg action = SetMods(modifiers=modMapMods); 18154daed1Smrg }; 19154daed1Smrg 20797b363dSmrg interpret Alt_L { 21154daed1Smrg action = SetMods(modifiers=Alt); 22154daed1Smrg }; 23154daed1Smrg 24797b363dSmrg interpret Alt_R+Any { 25154daed1Smrg virtualModifier= Alt; 26154daed1Smrg action = SetMods(modifiers=modMapMods); 27154daed1Smrg }; 28154daed1Smrg 29797b363dSmrg interpret Alt_R { 30154daed1Smrg action = SetMods(modifiers=Alt); 31154daed1Smrg }; 32154daed1Smrg 3346185892Smrg // Set the "Meta" virtual modifier. 34154daed1Smrg 35797b363dSmrg interpret Meta_L+Any { 36154daed1Smrg virtualModifier= Meta; 37154daed1Smrg action = SetMods(modifiers=modMapMods); 38154daed1Smrg }; 39154daed1Smrg 40797b363dSmrg interpret Meta_L { 41154daed1Smrg action = SetMods(modifiers=Meta); 42154daed1Smrg }; 43154daed1Smrg 44797b363dSmrg interpret Meta_R+Any { 45154daed1Smrg virtualModifier= Meta; 46154daed1Smrg action = SetMods(modifiers=modMapMods); 47154daed1Smrg }; 48154daed1Smrg 49797b363dSmrg interpret Meta_R { 50154daed1Smrg action = SetMods(modifiers=Meta); 51154daed1Smrg }; 52154daed1Smrg 5346185892Smrg // Set the "Super" virtual modifier. 54154daed1Smrg 55797b363dSmrg interpret Super_L+Any { 56154daed1Smrg virtualModifier= Super; 57154daed1Smrg action = SetMods(modifiers=modMapMods); 58154daed1Smrg }; 59154daed1Smrg 60797b363dSmrg interpret Super_L { 61154daed1Smrg action = SetMods(modifiers=Super); 62154daed1Smrg }; 63154daed1Smrg 64797b363dSmrg interpret Super_R+Any { 65154daed1Smrg virtualModifier= Super; 66154daed1Smrg action = SetMods(modifiers=modMapMods); 67154daed1Smrg }; 68154daed1Smrg 69797b363dSmrg interpret Super_R { 70154daed1Smrg action = SetMods(modifiers=Super); 71154daed1Smrg }; 72154daed1Smrg 7346185892Smrg // Set the "Hyper" virtual modifier. 74154daed1Smrg 75797b363dSmrg interpret Hyper_L+Any { 76154daed1Smrg virtualModifier= Hyper; 77154daed1Smrg action = SetMods(modifiers=modMapMods); 78154daed1Smrg }; 79154daed1Smrg 80797b363dSmrg interpret Hyper_L { 81154daed1Smrg action = SetMods(modifiers=Hyper); 82154daed1Smrg }; 83154daed1Smrg 84797b363dSmrg interpret Hyper_R+Any { 85154daed1Smrg virtualModifier= Hyper; 86154daed1Smrg action = SetMods(modifiers=modMapMods); 87154daed1Smrg }; 88154daed1Smrg 89797b363dSmrg interpret Hyper_R { 90154daed1Smrg action = SetMods(modifiers=Hyper); 91154daed1Smrg }; 92154daed1Smrg 93154daed1Smrg // Sets the "ScrollLock" virtual modifier and 94154daed1Smrg // makes it actually lock when pressed. Sets 95154daed1Smrg // up a map for the scroll lock indicator. 96797b363dSmrg interpret Scroll_Lock+Any { 97154daed1Smrg virtualModifier= ScrollLock; 98154daed1Smrg action = LockMods(modifiers=modMapMods); 99154daed1Smrg }; 100154daed1Smrg 101154daed1Smrg include "ledscroll" 102797b363dSmrg 103da6c6c0bSmrg include "misc(assign_shift_left_action)" 104154daed1Smrg}; 105c067fea9Sghen 106797b363dSmrgpartial xkb_compatibility "assign_shift_left_action" { 107797b363dSmrg // Because of the irrevertable modifier mapping in symbols/pc, 108797b363dSmrg // <LFSH> is getting bound to the Lock modifier when using 109797b363dSmrg // symbols/shift(both_capslock), creating unwanted behaviour. 110c067fea9Sghen // This is a quirk, to circumvent the problem. 111c067fea9Sghen interpret Shift_L { 112797b363dSmrg action = SetMods(modifiers = Shift); 113c067fea9Sghen }; 114c067fea9Sghen}; 115