From f59971276ac02d8b42ef222509673ff356800f56 Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Tue, 20 Mar 2012 11:01:00 +0000 Subject: Add a simple form of output rate limiting by counting the number of certain C0 sequences (linefeeds, backspaces, carriage returns) and if it exceeds a threshold (current default 50/millisecond), start to redraw the pane every 100 milliseconds instead of making each change as it comes. Two configuration options - c0-change-trigger and c0-change-interval. This makes tmux much more responsive under very fast output (for example yes(1) or accidentally cat'ing a large file) but may not be perfect on all terminals and connections - feedback very welcome, particularly where this change has a negative rather than positive effect (making it off by default is a possibility). After much experimentation based originally on a request Robin Lee Powell (which ended with a completely different solution), this idea from discussion with Ailin Nemui. --- tmux.1 | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'tmux.1') diff --git a/tmux.1 b/tmux.1 index 993a2af3..62bcd0f6 100644 --- a/tmux.1 +++ b/tmux.1 @@ -2463,6 +2463,24 @@ It may be switched off globally with: set-window-option -g automatic-rename off .Ed .Pp +.It Ic c0-change-interval Ar interval +.It Ic c0-change-trigger Ar trigger +These two options configure a simple form of rate limiting for a pane. +If +.Nm +sees more than +.Ar trigger +C0 sequences that modify the screen (for example, carriage returns, linefeeds +or backspaces) in one millisecond, it will stop updating the pane immediately and +instead redraw it entirely every +.Ar interval +milliseconds. +This helps to prevent fast output (such as +.Xr yes 1 +overwhelming the terminal). +The default is a trigger of 50 and an interval of 100. +A trigger of zero disables the rate limiting. +.Pp .It Ic clock-mode-colour Ar colour Set clock colour. .Pp -- cgit