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