summaryrefslogtreecommitdiff
path: root/compat/mousekeys
blob: fbd2b889aed0dd56df1fc890b373fc53f947ca08 (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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205

// $Xorg: mousekeys,v 1.3 2000/08/17 19:54:34 cpqbld Exp $

// Interpretations for arrow keys and a bunch of other 
// common keysyms which make it possible to bind "mouse" 
// keys using xmodmap and activate or deactivate them 
// from the keyboard.

default partial xkb_compatibility "mousekeys" {

    // Keypad actions.
    //
    interpret.repeat= True;

    interpret KP_1 { 
	action = MovePtr(x=-1,y= +1); 
    };
    interpret KP_End { 
	action = MovePtr(x=-1,y= +1); 
    };

    interpret KP_2 { 
	action = MovePtr(x=+0,y= +1); 
    };
    interpret KP_Down { 
	action = MovePtr(x=+0,y= +1); 
    };

    interpret KP_3 { 
	action = MovePtr(x=+1,y=+1); 
    };
    interpret KP_Next { 
 	action = MovePtr(x=+1,y=+1); 
    };

    interpret KP_4 { 
	action = MovePtr(x=-1,y=+0); 
    };
    interpret KP_Left { 
	action = MovePtr(x=-1,y=+0); 
    };

    interpret KP_6 { 
	action = MovePtr(x=+1,y=+0); 
    };
    interpret KP_Right { 
 	action = MovePtr(x=+1,y=+0); 
    };

    interpret KP_7 { 
	action = MovePtr(x=-1,y=-1); 
    };
    interpret KP_Home { 
	action = MovePtr(x=-1,y=-1); 
    };

    interpret KP_8 { 
	action = MovePtr(x=+0,y=-1); 
    };
    interpret KP_Up { 
	action = MovePtr(x=+0,y=-1); 
    };

    interpret KP_9 { 
	action = MovePtr(x=+1,y=-1); 
    };
    interpret KP_Prior { 
	action = MovePtr(x=+1,y=-1); 
    };

    interpret KP_5 { 
	action = PointerButton(button=default); 
    };
    interpret KP_Begin { 
	action = PointerButton(button=default); 
    };

    interpret KP_F2 { 
	action = SetPtrDflt(affect=defaultButton,button=1); 
    };
    interpret KP_Divide { 
	action = SetPtrDflt(affect=defaultButton,button=1); 
    };

    interpret KP_F3 { 
	action = SetPtrDflt(affect=defaultButton,button=2); 
    };
    interpret KP_Multiply { 
	action = SetPtrDflt(affect=defaultButton,button=2); 
    };

    interpret KP_F4 { 
	action = SetPtrDflt(affect=defaultButton,button=3); 
    };
    interpret KP_Subtract { 
	action = SetPtrDflt(affect=defaultButton,button=3); 
    };

    interpret KP_Separator { 
	action = PointerButton(button=default,count=2); 
    };
    interpret KP_Add { 
	action = PointerButton(button=default,count=2);
    };

    interpret KP_0 { 
	action = LockPointerButton(button=default,affect=lock); 
    };
    interpret KP_Insert { 
	action = LockPointerButton(button=default,affect=lock); 
    };

    interpret KP_Decimal { 
	action = LockPointerButton(button=default,affect=unlock); 
    };
    interpret KP_Delete { 
	action = LockPointerButton(button=default,affect=unlock); 
    };

    // Additional mappings for Solaris keypad compatibility
    interpret F25 { // aka KP_Divide
	action = SetPtrDflt(affect=defaultButton,button=1); 
    };
    interpret F26 { // aka KP_Multiply
	action = SetPtrDflt(affect=defaultButton,button=2); 
    };
    interpret F27 { // aka KP_Home
	action = MovePtr(x=-1,y=-1); 
    };
    interpret F29 { // aka KP_Prior
	action = MovePtr(x=+1,y=-1); 
    };
    interpret F31 { // aka KP_Begin
	action = PointerButton(button=default); 
    };
    interpret F33 { // aka KP_End
	action = MovePtr(x=-1,y= +1); 
    };
    interpret F35 { // aka KP_Next
 	action = MovePtr(x=+1,y=+1); 
    };

    interpret.repeat= False;


    // New Keysym Actions.
    //
    interpret Pointer_Button_Dflt {
	action= PointerButton(button=default);
    };
    interpret Pointer_Button1 {
	action= PointerButton(button=1);
    };
    interpret Pointer_Button2 {
	action= PointerButton(button=2);
    };
    interpret Pointer_Button3 {
	action= PointerButton(button=3);
    };
    interpret Pointer_DblClick_Dflt {
	action= PointerButton(button=default,count=2);
    };
    interpret Pointer_DblClick1 {
	action= PointerButton(button=1,count=2);
    };
    interpret Pointer_DblClick2 {
	action= PointerButton(button=2,count=2);
    };
    interpret Pointer_DblClick3 {
	action= PointerButton(button=3,count=2);
    };
    interpret Pointer_Drag_Dflt	{
	action= LockPointerButton(button=default);
    };
    interpret Pointer_Drag1 {
	action= LockPointerButton(button=1);
    };
    interpret Pointer_Drag2 {
	action= LockPointerButton(button=2);
    };
    interpret Pointer_Drag3 {
	action= LockPointerButton(button=3);
    };

    interpret Pointer_EnableKeys {
	action= LockControls(controls=MouseKeys);
    };
    interpret Pointer_Accelerate {
	action= LockControls(controls=MouseKeysAccel);
    };
    interpret Pointer_DfltBtnNext {
	action= SetPtrDflt(affect=defaultButton,button= +1);
    };
    interpret Pointer_DfltBtnPrev {
	action= SetPtrDflt(affect=defaultButton,button= -1);
    };


    // Allow an indicator for MouseKeys.
    indicator "Mouse Keys" {
//	!allowExplicit;
	indicatorDrivesKeyboard;
	controls= MouseKeys;
    };
};