mousekeys revision bfd7cbc1
1// Interpretations for arrow keys and a bunch of other 
2// common keysyms which make it possible to bind "mouse" 
3// keys using xmodmap and activate or deactivate them 
4// from the keyboard.
5
6default partial xkb_compatibility "mousekeys" {
7
8    // Keypad actions.
9    //
10    interpret.repeat= True;
11
12    interpret KP_1 { 
13	action = MovePtr(x=-1,y= +1); 
14    };
15    interpret KP_End { 
16	action = MovePtr(x=-1,y= +1); 
17    };
18
19    interpret KP_2 { 
20	action = MovePtr(x=+0,y= +1); 
21    };
22    interpret KP_Down { 
23	action = MovePtr(x=+0,y= +1); 
24    };
25
26    interpret KP_3 { 
27	action = MovePtr(x=+1,y=+1); 
28    };
29    interpret KP_Next { 
30 	action = MovePtr(x=+1,y=+1); 
31    };
32
33    interpret KP_4 { 
34	action = MovePtr(x=-1,y=+0); 
35    };
36    interpret KP_Left { 
37	action = MovePtr(x=-1,y=+0); 
38    };
39
40    interpret KP_6 { 
41	action = MovePtr(x=+1,y=+0); 
42    };
43    interpret KP_Right { 
44 	action = MovePtr(x=+1,y=+0); 
45    };
46
47    interpret KP_7 { 
48	action = MovePtr(x=-1,y=-1); 
49    };
50    interpret KP_Home { 
51	action = MovePtr(x=-1,y=-1); 
52    };
53
54    interpret KP_8 { 
55	action = MovePtr(x=+0,y=-1); 
56    };
57    interpret KP_Up { 
58	action = MovePtr(x=+0,y=-1); 
59    };
60
61    interpret KP_9 { 
62	action = MovePtr(x=+1,y=-1); 
63    };
64    interpret KP_Prior { 
65	action = MovePtr(x=+1,y=-1); 
66    };
67
68    interpret KP_5 { 
69	action = PointerButton(button=default); 
70    };
71    interpret KP_Begin { 
72	action = PointerButton(button=default); 
73    };
74
75    interpret KP_F2 { 
76	action = SetPtrDflt(affect=defaultButton,button=1); 
77    };
78    interpret KP_Divide { 
79	action = SetPtrDflt(affect=defaultButton,button=1); 
80    };
81
82    interpret KP_F3 { 
83	action = SetPtrDflt(affect=defaultButton,button=2); 
84    };
85    interpret KP_Multiply { 
86	action = SetPtrDflt(affect=defaultButton,button=2); 
87    };
88
89    interpret KP_F4 { 
90	action = SetPtrDflt(affect=defaultButton,button=3); 
91    };
92    interpret KP_Subtract { 
93	action = SetPtrDflt(affect=defaultButton,button=3); 
94    };
95
96    interpret KP_Separator { 
97	action = PointerButton(button=default,count=2); 
98    };
99    interpret KP_Add { 
100	action = PointerButton(button=default,count=2);
101    };
102
103    interpret KP_0 { 
104	action = LockPointerButton(button=default,affect=lock); 
105    };
106    interpret KP_Insert { 
107	action = LockPointerButton(button=default,affect=lock); 
108    };
109
110    interpret KP_Decimal { 
111	action = LockPointerButton(button=default,affect=unlock); 
112    };
113    interpret KP_Delete { 
114	action = LockPointerButton(button=default,affect=unlock); 
115    };
116
117    // Additional mappings for Solaris keypad compatibility
118    interpret F25 { // aka KP_Divide
119	action = SetPtrDflt(affect=defaultButton,button=1); 
120    };
121    interpret F26 { // aka KP_Multiply
122	action = SetPtrDflt(affect=defaultButton,button=2); 
123    };
124    interpret F27 { // aka KP_Home
125	action = MovePtr(x=-1,y=-1); 
126    };
127    interpret F29 { // aka KP_Prior
128	action = MovePtr(x=+1,y=-1); 
129    };
130    interpret F31 { // aka KP_Begin
131	action = PointerButton(button=default); 
132    };
133    interpret F33 { // aka KP_End
134	action = MovePtr(x=-1,y= +1); 
135    };
136    interpret F35 { // aka KP_Next
137 	action = MovePtr(x=+1,y=+1); 
138    };
139
140    interpret.repeat= False;
141
142
143    // New Keysym Actions.
144    //
145    interpret Pointer_Button_Dflt {
146	action= PointerButton(button=default);
147    };
148    interpret Pointer_Button1 {
149	action= PointerButton(button=1);
150    };
151    interpret Pointer_Button2 {
152	action= PointerButton(button=2);
153    };
154    interpret Pointer_Button3 {
155	action= PointerButton(button=3);
156    };
157    interpret Pointer_DblClick_Dflt {
158	action= PointerButton(button=default,count=2);
159    };
160    interpret Pointer_DblClick1 {
161	action= PointerButton(button=1,count=2);
162    };
163    interpret Pointer_DblClick2 {
164	action= PointerButton(button=2,count=2);
165    };
166    interpret Pointer_DblClick3 {
167	action= PointerButton(button=3,count=2);
168    };
169    interpret Pointer_Drag_Dflt	{
170	action= LockPointerButton(button=default);
171    };
172    interpret Pointer_Drag1 {
173	action= LockPointerButton(button=1);
174    };
175    interpret Pointer_Drag2 {
176	action= LockPointerButton(button=2);
177    };
178    interpret Pointer_Drag3 {
179	action= LockPointerButton(button=3);
180    };
181
182    interpret Pointer_EnableKeys {
183	action= LockControls(controls=MouseKeys);
184    };
185    interpret Pointer_Accelerate {
186	action= LockControls(controls=MouseKeysAccel);
187    };
188    interpret Pointer_DfltBtnNext {
189	action= SetPtrDflt(affect=defaultButton,button= +1);
190    };
191    interpret Pointer_DfltBtnPrev {
192	action= SetPtrDflt(affect=defaultButton,button= -1);
193    };
194
195
196    // Allow an indicator for MouseKeys.
197    indicator "Mouse Keys" {
198//	!allowExplicit;
199	indicatorDrivesKeyboard;
200	controls= MouseKeys;
201    };
202};
203