Mouse Support Change in tmux 2.1

IT牛人.117 2016-02-01 08:56

tmuxwas updated to 2.1 on both Arch Linux (of course, it’s rolling!) back in October last year.

NOTE:homebrewfor OS X was pretty quick, too.

I started to notice warnings when spawning the firsttmuxprocess.

/home/terry/.tmux.conf:65: unknown option: mode-mouse
/home/terry/.tmux.conf:66: unknown option: mouse-select-pane
/home/terry/.tmux.conf:67: unknown option: mouse-resize-pane
/home/terry/.tmux.conf:68: unknown option: mouse-select-window

It didn’t affect anything so I didn’t give a shit (hit enter and ignored it) until I’ve had enough of the warning.

It’s time to pay down the accumulated technical debt ;-(

Looking at thechanges, I immediately realized it was the incompatible change below:

Mouse-mode has been rewritten. There is now no longer options for{mouse-resize-pane,mouse-select-pane,mouse-select-window,mode-mouse}. Instead a single optionmousewhich turns on mouse support entirely.


Remove all incompatiblemouse-*options and enable mouse support withset -g mouse on.

Reload the configuration file:source-file ~/.tmux.conf.

NOTE: everyone should havebind-key Rto do this.


An example~terry/.tmux.conf

# /home/terrywang/.tmux.conf
# Based on tmux book written by Brian P. Hogan
# c-a o to switch to another panel
# c-d   to close shell
# c-a ! to close panel
# c-a w to list windows
# c-a " split pane horizontally
# c-a % split pane vertically

# Setting the prefix from C-b to C-a
set -g prefix C-a

# Free the original Ctrl-b prefix keybinding
unbind C-b

# Setting the delay between prefix and command
set -s escape-time 1

# Ensure that we can send Ctrl-a to other apps
bind C-a send-prefix

# history buffer - max number of lines for each window
set -g history-limit 10000

# Set Terminal Emulator Titles - OFF by default
# set -g set-titles on

# Set the base index for windows to 1 instead of 0
set -g base-index 1

# Set the base index for panes to 1 instead of 0
setw -g pane-base-index 1

# Switch to last window
unbind l
bind-key C-a last-window

# unbind o
# bind-key C-a select-pane

# Reload the file with Prefix r
bind r source-file ~/.tmux.conf \; display "Reloaded!"

# Splitting panes replace % and "
# bind | split-window -h
# bind - split-window -v

# moving between panes
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R

# Quick pane selection
bind -r C-h select-window -t :-
bind -r C-l select-window -t :+

# Pane resizing
bind -r H resize-pane -L 5
bind -r J resize-pane -D 5
bind -r K resize-pane -U 5
bind -r L resize-pane -R 5

# Mouse support
# setw -g mode-mouse on
# set -g mouse-select-pane off
# set -g mouse-resize-pane off
# set -g mouse-select-window off
# incompatible since tmux 2.1
set -g mouse on

# Set the default terminal mode to 256color mode
set -g default-terminal "screen-256color"

# Enable activity alerts
setw -g monitor-activity on
set -g visual-activity on

# tmux coloring
# Set the status line's colors
set -g status-fg white
set -g status-bg black

# Set the color of the window list
setw -g window-status-fg cyan
setw -g window-status-bg default
setw -g window-status-attr dim

# Set colors for the active window
setw -g window-status-current-fg white
setw -g window-status-current-bg red
setw -g window-status-current-attr bright

# Pane colors
set -g pane-border-fg green
set -g pane-border-bg black
set -g pane-active-border-fg white
set -g pane-active-border-bg yellow

# Command / message line
set -g message-fg white
set -g message-bg black
set -g message-attr bright

# Status line left side
set -g status-left-length 40
set -g status-left "#[fg=green]Session: #S #[fg=yellow]W#I #[fg=cyan]P#P"

# No longer necessary since tmux 2.1
# set -g status-utf8 on

# Status line right side
# 15% | 25 Oct 14:50
set -g status-right "#[fg=cyan]%d %b %R #[fg=magenta]#H"

# Update the status bar every sixty seconds
set -g status-interval 60

# Center the window list
set -g status-justify centre

# Enable vi keys
setw -g mode-keys vi


[返回] [原文链接]