mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 00:56:10 +00:00 
			
		
		
		
	Add other-pane-height and other-pane-width options, allowing the width
or height of the smaller panes in the main-horizontal and main-vertical layouts to be set. Mostly from David Goodlad.
This commit is contained in:
		@@ -159,6 +159,8 @@ const struct set_option_entry set_window_option_table[] = {
 | 
			
		||||
	{ "monitor-activity", SET_OPTION_FLAG, 0, 0, NULL },
 | 
			
		||||
	{ "monitor-content", SET_OPTION_STRING, 0, 0, NULL },
 | 
			
		||||
	{ "monitor-silence",SET_OPTION_NUMBER, 0, INT_MAX, NULL},
 | 
			
		||||
	{ "other-pane-height", SET_OPTION_NUMBER, 0, INT_MAX, NULL },
 | 
			
		||||
	{ "other-pane-width", SET_OPTION_NUMBER, 0, INT_MAX, NULL },
 | 
			
		||||
	{ "remain-on-exit", SET_OPTION_FLAG, 0, 0, NULL },
 | 
			
		||||
	{ "synchronize-panes", SET_OPTION_FLAG, 0, 0, NULL },
 | 
			
		||||
	{ "utf8", SET_OPTION_FLAG, 0, 0, NULL },
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										28
									
								
								layout-set.c
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								layout-set.c
									
									
									
									
									
								
							@@ -231,8 +231,8 @@ layout_set_main_h(struct window *w)
 | 
			
		||||
{
 | 
			
		||||
	struct window_pane	*wp;
 | 
			
		||||
	struct layout_cell	*lc, *lcmain, *lcrow, *lcchild;
 | 
			
		||||
	u_int			 n, mainheight, width, height, used;
 | 
			
		||||
	u_int			 i, j, columns, rows, totalrows;
 | 
			
		||||
	u_int			 n, mainheight, otherheight, width, height;
 | 
			
		||||
	u_int			 used, i, j, columns, rows, totalrows;
 | 
			
		||||
 | 
			
		||||
	layout_print_cell(w->layout_root, __func__, 1);
 | 
			
		||||
 | 
			
		||||
@@ -252,6 +252,16 @@ layout_set_main_h(struct window *w)
 | 
			
		||||
 | 
			
		||||
	/* Get the main pane height and add one for separator line. */
 | 
			
		||||
	mainheight = options_get_number(&w->options, "main-pane-height") + 1;
 | 
			
		||||
 | 
			
		||||
	/* Get the optional other pane height and add one for separator line. */
 | 
			
		||||
	otherheight = options_get_number(&w->options, "other-pane-height") + 1;
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * If an other pane height was specified, honour it so long as it
 | 
			
		||||
	 * doesn't shrink the main height to less than the main-pane-height
 | 
			
		||||
	 */
 | 
			
		||||
	if (otherheight > 1 && w->sx - otherheight > mainheight)
 | 
			
		||||
		mainheight = w->sx - otherheight;
 | 
			
		||||
	if (mainheight < PANE_MINIMUM + 1)
 | 
			
		||||
		mainheight = PANE_MINIMUM + 1;
 | 
			
		||||
 | 
			
		||||
@@ -342,8 +352,8 @@ layout_set_main_v(struct window *w)
 | 
			
		||||
{
 | 
			
		||||
	struct window_pane	*wp;
 | 
			
		||||
	struct layout_cell	*lc, *lcmain, *lccolumn, *lcchild;
 | 
			
		||||
	u_int			 n, mainwidth, width, height, used;
 | 
			
		||||
	u_int			 i, j, columns, rows, totalcolumns;
 | 
			
		||||
	u_int			 n, mainwidth, otherwidth, width, height;
 | 
			
		||||
	u_int			 used, i, j, columns, rows, totalcolumns;
 | 
			
		||||
 | 
			
		||||
	layout_print_cell(w->layout_root, __func__, 1);
 | 
			
		||||
 | 
			
		||||
@@ -363,6 +373,16 @@ layout_set_main_v(struct window *w)
 | 
			
		||||
 | 
			
		||||
	/* Get the main pane width and add one for separator line. */
 | 
			
		||||
	mainwidth = options_get_number(&w->options, "main-pane-width") + 1;
 | 
			
		||||
 | 
			
		||||
	/* Get the optional other pane width and add one for separator line. */
 | 
			
		||||
	otherwidth = options_get_number(&w->options, "other-pane-width") + 1;
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * If an other pane width was specified, honour it so long as it
 | 
			
		||||
	 * doesn't shrink the main width to less than the main-pane-width
 | 
			
		||||
	 */
 | 
			
		||||
	if (otherwidth > 1 && w->sx - otherwidth > mainwidth)
 | 
			
		||||
		mainwidth = w->sx - otherwidth;
 | 
			
		||||
	if (mainwidth < PANE_MINIMUM + 1)
 | 
			
		||||
		mainwidth = PANE_MINIMUM + 1;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										19
									
								
								tmux.1
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								tmux.1
									
									
									
									
									
								
							@@ -2195,6 +2195,25 @@ Windows that have been silent for the interval are highlighted in the
 | 
			
		||||
status line.
 | 
			
		||||
An interval of zero disables the monitoring.
 | 
			
		||||
.Pp
 | 
			
		||||
.It Ic other-pane-height Ar height
 | 
			
		||||
Set the height of the other panes (not the main pane) in the
 | 
			
		||||
.Ic main-horizontal
 | 
			
		||||
layout.
 | 
			
		||||
If this option is set to 0 (the default), it will have no effect.
 | 
			
		||||
If both the
 | 
			
		||||
.Ic main-pane-height
 | 
			
		||||
and
 | 
			
		||||
.Ic other-pane-height
 | 
			
		||||
options are set, the main pane will grow taller to make the other panes the
 | 
			
		||||
specified height, but will never shrink to do so.
 | 
			
		||||
.Pp
 | 
			
		||||
.It Ic other-pane-width Ar width
 | 
			
		||||
Like
 | 
			
		||||
.Ic other-pane-height ,
 | 
			
		||||
but set the width of other panes in the
 | 
			
		||||
.Ic main-vertical
 | 
			
		||||
layout.
 | 
			
		||||
.Pp
 | 
			
		||||
.It Xo Ic remain-on-exit
 | 
			
		||||
.Op Ic on | off
 | 
			
		||||
.Xc
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								tmux.c
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								tmux.c
									
									
									
									
									
								
							@@ -404,6 +404,8 @@ main(int argc, char **argv)
 | 
			
		||||
	options_set_number(wo, "monitor-activity", 0);
 | 
			
		||||
	options_set_string(wo, "monitor-content", "%s", "");
 | 
			
		||||
	options_set_number(wo, "monitor-silence", 0);
 | 
			
		||||
	options_set_number(wo, "other-pane-height", 0);
 | 
			
		||||
	options_set_number(wo, "other-pane-width", 0);
 | 
			
		||||
	options_set_number(wo, "window-status-attr", 0);
 | 
			
		||||
	options_set_number(wo, "window-status-bg", 8);
 | 
			
		||||
	options_set_number(wo, "window-status-current-attr", 0);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user