1 // Interpretations for arrow keys and a bunch of
2 // other common keysyms which make it possible to
3 // bind "mouse" keys using xmodmap and activate or
4 // deactivate them from the keyboard.
6 default partial xkb_compatibility "mousekeys" {
10 interpret.repeat= True;
13 action = MovePtr(x=-1,y= +1);
16 action = MovePtr(x=-1,y= +1);
20 action = MovePtr(x=+0,y= +1);
23 action = MovePtr(x=+0,y= +1);
27 action = MovePtr(x=+1,y=+1);
30 action = MovePtr(x=+1,y=+1);
34 action = MovePtr(x=-1,y=+0);
37 action = MovePtr(x=-1,y=+0);
41 action = MovePtr(x=+1,y=+0);
44 action = MovePtr(x=+1,y=+0);
48 action = MovePtr(x=-1,y=-1);
51 action = MovePtr(x=-1,y=-1);
55 action = MovePtr(x=+0,y=-1);
58 action = MovePtr(x=+0,y=-1);
62 action = MovePtr(x=+1,y=-1);
65 action = MovePtr(x=+1,y=-1);
69 action = PointerButton(button=default);
72 action = PointerButton(button=default);
76 action = SetPtrDflt(affect=defaultButton,button=1);
79 action = SetPtrDflt(affect=defaultButton,button=1);
83 action = SetPtrDflt(affect=defaultButton,button=2);
85 interpret KP_Multiply {
86 action = SetPtrDflt(affect=defaultButton,button=2);
90 action = SetPtrDflt(affect=defaultButton,button=3);
92 interpret KP_Subtract {
93 action = SetPtrDflt(affect=defaultButton,button=3);
96 interpret KP_Separator {
97 action = PointerButton(button=default,count=2);
100 action = PointerButton(button=default,count=2);
104 action = LockPointerButton(button=default,affect=lock);
106 interpret KP_Insert {
107 action = LockPointerButton(button=default,affect=lock);
110 interpret KP_Decimal {
111 action = LockPointerButton(button=default,affect=unlock);
113 interpret KP_Delete {
114 action = LockPointerButton(button=default,affect=unlock);
117 // Additional mappings for Solaris keypad compatibility.
119 interpret F25 { // aka KP_Divide
120 action = SetPtrDflt(affect=defaultButton,button=1);
122 interpret F26 { // aka KP_Multiply
123 action = SetPtrDflt(affect=defaultButton,button=2);
125 interpret F27 { // aka KP_Home
126 action = MovePtr(x=-1,y=-1);
128 interpret F29 { // aka KP_Prior
129 action = MovePtr(x=+1,y=-1);
131 interpret F31 { // aka KP_Begin
132 action = PointerButton(button=default);
134 interpret F33 { // aka KP_End
135 action = MovePtr(x=-1,y= +1);
137 interpret F35 { // aka KP_Next
138 action = MovePtr(x=+1,y=+1);
141 interpret.repeat= False;
143 // New keysym actions.
145 interpret Pointer_Button_Dflt {
146 action= PointerButton(button=default);
148 interpret Pointer_Button1 {
149 action= PointerButton(button=1);
151 interpret Pointer_Button2 {
152 action= PointerButton(button=2);
154 interpret Pointer_Button3 {
155 action= PointerButton(button=3);
157 interpret Pointer_DblClick_Dflt {
158 action= PointerButton(button=default,count=2);
160 interpret Pointer_DblClick1 {
161 action= PointerButton(button=1,count=2);
163 interpret Pointer_DblClick2 {
164 action= PointerButton(button=2,count=2);
166 interpret Pointer_DblClick3 {
167 action= PointerButton(button=3,count=2);
169 interpret Pointer_Drag_Dflt {
170 action= LockPointerButton(button=default);
172 interpret Pointer_Drag1 {
173 action= LockPointerButton(button=1);
175 interpret Pointer_Drag2 {
176 action= LockPointerButton(button=2);
178 interpret Pointer_Drag3 {
179 action= LockPointerButton(button=3);
182 interpret Pointer_EnableKeys {
183 action= LockControls(controls=MouseKeys);
185 interpret Pointer_Accelerate {
186 action= LockControls(controls=MouseKeysAccel);
188 interpret Pointer_DfltBtnNext {
189 action= SetPtrDflt(affect=defaultButton,button= +1);
191 interpret Pointer_DfltBtnPrev {
192 action= SetPtrDflt(affect=defaultButton,button= -1);
195 // Allow an indicator for MouseKeys.
196 indicator "Mouse Keys" {
198 indicatorDrivesKeyboard;