mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 00:56:10 +00:00 
			
		
		
		
	Add an "always" value to the extended-keys option to always forward
these keys to applications inside tmux.
This commit is contained in:
		
							
								
								
									
										2
									
								
								input.c
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								input.c
									
									
									
									
									
								
							@@ -1390,6 +1390,8 @@ input_csi_dispatch(struct input_ctx *ictx)
 | 
			
		||||
	case INPUT_CSI_MODSET:
 | 
			
		||||
		n = input_get(ictx, 0, 0, 0);
 | 
			
		||||
		m = input_get(ictx, 1, 0, 0);
 | 
			
		||||
		if (options_get_number(global_options, "extended-keys") == 2)
 | 
			
		||||
			break;
 | 
			
		||||
		if (n == 0 || (n == 4 && m == 0))
 | 
			
		||||
			screen_write_mode_clear(sctx, MODE_KEXTENDED);
 | 
			
		||||
		else if (n == 4 && (m == 1 || m == 2))
 | 
			
		||||
 
 | 
			
		||||
@@ -75,6 +75,9 @@ static const char *options_table_remain_on_exit_list[] = {
 | 
			
		||||
static const char *options_table_detach_on_destroy_list[] = {
 | 
			
		||||
	"off", "on", "no-detached", NULL
 | 
			
		||||
};
 | 
			
		||||
static const char *options_table_extended_keys_list[] = {
 | 
			
		||||
	"off", "on", "always", NULL
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* Status line format. */
 | 
			
		||||
#define OPTIONS_TABLE_STATUS_FORMAT1 \
 | 
			
		||||
@@ -267,8 +270,9 @@ const struct options_table_entry options_table[] = {
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	{ .name = "extended-keys",
 | 
			
		||||
	  .type = OPTIONS_TABLE_FLAG,
 | 
			
		||||
	  .type = OPTIONS_TABLE_CHOICE,
 | 
			
		||||
	  .scope = OPTIONS_TABLE_SERVER,
 | 
			
		||||
	  .choices = options_table_extended_keys_list,
 | 
			
		||||
	  .default_num = 0,
 | 
			
		||||
	  .text = "Whether to request extended key sequences from terminals "
 | 
			
		||||
	          "that support it."
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								screen.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								screen.c
									
									
									
									
									
								
							@@ -101,7 +101,9 @@ screen_reinit(struct screen *s)
 | 
			
		||||
	s->rupper = 0;
 | 
			
		||||
	s->rlower = screen_size_y(s) - 1;
 | 
			
		||||
 | 
			
		||||
	s->mode = MODE_CURSOR | MODE_WRAP;
 | 
			
		||||
	s->mode = MODE_CURSOR|MODE_WRAP;
 | 
			
		||||
	if (options_get_number(global_options, "extended-keys") == 2)
 | 
			
		||||
		s->mode |= MODE_KEXTENDED;
 | 
			
		||||
 | 
			
		||||
	if (s->saved_grid != NULL)
 | 
			
		||||
		screen_alternate_off(s, NULL, 0);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										25
									
								
								tmux.1
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								tmux.1
									
									
									
									
									
								
							@@ -3418,11 +3418,24 @@ sessions.
 | 
			
		||||
.Xc
 | 
			
		||||
If enabled, the server will exit when there are no attached clients.
 | 
			
		||||
.It Xo Ic extended-keys
 | 
			
		||||
.Op Ic on | off
 | 
			
		||||
.Op Ic on | off | always
 | 
			
		||||
.Xc
 | 
			
		||||
When enabled, extended keys are requested from the terminal and if supported
 | 
			
		||||
are recognised by
 | 
			
		||||
.Nm .
 | 
			
		||||
When
 | 
			
		||||
.Ic on
 | 
			
		||||
or
 | 
			
		||||
.Ic always ,
 | 
			
		||||
the escape sequence to enable extended keys is sent to the terminal, if
 | 
			
		||||
.Nm
 | 
			
		||||
knows that it is supported.
 | 
			
		||||
.Nm
 | 
			
		||||
always recognises extended keys itself.
 | 
			
		||||
If this option is
 | 
			
		||||
.Ic on ,
 | 
			
		||||
.Nm
 | 
			
		||||
will only forward extended keys to applications when they request them; if
 | 
			
		||||
.Ic always ,
 | 
			
		||||
.Nm
 | 
			
		||||
will always forward the keys.
 | 
			
		||||
.It Xo Ic focus-events
 | 
			
		||||
.Op Ic on | off
 | 
			
		||||
.Xc
 | 
			
		||||
@@ -3501,8 +3514,8 @@ capabilities to be set instead,
 | 
			
		||||
is intended for classes of functionality supported in a standard way but not
 | 
			
		||||
reported by
 | 
			
		||||
.Xr terminfo 5 .
 | 
			
		||||
Care must be taken only to configure this with features the terminal actually
 | 
			
		||||
support.
 | 
			
		||||
Care must be taken to configure this only with features the terminal actually
 | 
			
		||||
supports.
 | 
			
		||||
.Pp
 | 
			
		||||
This is an array option where each entry is a colon-separated string made up
 | 
			
		||||
of a terminal type pattern (matched using
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user