Add control and meta combinations for arrow keys
Since there isn't any terminfo capability for control and meta modifiers for arrows keys it is necessary use the same that almost terminal emulators use, because there are a lot of programs which have these codes hardcoded. This cause also that shift combinations are also changed, but in this case this is not a problem since there are terminfo capabilities for them. After this patch shift-up and shift-down continue not working in emacs with TERM=st, but they work with TERM=xterm, so it is possible some other changes are necessary in the terminfo entry. --- config.def.h | 16 ++++++++++++---- st.info | 8 ++++---- 2 files changed, 16 insertions(+), 8 deletions(-)
This commit is contained in:
		
							parent
							
								
									3b16695f4e
								
							
						
					
					
						commit
						44597b359e
					
				
							
								
								
									
										16
									
								
								config.def.h
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								config.def.h
									
									
									
									
									
								
							| @ -80,16 +80,24 @@ static Key key[] = { | |||||||
| 	{ XK_BackSpace,     XK_NO_MOD,      "\177",          0,    0,    0}, | 	{ 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[A",        0,   -1,    0}, | ||||||
| 	{ XK_Up,            XK_NO_MOD,      "\033OA",        0,   +1,    0}, | 	{ XK_Up,            XK_NO_MOD,      "\033OA",        0,   +1,    0}, | ||||||
| 	{ XK_Up,            ShiftMask,      "\033[a",        0,    0,    0}, | 	{ XK_Up,            ShiftMask,      "\033[1;2A",     0,    0,    0}, | ||||||
|  | 	{ XK_Up,            ControlMask,    "\033[1;5A",     0,    0,    0}, | ||||||
|  | 	{ XK_Up,            Mod1Mask,       "\033[1;3A",     0,    0,    0}, | ||||||
| 	{ XK_Down,          XK_NO_MOD,      "\033[B",        0,   -1,    0}, | 	{ XK_Down,          XK_NO_MOD,      "\033[B",        0,   -1,    0}, | ||||||
| 	{ XK_Down,          XK_NO_MOD,      "\033OB",        0,   +1,    0}, | 	{ XK_Down,          XK_NO_MOD,      "\033OB",        0,   +1,    0}, | ||||||
| 	{ XK_Down,          ShiftMask,      "\033[b",        0,    0,    0}, | 	{ XK_Down,          ShiftMask,      "\033[1;2B",     0,    0,    0}, | ||||||
|  | 	{ XK_Down,          ControlMask,    "\033[1;5B",     0,    0,    0}, | ||||||
|  | 	{ XK_Down,          Mod1Mask,       "\033[1;3B",     0,    0,    0}, | ||||||
| 	{ XK_Left,     	    XK_NO_MOD,      "\033[D",        0,   -1,    0}, | 	{ XK_Left,     	    XK_NO_MOD,      "\033[D",        0,   -1,    0}, | ||||||
| 	{ XK_Left,          XK_NO_MOD,      "\033OD",        0,   +1,    0}, | 	{ XK_Left,          XK_NO_MOD,      "\033OD",        0,   +1,    0}, | ||||||
| 	{ XK_Left,          ShiftMask,      "\033[d",        0,    0,    0}, | 	{ XK_Left,          ShiftMask,      "\033[1;2D",     0,    0,    0}, | ||||||
|  | 	{ XK_Left,          ControlMask,    "\033[1;5D",     0,    0,    0}, | ||||||
|  | 	{ XK_Left,          Mod1Mask,       "\033[1;3D",     0,    0,    0}, | ||||||
| 	{ XK_Right,         XK_NO_MOD,      "\033[C",        0,   -1,    0}, | 	{ XK_Right,         XK_NO_MOD,      "\033[C",        0,   -1,    0}, | ||||||
| 	{ XK_Right,         XK_NO_MOD,      "\033OC",        0,   +1,    0}, | 	{ XK_Right,         XK_NO_MOD,      "\033OC",        0,   +1,    0}, | ||||||
| 	{ XK_Right,         ShiftMask,      "\033[c",        0,    0,    0}, | 	{ XK_Right,         ShiftMask,      "\033[1;2C",     0,    0,    0}, | ||||||
|  | 	{ XK_Right,         ControlMask,    "\033[1;5C",     0,    0,    0}, | ||||||
|  | 	{ XK_Right,         Mod1Mask,       "\033[1;3C",     0,    0,    0}, | ||||||
| 	{ XK_Return,        XK_NO_MOD,      "\n",            0,    0,   -1}, | 	{ XK_Return,        XK_NO_MOD,      "\n",            0,    0,   -1}, | ||||||
| 	{ XK_Return,        XK_NO_MOD,      "\r\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\n",        0,    0,   -1}, | ||||||
|  | |||||||
							
								
								
									
										8
									
								
								st.info
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								st.info
									
									
									
									
									
								
							| @ -54,10 +54,10 @@ st| simpleterm, | |||||||
| 	kcud1=\EOB, | 	kcud1=\EOB, | ||||||
| 	kcuf1=\EOC, | 	kcuf1=\EOC, | ||||||
| 	kcuu1=\EOA, | 	kcuu1=\EOA, | ||||||
| 	kLFT=\E[d, | 	kLFT=\E[1;2D, | ||||||
| 	kRIT=\E[c, | 	kRIT=\E[1;2C, | ||||||
| 	kind=\E[a, | 	kind=\E[1;2B, | ||||||
| 	kri=\E[b, | 	kri=\E[1;2A, | ||||||
| 	kdch1=\E[3~, | 	kdch1=\E[3~, | ||||||
| 	kich1=\E[2~, | 	kich1=\E[2~, | ||||||
| 	kend=\E[4~, | 	kend=\E[4~, | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user