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