在Tmux中更改活动或非活动窗格的背景颜色

时间:2014-08-27 16:48:10

标签: tmux

是否有任何选项可以控制Tmux中活动或非活动窗格的背景颜色?

4 个答案:

答案 0 :(得分:74)

似乎tmux-2.1(2015年10月18日发布)现在允许指定单个窗格的颜色。来自changelog

* 'select-pane' now understands '-P' to set window/pane background colours.

e.g。 [从手册]将窗格1的前景(文本)更改为蓝色,将背景更改为红色使用:

select-pane -t:.1 -P 'fg=blue,bg=red'

模仿iTerm配色方案:

要回答原始问题,我在~/.tmux.conf中使用以下行来设置背景/前景色以模仿iTerm中的行为:

#set inactive/active window styles
set -g window-style 'fg=colour247,bg=colour236'
set -g window-active-style 'fg=colour250,bg=black'

# set the pane border colors 
set -g pane-border-fg colour235
set -g pane-border-bg colour238
set -g pane-active-border-fg colour236 
set -g pane-active-border-bg colour250 

#or if you a brighter active border, uncomment the following line:
#set -g pane-active-border-bg colour51

之前我没有看到window-stylewindow-active-style命令,但也许它们在以前的tmux版本中可用。

此外,这两行对于轻松分割窗格非常有用:

bind | split-window -h
bind - split-window -v

编辑:在评论中提及Jamie Schembri,现在将安装tmux 2.1版(至少):

brew install tmux

编辑(2017年10月):brew现在安装tmux 2.6,以上仍然有效。

编辑Vim窗格:如果您发现"非活动着色"不适用于Vim窗格,可能是由于您使用的colourscheme。试试pablo计划;即在Vim窗格中:

:colo pablo

要使其与您自己的自定义Vim colourscheme一起使用,请确保Normal突出显示的设置没有指定ctermbgguibg。例如,"非活动着色"不适用于murphy colourscheme,因为在murphy.vim中有一行:

hi Normal    ctermbg=Black   ctermfg=lightgreen   guibg=Black   guifg=lightgreen

ctermbgguibg设置为Black。但是,将此行更改为:

hi Normal    ctermfg=lightgreen  guifg=lightgreen

将使"无效着色"工作

答案 1 :(得分:4)

没有选项可以更改窗格的背景颜色,但可以选择设置窗格边框颜色(样式)

 pane-active-border-style style
                     Set the pane border style for the currently active 
pane.  For how to specify style, see the message-command-style option. 
 Attributes are ignored.


 pane-border-style style
                     Set the pane border style for paneas aside from the 
active pane.  For how to specify style, see the message-command-style option. 
 Attributes are
                     ignored.

答案 2 :(得分:0)

我设法使用tmux HOOKS更改了活动窗口的背景颜色。
https://man7.org/linux/man-pages/man1/tmux.1.html#HOOKS

# turn on focus-events to use pane-focus-in and pane-focus-out hooks
set -g focus-events on

# when a pane is focused, change the background color of the pane to red
set-hook -g pane-focus-in "select-pane -P bg=red"

# when a pane is unfocused, change the background color of all panes to black
set-hook -g pane-focus-out "setw synchronize-panes on \; select-pane -P bg=black \; setw synchronize-panes off"

我正在使用tmux 3.1b

答案 3 :(得分:-1)

# highlight focused pane (tmux >= 2.1), possible values are:
#   - true
#   - false (default)
tmux_conf_theme_highlight_focused_pane=true

# focused pane colours:
#tmux_conf_theme_focused_pane_fg='default'
tmux_conf_theme_focused_pane_bg='#191919'