mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 09:26:05 +00:00 
			
		
		
		
	set status, status-fg, status-bg.
This commit is contained in:
		
							
								
								
									
										9
									
								
								NOTES
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								NOTES
									
									
									
									
									
								
							@@ -62,11 +62,6 @@ Commands:
 | 
			
		||||
    set-option prefix key
 | 
			
		||||
	Set command prefix (meta) key.
 | 
			
		||||
 | 
			
		||||
XXX set-option status,status-fg,status-bg
 | 
			
		||||
 | 
			
		||||
Sessions are destroyed when no windows remain attached to them.
 | 
			
		||||
 | 
			
		||||
There is currently no command to change status bar colour, it can be altered
 | 
			
		||||
by adjusting the last argument of line 38 in status.c:
 | 
			
		||||
 | 
			
		||||
	input_store_two(b, CODE_ATTRIBUTES, ATTR_REVERSE, 0x20);
 | 
			
		||||
 | 
			
		||||
0x47 is white-on-blue.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										3
									
								
								TODO
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								TODO
									
									
									
									
									
								
							@@ -42,6 +42,8 @@
 | 
			
		||||
- Nested sessions over the network, plug-in another tmux as a window/subsession
 | 
			
		||||
- it would be nice to have multichar commands so you could have C-b K K for
 | 
			
		||||
  kill-window to limit accidental presses
 | 
			
		||||
- status-fg/status-bg should be able to a) use strings for colours "red" etc
 | 
			
		||||
  b) set attributes too ("bold-red"?)
 | 
			
		||||
 | 
			
		||||
-- For 0.1 --------------------------------------------------------------------
 | 
			
		||||
- man page
 | 
			
		||||
@@ -55,7 +57,6 @@
 | 
			
		||||
	unlink window (error if window only linked to one session)
 | 
			
		||||
	kill window (C-b backsp)
 | 
			
		||||
	kill session (no not bind by default)
 | 
			
		||||
	set status on/off
 | 
			
		||||
	set shell
 | 
			
		||||
	send prefix
 | 
			
		||||
- handle tmux in tmux (check $TMUX and abort)
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
/* $Id: cmd-set-option.c,v 1.4 2007-10-04 22:18:48 nicm Exp $ */
 | 
			
		||||
/* $Id: cmd-set-option.c,v 1.5 2007-10-12 12:08:51 nicm Exp $ */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
 | 
			
		||||
@@ -91,7 +91,7 @@ cmd_set_option_exec(void *ptr, unused struct cmd_ctx *ctx)
 | 
			
		||||
	struct cmd_set_option_data	*data = ptr;
 | 
			
		||||
	struct client			*c = ctx->client;
 | 
			
		||||
	const char			*errstr;
 | 
			
		||||
	u_int				 number;
 | 
			
		||||
	u_int				 number, i;
 | 
			
		||||
	int				 bool, key;
 | 
			
		||||
 | 
			
		||||
	if (data == NULL)
 | 
			
		||||
