mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 00:56:10 +00:00 
			
		
		
		
	Add an option to disable the smcup/rmcup alternate screen behaviour inside
tmux. From clemens fischer.
This commit is contained in:
		@@ -138,6 +138,7 @@ const struct set_option_entry set_session_option_table[] = {
 | 
			
		||||
 | 
			
		||||
const struct set_option_entry set_window_option_table[] = {
 | 
			
		||||
	{ "aggressive-resize", SET_OPTION_FLAG, 0, 0, NULL },
 | 
			
		||||
	{ "alternate-screen", SET_OPTION_FLAG, 0, 0, NULL },
 | 
			
		||||
	{ "automatic-rename", SET_OPTION_FLAG, 0, 0, NULL },
 | 
			
		||||
	{ "clock-mode-colour", SET_OPTION_COLOUR, 0, 0, NULL },
 | 
			
		||||
	{ "clock-mode-style",
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								input.c
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								input.c
									
									
									
									
									
								
							@@ -1148,6 +1148,7 @@ void
 | 
			
		||||
input_handle_sequence_sm(struct input_ctx *ictx)
 | 
			
		||||
{
 | 
			
		||||
	struct window_pane	*wp = ictx->wp;
 | 
			
		||||
	struct options		*oo = &wp->window->options;
 | 
			
		||||
	struct screen		*s = &wp->base;
 | 
			
		||||
	u_int			 sx, sy;
 | 
			
		||||
	uint16_t		 n;
 | 
			
		||||
@@ -1178,6 +1179,8 @@ input_handle_sequence_sm(struct input_ctx *ictx)
 | 
			
		||||
		case 1049:
 | 
			
		||||
			if (wp->saved_grid != NULL)
 | 
			
		||||
				break;
 | 
			
		||||
			if (!options_get_number(oo, "alternate-screen"))
 | 
			
		||||
				break;
 | 
			
		||||
			sx = screen_size_x(s);
 | 
			
		||||
			sy = screen_size_y(s);
 | 
			
		||||
 | 
			
		||||
@@ -1224,6 +1227,7 @@ void
 | 
			
		||||
input_handle_sequence_rm(struct input_ctx *ictx)
 | 
			
		||||
{
 | 
			
		||||
	struct window_pane	*wp = ictx->wp;
 | 
			
		||||
	struct options		*oo = &wp->window->options;
 | 
			
		||||
	struct screen		*s = &wp->base;
 | 
			
		||||
	u_int			 sx, sy;
 | 
			
		||||
	uint16_t		 n;
 | 
			
		||||
@@ -1254,6 +1258,8 @@ input_handle_sequence_rm(struct input_ctx *ictx)
 | 
			
		||||
		case 1049:
 | 
			
		||||
			if (wp->saved_grid == NULL)
 | 
			
		||||
				break;
 | 
			
		||||
			if (!options_get_number(oo, "alternate-screen"))
 | 
			
		||||
				break;
 | 
			
		||||
			sx = screen_size_x(s);
 | 
			
		||||
			sy = screen_size_y(s);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										13
									
								
								tmux.1
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								tmux.1
									
									
									
									
									
								
							@@ -1898,6 +1898,19 @@ command.
 | 
			
		||||
Duplicate input to any pane to all other panes in the same window, except
 | 
			
		||||
for panes that are not in output mode.
 | 
			
		||||
.Pp
 | 
			
		||||
.It Xo Ic alternate-screen
 | 
			
		||||
.Op Ic on | off
 | 
			
		||||
.Xc
 | 
			
		||||
This option configures whether programs running inside
 | 
			
		||||
.Nm
 | 
			
		||||
may use the terminal alternate screen feature, which allows the
 | 
			
		||||
.Em smcup
 | 
			
		||||
and
 | 
			
		||||
.Em rmcup
 | 
			
		||||
.Xr terminfo 5
 | 
			
		||||
capabilities to be issued to preserve the existing window content on start and
 | 
			
		||||
restore it on exit.
 | 
			
		||||
.Pp
 | 
			
		||||
.It Xo Ic utf8
 | 
			
		||||
.Op Ic on | off
 | 
			
		||||
.Xc
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								tmux.c
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								tmux.c
									
									
									
									
									
								
							@@ -395,6 +395,7 @@ main(int argc, char **argv)
 | 
			
		||||
	options_init(&global_w_options, NULL);
 | 
			
		||||
	wo = &global_w_options;
 | 
			
		||||
	options_set_number(wo, "aggressive-resize", 0);
 | 
			
		||||
	options_set_number(wo, "alternate-screen", 1);
 | 
			
		||||
	options_set_number(wo, "automatic-rename", 1);
 | 
			
		||||
	options_set_number(wo, "clock-mode-colour", 4);
 | 
			
		||||
	options_set_number(wo, "clock-mode-style", 1);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user