@ -56,34 +56,62 @@ static unsigned int defaultucs = 257;
/*
/*
* Special keys ( change & recompile st . info accordingly )
* Special keys ( change & recompile st . info accordingly )
* Keep in mind that kpress ( ) in st . c hardcodes some keys .
*
*
* Mask value :
* Mask value :
* * Use XK_ANY_MOD to match the key no matter modifiers state
* * Use XK_ANY_MOD to match the key no matter modifiers state
* * Use XK_NO_MOD to match the key alone ( no modifiers )
* * Use XK_NO_MOD to match the key alone ( no modifiers )
* keypad value :
* * 0 : no value
* * > 0 : keypad application mode enabled
* * < 0 : keypad application mode disabled
* cursor value :
* * 0 : no value
* * > 0 : cursor application mode enabled
* * < 0 : cursor application mode disabled
* crlf value
* * 0 : no value
* * > 0 : crlf mode is enabled
* * < 0 : crlf mode is disabled
*/
*/
/* key, mask, output */
/* key, mask, output, keypad, cursor, crlf */
static Key key [ ] = {
static Key key [ ] = {
{ XK_BackSpace , XK_NO_MOD , " \177 " } ,
{ XK_Insert , XK_NO_MOD , " \033 [2~ " } ,
{ XK_Delete , XK_NO_MOD , " \033 [3~ " } ,
{ XK_Home , XK_NO_MOD , " \033 [1~ " } ,
{ XK_End , XK_NO_MOD , " \033 [4~ " } ,
{ XK_Prior , XK_NO_MOD , " \033 [5~ " } ,
{ XK_Next , XK_NO_MOD , " \033 [6~ " } ,
{ XK_F1 , XK_NO_MOD , " \033 OP " } ,
{ XK_F2 , XK_NO_MOD , " \033 OQ " } ,
{ XK_F3 , XK_NO_MOD , " \033 OR " } ,
{ XK_F4 , XK_NO_MOD , " \033 OS " } ,
{ XK_F5 , XK_NO_MOD , " \033 [15~ " } ,
{ XK_F6 , XK_NO_MOD , " \033 [17~ " } ,
{ XK_F7 , XK_NO_MOD , " \033 [18~ " } ,
{ XK_F8 , XK_NO_MOD , " \033 [19~ " } ,
{ XK_F9 , XK_NO_MOD , " \033 [20~ " } ,
{ XK_F10 , XK_NO_MOD , " \033 [21~ " } ,
{ XK_F11 , XK_NO_MOD , " \033 [23~ " } ,
{ XK_F12 , XK_NO_MOD , " \033 [24~ " } ,
/* keysym mask string keypad cursor crlf */
{ XK_BackSpace , XK_NO_MOD , " \177 " , 0 , 0 , 0 } ,
{ XK_Up , XK_NO_MOD , " \033 [A " , 0 , - 1 , 0 } ,
{ XK_Up , XK_NO_MOD , " \033 OA " , 0 , + 1 , 0 } ,
{ XK_Up , ShiftMask , " \033 [a " , 0 , 0 , 0 } ,
{ XK_Down , XK_NO_MOD , " \033 [B " , 0 , - 1 , 0 } ,
{ XK_Down , XK_NO_MOD , " \033 OB " , 0 , + 1 , 0 } ,
{ XK_Down , ShiftMask , " \033 [b " , 0 , 0 , 0 } ,
{ XK_Left , XK_NO_MOD , " \033 [D " , 0 , - 1 , 0 } ,
{ XK_Left , XK_NO_MOD , " \033 OD " , 0 , + 1 , 0 } ,
{ XK_Left , ShiftMask , " \033 [d " , 0 , 0 , 0 } ,
{ XK_Right , XK_NO_MOD , " \033 [C " , 0 , - 1 , 0 } ,
{ XK_Right , XK_NO_MOD , " \033 OC " , 0 , + 1 , 0 } ,
{ XK_Right , ShiftMask , " \033 [c " , 0 , 0 , 0 } ,
{ XK_Return , XK_NO_MOD , " \n " , 0 , 0 , - 1 } ,
{ XK_Return , XK_NO_MOD , " \r \n " , 0 , 0 , + 1 } ,
{ XK_Return , Mod1Mask , " \033 \n " , 0 , 0 , - 1 } ,
{ XK_Return , Mod1Mask , " \033 \r \n " , 0 , 0 , + 1 } ,
{ XK_Insert , XK_NO_MOD , " \033 [2~ " , 0 , 0 , 0 } ,
{ XK_Delete , XK_NO_MOD , " \033 [3~ " , 0 , 0 , 0 } ,
{ XK_Home , XK_NO_MOD , " \033 [1~ " , 0 , 0 , 0 } ,
{ XK_End , XK_NO_MOD , " \033 [4~ " , 0 , 0 , 0 } ,
{ XK_Prior , XK_NO_MOD , " \033 [5~ " , 0 , 0 , 0 } ,
{ XK_Next , XK_NO_MOD , " \033 [6~ " , 0 , 0 , 0 } ,
{ XK_F1 , XK_NO_MOD , " \033 OP " , 0 , 0 , 0 } ,
{ XK_F2 , XK_NO_MOD , " \033 OQ " , 0 , 0 , 0 } ,
{ XK_F3 , XK_NO_MOD , " \033 OR " , 0 , 0 , 0 } ,
{ XK_F4 , XK_NO_MOD , " \033 OS " , 0 , 0 , 0 } ,
{ XK_F5 , XK_NO_MOD , " \033 [15~ " , 0 , 0 , 0 } ,
{ XK_F6 , XK_NO_MOD , " \033 [17~ " , 0 , 0 , 0 } ,
{ XK_F7 , XK_NO_MOD , " \033 [18~ " , 0 , 0 , 0 } ,
{ XK_F8 , XK_NO_MOD , " \033 [19~ " , 0 , 0 , 0 } ,
{ XK_F9 , XK_NO_MOD , " \033 [20~ " , 0 , 0 , 0 } ,
{ XK_F10 , XK_NO_MOD , " \033 [21~ " , 0 , 0 , 0 } ,
{ XK_F11 , XK_NO_MOD , " \033 [23~ " , 0 , 0 , 0 } ,
{ XK_F12 , XK_NO_MOD , " \033 [24~ " , 0 , 0 , 0 } ,
} ;
} ;
/* Internal shortcuts. */
/* Internal shortcuts. */