mousekeys revision 154daed1
1154daed1Smrg
2154daed1Smrg// $Xorg: mousekeys,v 1.3 2000/08/17 19:54:34 cpqbld Exp $
3154daed1Smrg
4154daed1Smrg// Interpretations for arrow keys and a bunch of other 
5154daed1Smrg// common keysyms which make it possible to bind "mouse" 
6154daed1Smrg// keys using xmodmap and activate or deactivate them 
7154daed1Smrg// from the keyboard.
8154daed1Smrg
9154daed1Smrgdefault partial xkb_compatibility "mousekeys" {
10154daed1Smrg
11154daed1Smrg    // Keypad actions.
12154daed1Smrg    //
13154daed1Smrg    interpret.repeat= True;
14154daed1Smrg
15154daed1Smrg    interpret KP_1 { 
16154daed1Smrg	action = MovePtr(x=-1,y= +1); 
17154daed1Smrg    };
18154daed1Smrg    interpret KP_End { 
19154daed1Smrg	action = MovePtr(x=-1,y= +1); 
20154daed1Smrg    };
21154daed1Smrg
22154daed1Smrg    interpret KP_2 { 
23154daed1Smrg	action = MovePtr(x=+0,y= +1); 
24154daed1Smrg    };
25154daed1Smrg    interpret KP_Down { 
26154daed1Smrg	action = MovePtr(x=+0,y= +1); 
27154daed1Smrg    };
28154daed1Smrg
29154daed1Smrg    interpret KP_3 { 
30154daed1Smrg	action = MovePtr(x=+1,y=+1); 
31154daed1Smrg    };
32154daed1Smrg    interpret KP_Next { 
33154daed1Smrg 	action = MovePtr(x=+1,y=+1); 
34154daed1Smrg    };
35154daed1Smrg
36154daed1Smrg    interpret KP_4 { 
37154daed1Smrg	action = MovePtr(x=-1,y=+0); 
38154daed1Smrg    };
39154daed1Smrg    interpret KP_Left { 
40154daed1Smrg	action = MovePtr(x=-1,y=+0); 
41154daed1Smrg    };
42154daed1Smrg
43154daed1Smrg    interpret KP_6 { 
44154daed1Smrg	action = MovePtr(x=+1,y=+0); 
45154daed1Smrg    };
46154daed1Smrg    interpret KP_Right { 
47154daed1Smrg 	action = MovePtr(x=+1,y=+0); 
48154daed1Smrg    };
49154daed1Smrg
50154daed1Smrg    interpret KP_7 { 
51154daed1Smrg	action = MovePtr(x=-1,y=-1); 
52154daed1Smrg    };
53154daed1Smrg    interpret KP_Home { 
54154daed1Smrg	action = MovePtr(x=-1,y=-1); 
55154daed1Smrg    };
56154daed1Smrg
57154daed1Smrg    interpret KP_8 { 
58154daed1Smrg	action = MovePtr(x=+0,y=-1); 
59154daed1Smrg    };
60154daed1Smrg    interpret KP_Up { 
61154daed1Smrg	action = MovePtr(x=+0,y=-1); 
62154daed1Smrg    };
63154daed1Smrg
64154daed1Smrg    interpret KP_9 { 
65154daed1Smrg	action = MovePtr(x=+1,y=-1); 
66154daed1Smrg    };
67154daed1Smrg    interpret KP_Prior { 
68154daed1Smrg	action = MovePtr(x=+1,y=-1); 
69154daed1Smrg    };
70154daed1Smrg
71154daed1Smrg    interpret KP_5 { 
72154daed1Smrg	action = PointerButton(button=default); 
73154daed1Smrg    };
74154daed1Smrg    interpret KP_Begin { 
75154daed1Smrg	action = PointerButton(button=default); 
76154daed1Smrg    };
77154daed1Smrg
78154daed1Smrg    interpret KP_F2 { 
79154daed1Smrg	action = SetPtrDflt(affect=defaultButton,button=1); 
80154daed1Smrg    };
81154daed1Smrg    interpret KP_Divide { 
82154daed1Smrg	action = SetPtrDflt(affect=defaultButton,button=1); 
83154daed1Smrg    };
84154daed1Smrg
85154daed1Smrg    interpret KP_F3 { 
86154daed1Smrg	action = SetPtrDflt(affect=defaultButton,button=2); 
87154daed1Smrg    };
88154daed1Smrg    interpret KP_Multiply { 
89154daed1Smrg	action = SetPtrDflt(affect=defaultButton,button=2); 
90154daed1Smrg    };
91154daed1Smrg
92154daed1Smrg    interpret KP_F4 { 
93154daed1Smrg	action = SetPtrDflt(affect=defaultButton,button=3); 
94154daed1Smrg    };
95154daed1Smrg    interpret KP_Subtract { 
96154daed1Smrg	action = SetPtrDflt(affect=defaultButton,button=3); 
97154daed1Smrg    };
98154daed1Smrg
99154daed1Smrg    interpret KP_Separator { 
100154daed1Smrg	action = PointerButton(button=default,count=2); 
101154daed1Smrg    };
102154daed1Smrg    interpret KP_Add { 
103154daed1Smrg	action = PointerButton(button=default,count=2);
104154daed1Smrg    };
105154daed1Smrg
106154daed1Smrg    interpret KP_0 { 
107154daed1Smrg	action = LockPointerButton(button=default,affect=lock); 
108154daed1Smrg    };
109154daed1Smrg    interpret KP_Insert { 
110154daed1Smrg	action = LockPointerButton(button=default,affect=lock); 
111154daed1Smrg    };
112154daed1Smrg
113154daed1Smrg    interpret KP_Decimal { 
114154daed1Smrg	action = LockPointerButton(button=default,affect=unlock); 
115154daed1Smrg    };
116154daed1Smrg    interpret KP_Delete { 
117154daed1Smrg	action = LockPointerButton(button=default,affect=unlock); 
118154daed1Smrg    };
119154daed1Smrg
120154daed1Smrg    // Additional mappings for Solaris keypad compatibility
121154daed1Smrg    interpret F25 { // aka KP_Divide
122154daed1Smrg	action = SetPtrDflt(affect=defaultButton,button=1); 
123154daed1Smrg    };
124154daed1Smrg    interpret F26 { // aka KP_Multiply
125154daed1Smrg	action = SetPtrDflt(affect=defaultButton,button=2); 
126154daed1Smrg    };
127154daed1Smrg    interpret F27 { // aka KP_Home
128154daed1Smrg	action = MovePtr(x=-1,y=-1); 
129154daed1Smrg    };
130154daed1Smrg    interpret F29 { // aka KP_Prior
131154daed1Smrg	action = MovePtr(x=+1,y=-1); 
132154daed1Smrg    };
133154daed1Smrg    interpret F31 { // aka KP_Begin
134154daed1Smrg	action = PointerButton(button=default); 
135154daed1Smrg    };
136154daed1Smrg    interpret F33 { // aka KP_End
137154daed1Smrg	action = MovePtr(x=-1,y= +1); 
138154daed1Smrg    };
139154daed1Smrg    interpret F35 { // aka KP_Next
140154daed1Smrg 	action = MovePtr(x=+1,y=+1); 
141154daed1Smrg    };
142154daed1Smrg
143154daed1Smrg    interpret.repeat= False;
144154daed1Smrg
145154daed1Smrg
146154daed1Smrg    // New Keysym Actions.
147154daed1Smrg    //
148154daed1Smrg    interpret Pointer_Button_Dflt {
149154daed1Smrg	action= PointerButton(button=default);
150154daed1Smrg    };
151154daed1Smrg    interpret Pointer_Button1 {
152154daed1Smrg	action= PointerButton(button=1);
153154daed1Smrg    };
154154daed1Smrg    interpret Pointer_Button2 {
155154daed1Smrg	action= PointerButton(button=2);
156154daed1Smrg    };
157154daed1Smrg    interpret Pointer_Button3 {
158154daed1Smrg	action= PointerButton(button=3);
159154daed1Smrg    };
160154daed1Smrg    interpret Pointer_DblClick_Dflt {
161154daed1Smrg	action= PointerButton(button=default,count=2);
162154daed1Smrg    };
163154daed1Smrg    interpret Pointer_DblClick1 {
164154daed1Smrg	action= PointerButton(button=1,count=2);
165154daed1Smrg    };
166154daed1Smrg    interpret Pointer_DblClick2 {
167154daed1Smrg	action= PointerButton(button=2,count=2);
168154daed1Smrg    };
169154daed1Smrg    interpret Pointer_DblClick3 {
170154daed1Smrg	action= PointerButton(button=3,count=2);
171154daed1Smrg    };
172154daed1Smrg    interpret Pointer_Drag_Dflt	{
173154daed1Smrg	action= LockPointerButton(button=default);
174154daed1Smrg    };
175154daed1Smrg    interpret Pointer_Drag1 {
176154daed1Smrg	action= LockPointerButton(button=1);
177154daed1Smrg    };
178154daed1Smrg    interpret Pointer_Drag2 {
179154daed1Smrg	action= LockPointerButton(button=2);
180154daed1Smrg    };
181154daed1Smrg    interpret Pointer_Drag3 {
182154daed1Smrg	action= LockPointerButton(button=3);
183154daed1Smrg    };
184154daed1Smrg
185154daed1Smrg    interpret Pointer_EnableKeys {
186154daed1Smrg	action= LockControls(controls=MouseKeys);
187154daed1Smrg    };
188154daed1Smrg    interpret Pointer_Accelerate {
189154daed1Smrg	action= LockControls(controls=MouseKeysAccel);
190154daed1Smrg    };
191154daed1Smrg    interpret Pointer_DfltBtnNext {
192154daed1Smrg	action= SetPtrDflt(affect=defaultButton,button= +1);
193154daed1Smrg    };
194154daed1Smrg    interpret Pointer_DfltBtnPrev {
195154daed1Smrg	action= SetPtrDflt(affect=defaultButton,button= -1);
196154daed1Smrg    };
197154daed1Smrg
198154daed1Smrg
199154daed1Smrg    // Allow an indicator for MouseKeys.
200154daed1Smrg    indicator "Mouse Keys" {
201154daed1Smrg//	!allowExplicit;
202154daed1Smrg	indicatorDrivesKeyboard;
203154daed1Smrg	controls= MouseKeys;
204154daed1Smrg    };
205154daed1Smrg};
206