Change the existing client flags for control mode to apply for any

client, use the same mechanism for the read-only flag and add an
ignore-size flag.

refresh-client -F has become -f (-F stays for backwards compatibility)
and attach-session and switch-client now have -f flags also. A new
format "client_flags" lists the flags and is shown by list-clients by
default.

This separates the read-only flag from "ignore size" behaviour (new
ignore-size) flag - both behaviours are useful in different
circumstances.

attach -r and switchc -r remain and set or toggle both flags together.
This commit is contained in:
nicm
2020-05-16 15:45:29 +00:00
parent 469eda7e44
commit cf9baddd6f
10 changed files with 136 additions and 50 deletions

46
tmux.1
View File

@ -947,6 +947,7 @@ The following commands are available to manage clients and sessions:
.It Xo Ic attach-session
.Op Fl dErx
.Op Fl c Ar working-directory
.Op Fl f Ar flags
.Op Fl t Ar target-session
.Xc
.D1 (alias: Ic attach )
@ -964,12 +965,30 @@ is given, send
.Dv SIGHUP
to the parent process of the client as well as
detaching the client, typically causing it to exit.
.Fl f
sets a comma-separated list of client flags.
The flags are:
.Bl -tag -width Ds
.It read-only
the client is read-only
.It ignore-size
the client does not affect the size of other clients
.It no-output
the client does not receive pane output in control mode
.El
.Pp
A leading
.Ql !
turns a flag off if the client is already attached.
.Fl r
signifies the client is read-only (only keys bound to the
is an alias for
.Fl f
.Ar read-only,ignore-size .
When a client is read-only, only keys bound to the
.Ic detach-client
or
.Ic switch-client
commands have any effect)
commands have any effect.
.Pp
If no server is started,
.Ic attach-session
@ -1095,6 +1114,7 @@ Lock all clients attached to
.Op Fl AdDEPX
.Op Fl c Ar start-directory
.Op Fl e Ar environment
.Op Fl f Ar flags
.Op Fl F Ar format
.Op Fl n Ar window-name
.Op Fl s Ar session-name
@ -1132,6 +1152,9 @@ or
is given, the
.Ic default-size
option is set for the session.
.Fl f
sets a comma-separated list of client flags (see
.Ic attach-session ) .
.Pp
If run from a terminal, any
.Xr termios 4
@ -1209,7 +1232,7 @@ specified multiple times.
.It Xo Ic refresh-client
.Op Fl cDlLRSU
.Op Fl C Ar XxY
.Op Fl F Ar flags
.Op Fl f Ar flags
.Op Fl t Ar target-client
.Op Ar adjustment
.Xc
@ -1252,12 +1275,10 @@ window, changing the current window in the attached session will reset
it.
.Pp
.Fl C
sets the width and height of a control client and
.Fl F
sets a comma-separated list of flags.
Currently the only flag available is
.Ql no-output
to disable receiving pane output.
sets the width and height of a control client.
.Fl f
sets a comma-separated list of client flags, see
.Ic attach-session .
.Pp
.Fl l
requests the clipboard from the client using the
@ -1377,7 +1398,11 @@ or
is used, the client is moved to the last, next or previous session
respectively.
.Fl r
toggles whether a client is read-only (see the
toggles the client
.Ic read-only
and
.Ic ignore-size
flags (see the
.Ic attach-session
command).
.Pp
@ -4480,6 +4505,7 @@ The following variables are available, where appropriate:
.It Li "client_control_mode" Ta "" Ta "1 if client is in control mode"
.It Li "client_created" Ta "" Ta "Time client created"
.It Li "client_discarded" Ta "" Ta "Bytes discarded when client behind"
.It Li "client_flags" Ta "" Ta "List of client flags"
.It Li "client_height" Ta "" Ta "Height of client"
.It Li "client_key_table" Ta "" Ta "Current key table"
.It Li "client_last_session" Ta "" Ta "Name of the client's last session"