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