From f8e8880d3fae1479c35aa6c0daacb9d31cc473f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20P=C4=99dzim=C4=85=C5=BC?= Date: Wed, 7 Oct 2026 13:50:38 +0200 Subject: [PATCH 1/3] fix: drop forking user/host status jobs from tmux status-right oh-my-tmux expands #{username}/#{root}/#{hostname} into #() shell jobs that fork the tmux server ~3x/s. With a 1.3 GB server each fork copies its page tables; measured 60% server CPU -> 7% using native #{user}@#{host_short}. --- tmux/.tmux.conf.local | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tmux/.tmux.conf.local b/tmux/.tmux.conf.local index 1f5db42..42383e9 100644 --- a/tmux/.tmux.conf.local +++ b/tmux/.tmux.conf.local @@ -229,7 +229,7 @@ tmux_conf_theme_right_separator_sub="|" # - #{username} # - #{username_ssh} tmux_conf_theme_status_left=" #S " -tmux_conf_theme_status_right=" #{prefix}#{synchronized} %R | #{loadavg} | #{username}#{root}@#{hostname} " +tmux_conf_theme_status_right=" #{prefix}#{synchronized} %R | #{loadavg} | #{user}@#{host_short} " # status left style tmux_conf_theme_status_left_fg="$tmux_conf_theme_colour_6,$tmux_conf_theme_colour_7,$tmux_conf_theme_colour_8" From 539cc8d3f6da3123e2966dd04bfdb01e754df789 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20P=C4=99dzim=C4=85=C5=BC?= Date: Wed, 7 Oct 2026 13:56:08 +0200 Subject: [PATCH 2/3] fix: cap tmux history-limit at 20000 lines At 10M lines the server reached 1.3 GB, and every fork copies its page tables. Release 1.14.1. --- CHANGELOG.md | 6 ++++++ tmux/.tmux.conf.local | 6 ++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b4d4607..9162843 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.14.1] - 2026-10-07 + +### Fixed +- tmux status bar no longer forks shell jobs for user and host (`#{user}@#{host_short}`); on a large server each fork cost ~40 ms, and the server sat at 60% CPU, lagging every pane. +- tmux `history-limit` lowered from 10M to 20000 lines: at 10M the server grew to 1.3 GB. Takes effect for new panes; run `tmux clear-history` on old ones. + ## [1.14.0] - 2026-09-21 ### Added diff --git a/tmux/.tmux.conf.local b/tmux/.tmux.conf.local index 42383e9..674d29c 100644 --- a/tmux/.tmux.conf.local +++ b/tmux/.tmux.conf.local @@ -328,8 +328,10 @@ tmux_conf_copy_to_os_clipboard=true # -- user customizations ------------------------------------------------------- # this is the place to override or undo settings -# increase history size (overrides base 5000000 with a larger value) -set -g history-limit 10000000 +# cap scrollback: the server holds every pane's history in one process, and at +# 10M lines it reached 1.3 GB (352k lines over 19 panes, 8 days up), and every +# fork for a status job or run-shell hook copies page tables of that size. +set -g history-limit 20000 # start with mouse mode enabled set -g mouse on From a24c996baa043ac44f6aa82a5d53a85629f1112e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20P=C4=99dzim=C4=85=C5=BC?= Date: Wed, 7 Oct 2026 13:56:08 +0200 Subject: [PATCH 3/3] chore: release 1.14.1