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
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
118 interpret F25 { // aka KP_Divide
119 action = SetPtrDflt(affect=defaultButton,button=1);
121 interpret F26 { // aka KP_Multiply
122 action = SetPtrDflt(affect=defaultButton,button=2);
124 interpret F27 { // aka KP_Home
125 action = MovePtr(x=-1,y=-1);
127 interpret F29 { // aka KP_Prior
128 action = MovePtr(x=+1,y=-1);
130 interpret F31 { // aka KP_Begin
131 action = PointerButton(button=default);
133 interpret F33 { // aka KP_End
134 action = MovePtr(x=-1,y= +1);
136 interpret F35 { // aka KP_Next
137 action = MovePtr(x=+1,y=+1);
140 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);
196 // Allow an indicator for MouseKeys.
197 indicator "Mouse Keys" {
199 indicatorDrivesKeyboard;