summaryrefslogtreecommitdiff
path: root/compat/misc
blob: e2a0bec169d844f05eb268ca3d122ae223bd88de (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
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)"
};

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);
    };
};