青蛙小白
博客 / 2025/11

折腾tmux升级到3.6

2025/11/27 · — 字 · 阅读约 — 分钟 ·
目录

tmux 3.6 发布,我第一时间就升上去了。这次更新有主要有以下三个亮点。

三个亮点

滚动条

最显眼的变化——滚动条。

你可能会想,都 2025 年了还为个滚动条激动?用过 tmux 的都懂那种抓瞎的感觉——Docker 吐出几千行日志,编译输出刷屏,你 Ctrl-b [ 进入复制模式开始翻,PgUp/PgDn翻着翻着,完全不知道自己在哪儿。

tmux 3.6 加了 pane-scrollbars 选项。这个选项有三个值:off(关闭)、modal(只在复制模式/查看模式显示)、on(一直显示)。滚动条位置通过 pane-scrollbars-position 设置左边右边。

# 只在复制模式显示滚动条(推荐)
set -g pane-scrollbars modal
set -g pane-scrollbars-position right

# 自定义样式:前景色是滑块颜色,背景色是滚动条底色
set -g pane-scrollbars-style fg=colour248,bg=colour236

配置完 tmux source ~/.tmux.conf 重载一下,然后测试。我用下面的命令生成 5000 行带时间戳的数据:

seq 1 5000 | while read n; do echo "Line $n: $(date)"; done

输出刷完,按 Ctrl-b [ 进复制模式,右侧立刻出现滚动条。上下翻页,滑块跟着动翻到底,滑块在最下面;翻到顶,滑块在最上面。退出后,滚动条消失。

体验确实不一样。以前翻日志完全凭感觉,现在位置清清楚楚。

主题自动跟随系统深浅主题

这个我没实际测,一方面我终端一直是暗色主题,没切换的需求;另一方面目前用的 Alacritty 还不支持 Mode 2031 协议。不过看了下官方说明,觉得还是值得说说。

tmux 3.6 支持 Mode 2031 协议,能检测终端报告的主题设置——浅色还是深色。系统日落后自动切深色,tmux 跟着切;白天切回浅色,tmux 也跟着回。前提是你的终端得支持这个协议,iTerm2、WezTerm、Kitty 这些现代终端都行,Alacritty 目前还不行。

备用屏幕的图像保存和恢复

在以前如果使用的是支持图片显示的终端(SIXEL 或 Kitty graphics protocol),在 tmux 里显示个图表、截图什么的,一切到 vim 或 less,图就没了。退出来也回不来,得重新跑命令。

tmux 3.6 实现了备用屏幕的图像保存和恢复。例如在一个 pane 里 imgcat 看了张图,切到 vim 改代码,再切回来,图还在那儿。

跑数据分析的人应该特别有感触。Jupyter 生成个图表,在终端看着,想改改代码,切过去改,切回来图表还在,不用再重新渲染。

其他问题

Dracula 主题状态栏挤成一团

我用的 tmux Dracula 主题,升级后底部状态栏炸了——powerline 符号挤在一起,颜色和样式全乱了。

查了一圈,原来是 tmux 3.6 改了格式化指令的解析方式。以前可以在一个 #[] 块里用逗号分隔多个属性:

#[fg=color,bg=color,nobold,nounderscore,noitalics]

3.6 不支持这种写法了,得把每个属性拆成独立的块:

#[fg=color]#[bg=color]#[nobold]#[nounderscore]#[noitalics]

我这边是用了 dracula/tmux 插件,它的 scripts/dracula.sh 文件第 374 行左右还在用旧语法。参考 issue #366 的方案,手动把那行的格式化指令拆开,重载配置就好了。

TAGS # linux
评论