mirror of
https://github.com/tmux/tmux.git
synced 2025-01-07 16:28:48 +00:00
Option to display the active pane in a different colour with the display-panes
command. From Paul Hoffman, thanks.
This commit is contained in:
parent
d6bd9c0e7f
commit
604b02cfaa
@ -88,6 +88,7 @@ const struct set_option_entry set_session_option_table[] = {
|
|||||||
{ "default-shell", SET_OPTION_STRING, 0, 0, NULL },
|
{ "default-shell", SET_OPTION_STRING, 0, 0, NULL },
|
||||||
{ "default-terminal", SET_OPTION_STRING, 0, 0, NULL },
|
{ "default-terminal", SET_OPTION_STRING, 0, 0, NULL },
|
||||||
{ "display-panes-colour", SET_OPTION_COLOUR, 0, 0, NULL },
|
{ "display-panes-colour", SET_OPTION_COLOUR, 0, 0, NULL },
|
||||||
|
{ "display-panes-active-colour", SET_OPTION_COLOUR, 0, 0, NULL },
|
||||||
{ "display-panes-time", SET_OPTION_NUMBER, 1, INT_MAX, NULL },
|
{ "display-panes-time", SET_OPTION_NUMBER, 1, INT_MAX, NULL },
|
||||||
{ "display-time", SET_OPTION_NUMBER, 1, INT_MAX, NULL },
|
{ "display-time", SET_OPTION_NUMBER, 1, INT_MAX, NULL },
|
||||||
{ "history-limit", SET_OPTION_NUMBER, 0, INT_MAX, NULL },
|
{ "history-limit", SET_OPTION_NUMBER, 0, INT_MAX, NULL },
|
||||||
|
@ -269,18 +269,21 @@ screen_redraw_draw_number(struct client *c, struct window_pane *wp)
|
|||||||
{
|
{
|
||||||
struct tty *tty = &c->tty;
|
struct tty *tty = &c->tty;
|
||||||
struct session *s = c->session;
|
struct session *s = c->session;
|
||||||
|
struct options *oo = &s->options;
|
||||||
|
struct window *w = wp->window;
|
||||||
struct grid_cell gc;
|
struct grid_cell gc;
|
||||||
u_int idx, px, py, i, j, xoff, yoff;
|
u_int idx, px, py, i, j, xoff, yoff;
|
||||||
int colour;
|
int colour, active_colour;
|
||||||
char buf[16], *ptr;
|
char buf[16], *ptr;
|
||||||
size_t len;
|
size_t len;
|
||||||
|
|
||||||
idx = window_pane_index(wp->window, wp);
|
idx = window_pane_index(w, wp);
|
||||||
len = xsnprintf(buf, sizeof buf, "%u", idx);
|
len = xsnprintf(buf, sizeof buf, "%u", idx);
|
||||||
|
|
||||||
if (wp->sx < len)
|
if (wp->sx < len)
|
||||||
return;
|
return;
|
||||||
colour = options_get_number(&s->options, "display-panes-colour");
|
colour = options_get_number(oo, "display-panes-colour");
|
||||||
|
active_colour = options_get_number(oo, "display-panes-active-colour");
|
||||||
|
|
||||||
px = wp->sx / 2; py = wp->sy / 2;
|
px = wp->sx / 2; py = wp->sy / 2;
|
||||||
xoff = wp->xoff; yoff = wp->yoff;
|
xoff = wp->xoff; yoff = wp->yoff;
|
||||||
@ -289,7 +292,10 @@ screen_redraw_draw_number(struct client *c, struct window_pane *wp)
|
|||||||
tty_cursor(tty, xoff + px - len / 2, yoff + py);
|
tty_cursor(tty, xoff + px - len / 2, yoff + py);
|
||||||
memcpy(&gc, &grid_default_cell, sizeof gc);
|
memcpy(&gc, &grid_default_cell, sizeof gc);
|
||||||
gc.data = '_'; /* not space */
|
gc.data = '_'; /* not space */
|
||||||
colour_set_fg(&gc, colour);
|
if (w->active == wp)
|
||||||
|
colour_set_fg(&gc, active_colour);
|
||||||
|
else
|
||||||
|
colour_set_fg(&gc, colour);
|
||||||
tty_attributes(tty, &gc);
|
tty_attributes(tty, &gc);
|
||||||
tty_puts(tty, buf);
|
tty_puts(tty, buf);
|
||||||
return;
|
return;
|
||||||
@ -300,7 +306,10 @@ screen_redraw_draw_number(struct client *c, struct window_pane *wp)
|
|||||||
|
|
||||||
memcpy(&gc, &grid_default_cell, sizeof gc);
|
memcpy(&gc, &grid_default_cell, sizeof gc);
|
||||||
gc.data = '_'; /* not space */
|
gc.data = '_'; /* not space */
|
||||||
colour_set_bg(&gc, colour);
|
if (w->active == wp)
|
||||||
|
colour_set_bg(&gc, active_colour);
|
||||||
|
else
|
||||||
|
colour_set_bg(&gc, colour);
|
||||||
tty_attributes(tty, &gc);
|
tty_attributes(tty, &gc);
|
||||||
for (ptr = buf; *ptr != '\0'; ptr++) {
|
for (ptr = buf; *ptr != '\0'; ptr++) {
|
||||||
if (*ptr < '0' || *ptr > '9')
|
if (*ptr < '0' || *ptr > '9')
|
||||||
|
15
tmux.1
15
tmux.1
@ -751,9 +751,10 @@ This command works only from inside
|
|||||||
Display a visible indicator of each pane shown by
|
Display a visible indicator of each pane shown by
|
||||||
.Ar target-client .
|
.Ar target-client .
|
||||||
See the
|
See the
|
||||||
.Ic display-panes-time
|
.Ic display-panes-time ,
|
||||||
|
.Ic display-panes-colour ,
|
||||||
and
|
and
|
||||||
.Ic display-panes-colour
|
.Ic display-panes-active-colour
|
||||||
session options.
|
session options.
|
||||||
While the indicator is on screen, a pane may be selected with the
|
While the indicator is on screen, a pane may be selected with the
|
||||||
.Ql 0
|
.Ql 0
|
||||||
@ -1398,10 +1399,14 @@ to work correctly, this
|
|||||||
be set to
|
be set to
|
||||||
.Ql screen
|
.Ql screen
|
||||||
or a derivative of it.
|
or a derivative of it.
|
||||||
.It Ic display-panes-colour Ar colour
|
.It Ic display-panes-active-colour Ar colour
|
||||||
Set the colour used for the
|
Set the colour used by the
|
||||||
.Ic display-panes
|
.Ic display-panes
|
||||||
command.
|
command to show the indicator for the active pane.
|
||||||
|
.It Ic display-panes-colour Ar colour
|
||||||
|
Set the colour used by the
|
||||||
|
.Ic display-panes
|
||||||
|
command to show the indicators for inactive panes.
|
||||||
.It Ic display-panes-time Ar time
|
.It Ic display-panes-time Ar time
|
||||||
Set the time in milliseconds for which the indicators shown by the
|
Set the time in milliseconds for which the indicators shown by the
|
||||||
.Ic display-panes
|
.Ic display-panes
|
||||||
|
1
tmux.c
1
tmux.c
@ -328,6 +328,7 @@ main(int argc, char **argv)
|
|||||||
options_set_string(so, "default-shell", "%s", getshell());
|
options_set_string(so, "default-shell", "%s", getshell());
|
||||||
options_set_string(so, "default-terminal", "screen");
|
options_set_string(so, "default-terminal", "screen");
|
||||||
options_set_number(so, "display-panes-colour", 4);
|
options_set_number(so, "display-panes-colour", 4);
|
||||||
|
options_set_number(so, "display-panes-active-colour", 1);
|
||||||
options_set_number(so, "display-panes-time", 1000);
|
options_set_number(so, "display-panes-time", 1000);
|
||||||
options_set_number(so, "display-time", 750);
|
options_set_number(so, "display-time", 750);
|
||||||
options_set_number(so, "history-limit", 2000);
|
options_set_number(so, "history-limit", 2000);
|
||||||
|
Loading…
Reference in New Issue
Block a user