summaryrefslogtreecommitdiff
path: root/usr.bin
diff options
context:
space:
mode:
Diffstat (limited to 'usr.bin')
-rw-r--r--usr.bin/tmux/cmd-set-option.c7
-rw-r--r--usr.bin/tmux/status.c19
-rw-r--r--usr.bin/tmux/tmux.17
-rw-r--r--usr.bin/tmux/tmux.c3
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]");