mirror of
				https://github.com/tmux/tmux.git
				synced 2025-10-26 12:27:15 +00:00 
			
		
		
		
	Add a -r flag to switch-client to toggle the client read-only flag. From
Johan Commelin.
This commit is contained in:
		| @@ -76,9 +76,11 @@ cmd_choose_client_exec(struct cmd *self, struct cmd_ctx *ctx) | |||||||
| 		idx++; | 		idx++; | ||||||
|  |  | ||||||
| 		window_choose_add(wl->window->active, i, | 		window_choose_add(wl->window->active, i, | ||||||
| 		    "%s: %s [%ux%u %s]%s", c->tty.path, | 		    "%s: %s [%ux%u %s]%s%s", c->tty.path, | ||||||
| 		    c->session->name, c->tty.sx, c->tty.sy, | 		    c->session->name, c->tty.sx, c->tty.sy, | ||||||
| 		    c->tty.termname, c->tty.flags & TTY_UTF8 ? " (utf8)" : ""); | 		    c->tty.termname, | ||||||
|  | 		    c->tty.flags & TTY_UTF8 ? " (utf8)" : "", | ||||||
|  | 		    c->flags & CLIENT_READONLY ? " (ro)" : ""); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	cdata = xmalloc(sizeof *cdata); | 	cdata = xmalloc(sizeof *cdata); | ||||||
|   | |||||||
| @@ -33,7 +33,7 @@ const struct cmd_entry cmd_list_clients_entry = { | |||||||
| 	"list-clients", "lsc", | 	"list-clients", "lsc", | ||||||
| 	"t:", 0, 0, | 	"t:", 0, 0, | ||||||
| 	CMD_TARGET_SESSION_USAGE, | 	CMD_TARGET_SESSION_USAGE, | ||||||
| 	0, | 	CMD_READONLY, | ||||||
| 	NULL, | 	NULL, | ||||||
| 	NULL, | 	NULL, | ||||||
| 	cmd_list_clients_exec | 	cmd_list_clients_exec | ||||||
| @@ -68,9 +68,10 @@ cmd_list_clients_exec(struct cmd *self, struct cmd_ctx *ctx) | |||||||
|  |  | ||||||
| 		if (s != NULL && s != c->session) | 		if (s != NULL && s != c->session) | ||||||
| 			continue; | 			continue; | ||||||
| 		ctx->print(ctx, "%s: %s [%ux%u %s]%s", c->tty.path, | 		ctx->print(ctx, "%s: %s [%ux%u %s]%s%s", c->tty.path, | ||||||
| 		    c->session->name, c->tty.sx, c->tty.sy, | 		    c->session->name, c->tty.sx, c->tty.sy, | ||||||
| 		    c->tty.termname, s_utf8); | 		    c->tty.termname, s_utf8, | ||||||
|  | 		    c->flags & CLIENT_READONLY ? " (ro)" : ""); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	return (0); | 	return (0); | ||||||
|   | |||||||
| @@ -32,9 +32,9 @@ int	cmd_switch_client_exec(struct cmd *, struct cmd_ctx *); | |||||||
|  |  | ||||||
| const struct cmd_entry cmd_switch_client_entry = { | const struct cmd_entry cmd_switch_client_entry = { | ||||||
| 	"switch-client", "switchc", | 	"switch-client", "switchc", | ||||||
| 	"lc:npt:", 0, 0, | 	"lc:npt:r", 0, 0, | ||||||
| 	"[-lnp] [-c target-client] [-t target-session]", | 	"[-lnpr] [-c target-client] [-t target-session]", | ||||||
| 	0, | 	CMD_READONLY, | ||||||
| 	cmd_switch_client_key_binding, | 	cmd_switch_client_key_binding, | ||||||
| 	NULL, | 	NULL, | ||||||
| 	cmd_switch_client_exec | 	cmd_switch_client_exec | ||||||
| @@ -67,6 +67,16 @@ cmd_switch_client_exec(struct cmd *self, struct cmd_ctx *ctx) | |||||||
| 	if ((c = cmd_find_client(ctx, args_get(args, 'c'))) == NULL) | 	if ((c = cmd_find_client(ctx, args_get(args, 'c'))) == NULL) | ||||||
| 		return (-1); | 		return (-1); | ||||||
|  |  | ||||||
|  | 	if (args_has(args, 'r')) { | ||||||
|  | 		if (c->flags & CLIENT_READONLY) { | ||||||
|  | 			c->flags &= ~CLIENT_READONLY; | ||||||
|  | 			ctx->info(ctx, "made client writable"); | ||||||
|  | 		} else { | ||||||
|  | 			c->flags |= CLIENT_READONLY; | ||||||
|  | 			ctx->info(ctx, "made client read-only"); | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	s = NULL; | 	s = NULL; | ||||||
| 	if (args_has(args, 'n')) { | 	if (args_has(args, 'n')) { | ||||||
| 		if ((s = session_next_session(c->session)) == NULL) { | 		if ((s = session_next_session(c->session)) == NULL) { | ||||||
|   | |||||||
							
								
								
									
										10
									
								
								tmux.1
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								tmux.1
									
									
									
									
									
								
							| @@ -558,7 +558,9 @@ is specified, any other clients attached to the session are detached. | |||||||
| .Fl r | .Fl r | ||||||
| signifies the client is read-only (only keys bound to the | signifies the client is read-only (only keys bound to the | ||||||
| .Ic detach-client | .Ic detach-client | ||||||
| command have any effect) | or | ||||||
|  | .Ic switch-client | ||||||
|  | commands have any effect) | ||||||
| .Pp | .Pp | ||||||
| If no server is started, | If no server is started, | ||||||
| .Ic attach-session | .Ic attach-session | ||||||
| @@ -714,7 +716,7 @@ Suspend a client by sending | |||||||
| .Dv SIGTSTP | .Dv SIGTSTP | ||||||
| (tty stop). | (tty stop). | ||||||
| .It Xo Ic switch-client | .It Xo Ic switch-client | ||||||
| .Op Fl lnp | .Op Fl lnpr | ||||||
| .Op Fl c Ar target-client | .Op Fl c Ar target-client | ||||||
| .Op Fl t Ar target-session | .Op Fl t Ar target-session | ||||||
| .Xc | .Xc | ||||||
| @@ -730,6 +732,10 @@ or | |||||||
| .Fl p | .Fl p | ||||||
| is used, the client is moved to the last, next or previous session | is used, the client is moved to the last, next or previous session | ||||||
| respectively. | respectively. | ||||||
|  | .Fl r | ||||||
|  | toggles whether a client is read-only (see the | ||||||
|  | .Ic attach-session | ||||||
|  | command). | ||||||
| .El | .El | ||||||
| .Sh WINDOWS AND PANES | .Sh WINDOWS AND PANES | ||||||
| A | A | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Nicholas Marriott
					Nicholas Marriott