diff --git a/format.c b/format.c index 5844a6ab..633be101 100644 --- a/format.c +++ b/format.c @@ -1154,6 +1154,7 @@ format_defaults_client(struct format_tree *ft, struct client *c) format_add_tv(ft, "client_created", &c->creation_time); format_add_tv(ft, "client_activity", &c->activity_time); + format_add(ft, "client_written", "%zu", tty->written); name = server_client_get_key_table(c); if (strcmp(c->keytable->name, name) == 0) diff --git a/tmux.1 b/tmux.1 index 07a31d7d..d4330d18 100644 --- a/tmux.1 +++ b/tmux.1 @@ -3521,6 +3521,7 @@ The following variables are available, where appropriate: .It Li "client_tty" Ta "" Ta "Pseudo terminal of client" .It Li "client_utf8" Ta "" Ta "1 if client supports utf8" .It Li "client_width" Ta "" Ta "Width of client" +.It Li "client_written" Ta "" Ta "Bytes written to client" .It Li "command" Ta "" Ta "Name of command in use, if any" .It Li "command_list_name" Ta "" Ta "Command name if listing commands" .It Li "command_list_alias" Ta "" Ta "Command alias if listing commands" diff --git a/tmux.h b/tmux.h index 482f3c74..c472a763 100644 --- a/tmux.h +++ b/tmux.h @@ -1043,6 +1043,7 @@ struct tty { struct evbuffer *in; struct event event_out; struct evbuffer *out; + size_t written; struct termios tio; diff --git a/tty.c b/tty.c index 2776f145..14906cc3 100644 --- a/tty.c +++ b/tty.c @@ -427,6 +427,7 @@ tty_add(struct tty *tty, const char *buf, size_t len) evbuffer_add(tty->out, buf, len); log_debug("%s: %.*s", c->name, (int)len, (const char *)buf); + tty->written += len; if (tty_log_fd != -1) write(tty_log_fd, buf, len);