tmux状态栏配置

65
我如何自定义状态栏?我在这个YouTube视频(在3:05 - 下面的图像)中注意到,状态栏看起来与我在我的Mac OS X上安装tmux后看到的默认状态栏非常不同。
特别是,我喜欢状态栏中间显示当前程序,左侧仅显示当前会话的名称。相比之下,我的设置显示所有会话的名称,而不显示当前焦点窗格的当前应用程序。
如果有人能向我展示一个可以实现此功能的示例配置或向我展示可以找到自定义规则的位置,那将是非常好的!谢谢!

enter image description here

更新:如果有人感兴趣的话,我已经成功定制了一个类似于视频中所见的状态栏(稍作修改),你可以在我的Github找到我的配置文件,以便查看示例。


1
tmux -Lfoo -f/dev/null start; show -gw -- 列出自定义选项。 在此处查看:https://dev59.com/ObPma4cB1Zd3GeqPvsOJ#56814607 - casonadams
如果您想控制窗口命名,请查看此处:https://dev59.com/2HfZa4cB1Zd3GeqPUKN2#56653295 - casonadams
从tmux 3.2-1版本开始,配置似乎已更名为“status-style”。手册仍然准确。 - Thom
4个回答

81

man页面对所有各种选项都有非常详细的描述(状态栏高度可配置)。最好的方法是阅读man tmux,并特别关注以status-开头的选项。

例如,status-bg red将设置栏的背景颜色。

栏的三个组成部分——左侧和右侧部分以及中间的窗口列表——都可以根据您的喜好进行配置。除了具有自己的变量(如#S用于列出会话名称)外,status-leftstatus-right还可以调用自定义脚本显示系统信息,例如负载平均值或电池剩余时间。

基于当前正在运行的内容重命名窗口或面板的选项是automatic-rename。您可以全局设置或禁用它:

setw -g automatic-rename [on | off]

成为舒适创建自己的状态栏最直接的方法是从基本的状态栏开始,然后逐步添加更改,并在进行时重新加载配置文件。

你还可以在github或bitbucket上查看其他人的配置文件,以提供一些灵感。你可以在这里看到我的配置文件



1您可以通过在.tmux.conf文件中包含此行来自动化此过程:

bind R source-file ~/.tmux.conf \; display-message "Config reloaded..."

您可以使用 CtrlbShiftr 来测试新功能。如果您配置选项不正确,tmux 将打印有用的错误消息,包括有问题片段的行号。

2 注意:我根据我所在的位置调用不同的状态栏,无论是X环境还是控制台——我认为这非常有用。


1
你能更新一下你的配置文件链接吗?Intuxication网站好像挂了。 - Christian Oudard

29

我使用tmux-powerline来完全打造我的tmux状态栏。当我正在寻找一种方法在输入tmux命令时更改状态栏的背景色时,我偶然发现了这篇文章,并认为应该为完整性提及它。

更新:此项目处于维护模式,不太可能添加任何未来功能。tmux-powerline与所有其他powerline项目一样,被新的统一的powerline所取代。但是,该项目仍然可用,并可作为非Python用户的轻量级替代方案。


更新了新的Powerline项目链接。 - mahemoff
1
@Freek 我访问了那个 Github 页面,但没有找到有关 tmux 的具体说明。我只看到它仅适用于 VIM。是否有任何文章或设置可以专门介绍 Tmux? - millisami
@Millisami 我仍然使用旧版本的tmux-powerline(请参见修订后的答案)。这里是一个链接,指向新的统一powerline项目的文档,其中应该描述了使其适用于tmux的步骤。 - Freek Kalter

5

今天我一直在尝试自定义tmux,设法用一个ruby脚本让电池信息显示在状态栏上。

http://natedickson.com/blog/2013/04/30/battery-status-in-tmux/复制ruby脚本并保存为:

 battinfo.rb in ~/bin

要使其可执行,请确保运行以下命令:

chmod +x ~/bin/battinfo.rb

编辑您的~/.tmux.config文件并包含此行

set -g status-right "#[fg=colour155]#(pmset -g batt | ~/bin/battinfo.rb) | #[fg=colour45]%d %b %R"

4
好的。如果你使用的是Mac,那么你可以使用我编写的简单bash脚本来获取电池状态:https://github.com/JohnMurray/Scripts/blob/master/mac/battery。而我在自己的tmux配置文件中也使用了类似的设置(链接在原问题中)。实际的代码行是:`set -g status-right '#[fg=green][#[fg=blue]%Y-%m-%d #[fg=white]%H:%M#[default] #($HOME/bin/battery)#[fg=green]]'`。 - user131441
太棒了,@John,我会去看看的 ;) - Kingsley Ijomah

1

按下C-b, :show,将显示所有当前设置。输入/greennnn将查找已设置为默认值绿色的属性。按下C-b, :set window-status-bg cyan,底部栏应更改颜色。

列出tmux可用颜色

在我的看法中,通过live session中实际设置的标题和颜色,比搜索man页面更容易了解。不过当你有时间时,它是一个非常写得好的man页面。

如果您不喜欢其中一个更改,并且无法记住其原始设置方式,则可以打开新的tmux会话。要永久更改设置,请使用类似于set window-status-bg -g cyan的行编辑~/.tmux.conf。这是我的:https://gist.github.com/9083598


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接