diff options
Diffstat (limited to 'usr.bin')
-rw-r--r-- | usr.bin/tmux/cmd-set-option.c | 7 | ||||
-rw-r--r-- | usr.bin/tmux/status.c | 19 | ||||
-rw-r--r-- | usr.bin/tmux/tmux.1 | 7 | ||||
-rw-r--r-- | usr.bin/tmux/tmux.c | 3 |
4 files changed, 31 insertions, 5 deletions
diff --git a/usr.bin/tmux/cmd-set-option.c b/usr.bin/tmux/cmd-set-option.c index 9832da5181f..e4c094e82ee 100644 --- a/usr.bin/tmux/cmd-set-option.c +++ b/usr.bin/tmux/cmd-set-option.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-set-option.c,v 1.7 2009/07/18 14:59:25 nicm Exp $ */ +/* $OpenBSD: cmd-set-option.c,v 1.8 2009/07/20 14:32:09 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -45,6 +45,9 @@ const struct cmd_entry cmd_set_option_entry = { const char *set_option_status_keys_list[] = { "emacs", "vi", NULL }; +const char *set_option_status_justify_list[] = { + "left", "centre", "right", NULL +}; const char *set_option_bell_action_list[] = { "none", "any", "current", NULL }; @@ -69,6 +72,8 @@ const struct set_option_entry set_option_table[] = { { "status-bg", SET_OPTION_COLOUR, 0, 0, NULL }, { "status-fg", SET_OPTION_COLOUR, 0, 0, NULL }, { "status-interval", SET_OPTION_NUMBER, 0, INT_MAX, NULL }, + { "status-justify", + SET_OPTION_CHOICE, 0, 0, set_option_status_justify_list }, { "status-keys", SET_OPTION_CHOICE, 0, 0, set_option_status_keys_list }, { "status-left", SET_OPTION_STRING, 0, 0, NULL }, { "status-left-length", SET_OPTION_NUMBER, 0, SHRT_MAX, NULL }, diff --git a/usr.bin/tmux/status.c b/usr.bin/tmux/status.c index 57b9d0578a6..1cf520b5d3e 100644 --- a/usr.bin/tmux/status.c +++ b/usr.bin/tmux/status.c @@ -1,4 +1,4 @@ -/* $OpenBSD: status.c,v 1.14 2009/07/20 09:15:18 nicm Exp $ */ +/* $OpenBSD: status.c,v 1.15 2009/07/20 14:32:09 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -46,7 +46,7 @@ status_redraw(struct client *c) struct screen old_status; char *left, *right, *text, *ptr; size_t llen, llen2, rlen, rlen2, offset; - size_t xx, yy, size, start, width; + size_t ox, xx, yy, size, start, width; struct grid_cell stdgc, gc; int larrow, rarrow, utf8flag; @@ -175,6 +175,21 @@ draw: screen_write_cursormove(&ctx, 0, yy); } + ox = 0; + if (width < xx) { + switch (options_get_number(&s->options, "status-justify")) { + case 1: /* centered */ + ox = 1 + (xx - width) / 2; + break; + case 2: /* right */ + ox = 1 + (xx - width); + break; + } + xx -= ox; + while (ox-- > 0) + screen_write_putc(&ctx, &stdgc, ' '); + } + /* Draw each character in succession. */ offset = 0; RB_FOREACH(wl, winlinks, &s->windows) { diff --git a/usr.bin/tmux/tmux.1 b/usr.bin/tmux/tmux.1 index 6d4d8d779ab..e877b40af29 100644 --- a/usr.bin/tmux/tmux.1 +++ b/usr.bin/tmux/tmux.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: tmux.1,v 1.40 2009/07/20 09:15:18 nicm Exp $ +.\" $OpenBSD: tmux.1,v 1.41 2009/07/20 14:32:09 nicm Exp $ .\" .\" Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> .\" @@ -1262,6 +1262,11 @@ Update the status bar every seconds. By default, updates will occur every 15 seconds. A setting of zero disables redrawing at interval. +.It Xo Ic status-justify +.Op Ic left | Ic centre | Ic right +.Xc +Set the position of the window list component of the status line: left, centre +or right justified. .It Xo Ic status-keys .Op Ic vi | Ic emacs .Xc diff --git a/usr.bin/tmux/tmux.c b/usr.bin/tmux/tmux.c index 690cc3062cc..d0260a1ffe3 100644 --- a/usr.bin/tmux/tmux.c +++ b/usr.bin/tmux/tmux.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tmux.c,v 1.17 2009/07/20 09:15:18 nicm Exp $ */ +/* $OpenBSD: tmux.c,v 1.18 2009/07/20 14:32:09 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -303,6 +303,7 @@ main(int argc, char **argv) options_set_number(&global_s_options, "status-fg", 0); options_set_number(&global_s_options, "status-interval", 15); options_set_number(&global_s_options, "status-keys", MODEKEY_EMACS); + options_set_number(&global_s_options, "status-justify", 0); options_set_number(&global_s_options, "status-left-length", 10); options_set_number(&global_s_options, "status-right-length", 40); options_set_string(&global_s_options, "status-left", "[#S]"); |