diff options
author | nicm <nicm> | 2015-06-15 10:58:01 +0000 |
---|---|---|
committer | nicm <nicm> | 2015-06-15 10:58:01 +0000 |
commit | d96ab3401960ab4a7c9434dfda1ebdc5204873e0 (patch) | |
tree | ee534bc80a5dcb78c94945cda02823f934203c27 | |
parent | 29c29e771767b037f2929b889bb0de2b0b6ee138 (diff) | |
download | rtmux-d96ab3401960ab4a7c9434dfda1ebdc5204873e0.tar.gz rtmux-d96ab3401960ab4a7c9434dfda1ebdc5204873e0.tar.bz2 rtmux-d96ab3401960ab4a7c9434dfda1ebdc5204873e0.zip |
Add window_activity format, from Thomas Adam based on a diff originally
from propos6 at gmail dot com.
-rw-r--r-- | format.c | 5 | ||||
-rw-r--r-- | input.c | 4 | ||||
-rw-r--r-- | tmux.1 | 2 | ||||
-rw-r--r-- | tmux.h | 1 | ||||
-rw-r--r-- | window.c | 3 |
5 files changed, 15 insertions, 0 deletions
@@ -749,6 +749,7 @@ void format_defaults_window(struct format_tree *ft, struct window *w) { char *layout; + time_t t; ft->w = w; @@ -757,6 +758,10 @@ format_defaults_window(struct format_tree *ft, struct window *w) else layout = layout_dump(w->layout_root); + t = w->activity_time.tv_sec; + format_add(ft, "window_activity", "%lld", (long long) t); + format_add(ft, "window_activity_string", "%s", format_time_string(t)); + format_add(ft, "window_id", "@%u", w->id); format_add(ft, "window_name", "%s", w->name); format_add(ft, "window_width", "%u", w->sx); @@ -20,6 +20,7 @@ #include <stdlib.h> #include <string.h> +#include <time.h> #include "tmux.h" @@ -849,6 +850,9 @@ input_parse(struct window_pane *wp) wp->window->flags |= WINDOW_ACTIVITY; wp->window->flags &= ~WINDOW_SILENCE; + if (gettimeofday(&wp->window->activity_time, NULL) != 0) + fatal("gettimeofday failed"); + /* * Open the screen. Use NULL wp if there is a mode set as don't want to * update the tty. @@ -3414,6 +3414,8 @@ The following variables are available, where appropriate: .It Li "session_name" Ta "#S" Ta "Name of session" .It Li "session_width" Ta "" Ta "Width of session" .It Li "session_windows" Ta "" Ta "Number of windows in session" +.It Li "window_activity" Ta "" Ta "Integer time of window last activity" +.It Li "window_activity_string" Ta "" Ta "String time of window last activity" .It Li "window_active" Ta "" Ta "1 if window active" .It Li "window_activity_flag" Ta "" Ta "1 if window has activity alert" .It Li "window_bell_flag" Ta "" Ta "1 if window has bell" @@ -892,6 +892,7 @@ struct window { char *name; struct event name_timer; struct timeval silence_timer; + struct timeval activity_time; struct window_pane *active; struct window_pane *last; @@ -295,6 +295,9 @@ window_create1(u_int sx, u_int sy) w->sx = sx; w->sy = sy; + if (gettimeofday(&w->activity_time, NULL) != 0) + fatal("gettimeofday failed"); + options_init(&w->options, &global_w_options); if (options_get_number(&w->options, "automatic-rename")) queue_window_name(w); |