From 5d9e591ae8ebf60bdabd9535877af96ce1ca9980 Mon Sep 17 00:00:00 2001 From: nicm Date: Thu, 2 May 2019 20:12:40 +0000 Subject: [PATCH] Fix up some bits about window-size that seem to have got lost. --- tmux.1 | 107 +++++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 81 insertions(+), 26 deletions(-) diff --git a/tmux.1 b/tmux.1 index 80e51a69..5990c0c7 100644 --- a/tmux.1 +++ b/tmux.1 @@ -206,7 +206,6 @@ and files in the current directory, where .Em PID is the PID of the server or client process. -.Pp If .Fl v is specified twice, an additional @@ -847,13 +846,22 @@ and are the name of and shell command to execute in the initial window. With .Fl d , -the initial size is 80 x 24; +the initial size comes from the global +.Ic default-size +option; .Fl x and .Fl y can be used to specify a different size. .Ql - uses the size of the current client if any. +If +.Fl x +or +.Fl y +is given, the +.Ic default-size +option is set for the session. .Pp If run from a terminal, any .Xr termios 4 @@ -931,6 +939,36 @@ If .Fl S is specified, only update the client's status line. .Pp +The +.Fl U , +.Fl D , +.Fl L +.Fl R , +and +.Fl c +flags allow the visible portion of a window which is larger than the client +to be changed. +.Fl U +moves the visible part up by +.Ar adjustment +rows and +.Fl D +down, +.Fl L +left by +.Ar adjustment +columns and +.Fl R +right. +.Fl c +returns to tracking the cursor automatically. +If +.Ar adjustment +is omitted, 1 is used. +Note that the visible position is a property of the client not of the +window, changing the current window in the attached session will reset +it. +.Pp .Fl C sets the width and height of a control client. .Fl l @@ -2783,9 +2821,15 @@ This option should be configured when .Nm is used as a login shell. .It Ic default-size Ar XxY -Set the default size of windows when the size is not set or the -.Ic window-size -option is manual. +Set the default size of new windows when the +.Ar window-size +option is set to manual or when a session is created with +.Ic new-session +.Fl d . +The value is the width and height separated by an +.Ql x +character. +The default is 80x24. .It Xo Ic destroy-unattached .Op Ic on | off .Xc @@ -3120,10 +3164,13 @@ Supported window options are: Aggressively resize the chosen window. This means that .Nm -will resize the window to the size of the smallest session for which it is the -current window, rather than the smallest session to which it is attached. -The window may resize when the current window is changed on another sessions; -this option is good for full-screen programs which support +will resize the window to the size of the smallest or largest session +(see the +.Ic window-size +option) for which it is the current window, rather than the session to +which it is attached. +The window may resize when the current window is changed on another +session; this option is good for full-screen programs which support .Dv SIGWINCH and poor for interactive programs such as shells. .Pp @@ -3365,6 +3412,28 @@ see the .Sx STYLES section. .Pp +.It Xo Ic window-size +.Ar largest | Ar smallest | Ar manual +.Xc +Configure how +.Nm +determines the window size. +If set to +.Ar largest , +the size of the largest attached session is used; if +.Ar smallest , +the size of the smallest. +If +.Ar manual , +the size of a new window is set from the +.Ic default-size +option and windows are resized automatically. +See also the +.Ic resize-window +command and the +.Ic aggressive-resize +option. +.Pp .It Ic window-style Ar style Set the default window style. For how to specify @@ -3373,21 +3442,6 @@ see the .Sx STYLES section. .Pp -.It Xo Ic window-size -.Op Ic smallest | largest | manual -.Xc -Tell -.Nm -how to automatically size windows either the size of the smallest session -containing the window, the size of the largest, or manual size. -See also the -.Ic resize-window -command and the -.Ic default-size -and -.Ic aggressive-resize -options. -.Pp .It Xo Ic wrap-search .Op Ic on | off .Xc @@ -3936,12 +3990,10 @@ The following variables are available, where appropriate: .It Li "session_group_size" Ta "" Ta "Size of session group" .It Li "session_group_list" Ta "" Ta "List of sessions in group" .It Li "session_grouped" Ta "" Ta "1 if session in a group" -.It Li "session_height" Ta "" Ta "Height of session" .It Li "session_id" Ta "" Ta "Unique session ID" .It Li "session_many_attached" Ta "" Ta "1 if multiple clients attached" .It Li "session_name" Ta "#S" Ta "Name of session" .It Li "session_stack" Ta "" Ta "Window indexes in most recent order" -.It Li "session_width" Ta "" Ta "Width of session" .It Li "session_windows" Ta "" Ta "Number of windows in session" .It Li "socket_path" Ta "" Ta "Server socket path" .It Li "start_time" Ta "" Ta "Server start time" @@ -3949,6 +4001,7 @@ The following variables are available, where appropriate: .It Li "window_activity_flag" Ta "" Ta "1 if window has activity" .It Li "window_active" Ta "" Ta "1 if window active" .It Li "window_bell_flag" Ta "" Ta "1 if window has bell" +.It Li "window_bigger" Ta "" Ta "1 if window is larger than client" .It Li "window_end_flag" Ta "" Ta "1 if window has the highest index" .It Li "window_flags" Ta "#F" Ta "Window flags" .It Li "window_format" Ta "" Ta "1 if format is for a window (not assuming the current)" @@ -3959,6 +4012,8 @@ The following variables are available, where appropriate: .It Li "window_layout" Ta "" Ta "Window layout description, ignoring zoomed window panes" .It Li "window_linked" Ta "" Ta "1 if window is linked across sessions" .It Li "window_name" Ta "#W" Ta "Name of window" +.It Li "window_offset_x" Ta "" Ta "X offset into window if larger than client" +.It Li "window_offset_y" Ta "" Ta "Y offset into window if larger than client" .It Li "window_panes" Ta "" Ta "Number of panes in window" .It Li "window_silence_flag" Ta "" Ta "1 if window has silence alert" .It Li "window_stack_index" Ta "" Ta "Index in session most recent stack"