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