@@ -102,6 +102,7 @@ cmd_set_option_exec(void *ptr, unused struct cmd_ctx *ctx)
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	number = -1;
 | 
			
		||||
	if (data->value != NULL) {
 | 
			
		||||
		number = strtonum(data->value, 0, UINT_MAX, &errstr);
 | 
			
		||||
		
 | 
			
		||||
@@ -126,6 +127,49 @@ cmd_set_option_exec(void *ptr, unused struct cmd_ctx *ctx)
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
		prefix_key = key;
 | 
			
		||||
	} else if (strcmp(data->option, "status") == 0) {
 | 
			
		||||
		if (bool == -1) {
 | 
			
		||||
			ctx->error(ctx, "bad value: %s", data->value);
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
		status_lines = bool;
 | 
			
		||||
		recalculate_sizes();
 | 
			
		||||
	} else if (strcmp(data->option, "status-fg") == 0) {
 | 
			
		||||
		if (data->value == NULL) {
 | 
			
		||||
			ctx->error(ctx, "invalid value");
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
		if (errstr != NULL || number > 7) {
 | 
			
		||||
			ctx->error(ctx, "bad colour: %s", data->value);
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
		status_colour &= 0x0f;
 | 
			
		||||
		status_colour |= number << 4;
 | 
			
		||||
		if (status_lines > 0) {
 | 
			
		||||
			for (i = 0; i < ARRAY_LENGTH(&clients); i++) {
 | 
			
		||||
				c = ARRAY_ITEM(&clients, i);
 | 
			
		||||
				if (c != NULL && c->session != NULL)
 | 
			
		||||
					server_redraw_client(c);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	} else if (strcmp(data->option, "status-bg") == 0) {
 | 
			
		||||
		if (data->value == NULL) {
 | 
			
		||||
			ctx->error(ctx, "invalid value");
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
		if (errstr != NULL || number > 7) {
 | 
			
		||||
			ctx->error(ctx, "bad colour: %s", data->value);
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
		status_colour &= 0xf0;
 | 
			
		||||
		status_colour |= number;
 | 
			
		||||
		if (status_lines > 0) {
 | 
			
		||||
			for (i = 0; i < ARRAY_LENGTH(&clients); i++) {
 | 
			
		||||
				c = ARRAY_ITEM(&clients, i);
 | 
			
		||||
				if (c != NULL && c->session != NULL)
 | 
			
		||||
					server_redraw_client(c);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	} else {
 | 
			
		||||
		ctx->error(ctx, "unknown option: %s", data->option);
 | 
			
		||||
		return;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										14
									
								
								status.c
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								status.c
									
									
									
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
/* $Id: status.c,v 1.4 2007-10-12 11:24:15 nicm Exp $ */
 | 
			
		||||
/* $Id: status.c,v 1.5 2007-10-12 12:08:51 nicm Exp $ */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
 | 
			
		||||
@@ -35,20 +35,24 @@ status_write(struct client *c)
 | 
			
		||||
 | 
			
		||||
	input_store_zero(b, CODE_CURSOROFF);
 | 
			
		||||
	input_store_two(b, CODE_CURSORMOVE, c->sy - status_lines + 1, 1);
 | 
			
		||||
	input_store_two(b, CODE_ATTRIBUTES, ATTR_REVERSE, 0x20);
 | 
			
		||||
	input_store_two(b, CODE_ATTRIBUTES, 0, status_colour);
 | 
			
		||||
 | 
			
		||||
	size = c->sx;
 | 
			
		||||
	for (i = 0; i < ARRAY_LENGTH(&c->session->windows); i++) {
 | 
			
		||||
		w = ARRAY_ITEM(&c->session->windows, i);
 | 
			
		||||
		if (w == NULL)
 | 
			
		||||
			continue;
 | 
			
		||||
		if (session_hasbell(c->session, w))
 | 
			
		||||
			input_store_two(b, CODE_ATTRIBUTES, ATTR_REVERSE, 0x30);
 | 
			
		||||
 | 
			
		||||
		if (session_hasbell(c->session, w)) {
 | 
			
		||||
			input_store_two(
 | 
			
		||||
			    b, CODE_ATTRIBUTES, ATTR_REVERSE, status_colour);
 | 
			
		||||
		}
 | 
			
		||||
		status_print(b, &size,
 | 
			
		||||
		    "%u:%s%s", i, w->name, w == c->session->window ? "*" : "");
 | 
			
		||||
		if (session_hasbell(c->session, w))
 | 
			
		||||
			input_store_two(b, CODE_ATTRIBUTES, ATTR_REVERSE, 0x20);
 | 
			
		||||
			input_store_two(b, CODE_ATTRIBUTES, 0, status_colour);
 | 
			
		||||
		status_print(b, &size, " ");
 | 
			
		||||
 | 
			
		||||
		if (size == 0)
 | 
			
		||||
			break;
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								tmux.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								tmux.c
									
									
									
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
/* $Id: tmux.c,v 1.29 2007-10-04 11:52:03 nicm Exp $ */
 | 
			
		||||
/* $Id: tmux.c,v 1.30 2007-10-12 12:08:51 nicm Exp $ */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
 | 
			
		||||
@@ -40,6 +40,7 @@ volatile sig_atomic_t sigterm;
 | 
			
		||||
int		 debug_level;
 | 
			
		||||
int		 prefix_key = META;
 | 
			
		||||
u_int		 status_lines;
 | 
			
		||||
u_char		 status_colour;
 | 
			
		||||
char		*default_command;
 | 
			
		||||
 | 
			
		||||
void		 sighandler(int);
 | 
			
		||||
@@ -195,6 +196,7 @@ main(int argc, char **argv)
 | 
			
		||||
	log_open(stderr, LOG_USER, debug_level);
 | 
			
		||||
 | 
			
		||||
	status_lines = 1;
 | 
			
		||||
	status_colour = 0x02;
 | 
			
		||||
 | 
			
		||||
	shell = getenv("SHELL");
 | 
			
		||||
	if (shell == NULL || *shell == '\0')
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										3
									
								
								tmux.h
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								tmux.h
									
									
									
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
/* $Id: tmux.h,v 1.54 2007-10-12 11:24:15 nicm Exp $ */
 | 
			
		||||
/* $Id: tmux.h,v 1.55 2007-10-12 12:08:51 nicm Exp $ */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
 | 
			
		||||
@@ -497,6 +497,7 @@ extern volatile sig_atomic_t sigterm;
 | 
			
		||||
extern int	prefix_key;
 | 
			
		||||
extern int	debug_level;
 | 
			
		||||
extern u_int	status_lines;
 | 
			
		||||
extern u_char	status_colour;
 | 
			
		||||
extern char    *default_command;
 | 
			
		||||
void		 usage(char **, const char *, ...);
 | 
			
		||||
void		 logfile(const char *);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user