mirror of
https://github.com/tmux/tmux.git
synced 2024-12-13 01:48:47 +00:00
set status, status-fg, status-bg.
This commit is contained in:
parent
ffa8dcc4da
commit
7ec5be30df
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 *);
|
||||
|
Loading…
Reference in New Issue
Block a user