154 lines
3.0 KiB
Bash
154 lines
3.0 KiB
Bash
# ~/.tmux.conf
|
|
# By Tyler Mulligan. Public domain.
|
|
#
|
|
# This configuration file binds many of the common GNU screen key bindings to
|
|
# appropriate tmux key bindings. Note that for some key bindings there is no
|
|
# tmux analogue and also that this set omits binding some commands available in
|
|
# tmux but not in screen.
|
|
#
|
|
# Note this is a good starting point but you should check out the man page for more
|
|
# configuration options if you really want to get more out of tmux
|
|
|
|
### Unbind existing tmux key bindings (except 0-9).
|
|
|
|
# Set the prefix to ^A.
|
|
unbind C-b
|
|
set -g prefix ^A
|
|
bind a send-prefix
|
|
|
|
# Bind appropriate commands similar to screen.
|
|
# lockscreen ^X x
|
|
unbind ^X
|
|
bind ^X lock-server
|
|
unbind x
|
|
bind x lock-server
|
|
|
|
# screen ^C c
|
|
unbind ^C
|
|
bind ^C new-window
|
|
unbind c
|
|
bind c new-window
|
|
|
|
# detach ^D d
|
|
unbind ^D
|
|
bind ^D detach
|
|
|
|
# displays *
|
|
unbind *
|
|
bind * list-clients
|
|
|
|
# next ^@ ^N sp n
|
|
unbind ^@
|
|
bind ^@ next-window
|
|
unbind ^N
|
|
bind ^N next-window
|
|
unbind " "
|
|
bind " " next-window
|
|
unbind n
|
|
bind n next-window
|
|
|
|
# title A
|
|
unbind A
|
|
bind A command-prompt "rename-window %%"
|
|
|
|
# other ^A
|
|
unbind ^A
|
|
bind ^A last-window
|
|
|
|
# prev ^H ^P p ^?
|
|
unbind ^H
|
|
bind ^H previous-window
|
|
unbind ^P
|
|
bind ^P previous-window
|
|
unbind p
|
|
bind p previous-window
|
|
unbind BSpace
|
|
bind BSpace previous-window
|
|
|
|
# windows ^W w
|
|
unbind ^W
|
|
bind ^W list-windows
|
|
unbind w
|
|
bind w list-windows
|
|
|
|
# quit \
|
|
unbind \
|
|
bind \ confirm-before "kill-server"
|
|
|
|
# kill K k
|
|
unbind K
|
|
bind K confirm-before "kill-window"
|
|
unbind k
|
|
bind k confirm-before "kill-window"
|
|
|
|
# redisplay ^L l
|
|
unbind ^L
|
|
bind ^L refresh-client
|
|
unbind l
|
|
bind l refresh-client
|
|
|
|
# More straight forward key bindings for splitting
|
|
unbind %
|
|
bind | split-window -h
|
|
bind v split-window -h
|
|
unbind '"'
|
|
bind - split-window -v
|
|
bind h split-window -v
|
|
|
|
# History
|
|
set -g history-limit 1000
|
|
|
|
# Pane
|
|
#unbind o
|
|
#bind C-s down-pane
|
|
|
|
# Terminal emulator window title
|
|
set -g set-titles on
|
|
set -g set-titles-string '#S:#I.#P #W'
|
|
|
|
# Status Bar
|
|
set -g status-bg black
|
|
set -g status-fg white
|
|
set -g status-interval 1
|
|
set -g status-left '#[fg=green]#H#[default]'
|
|
set -g status-right '#[fg=yellow]#(cut -d " " -f 1-4 /proc/loadavg)#[default] #[fg=cyan,bold]%Y-%m-%d %H:%M:%S#[default]'
|
|
|
|
# Notifying if other windows has activities
|
|
setw -g monitor-activity on
|
|
set -g visual-activity on
|
|
|
|
# Highlighting the active window in status bar
|
|
setw -g window-status-current-bg red
|
|
|
|
# Clock
|
|
setw -g clock-mode-colour green
|
|
setw -g clock-mode-style 24
|
|
|
|
# :kB: focus up
|
|
#unbind Tab
|
|
#bind Tab down-pane
|
|
#unbind BTab
|
|
#bind BTab up-pane
|
|
|
|
# " windowlist -b
|
|
unbind '"'
|
|
bind '"' choose-window
|
|
|
|
set-option -g history-limit 100000
|
|
|
|
#set-option -g allow-rename off
|
|
|
|
# List of plugins
|
|
set -g @plugin 'tmux-plugins/tpm'
|
|
set -g @plugin 'tmux-plugins/tmux-sensible'
|
|
set -g @plugin 'tmux-plugins/tmux-resurrect'
|
|
|
|
# Other examples:
|
|
# set -g @plugin 'github_username/plugin_name'
|
|
# set -g @plugin 'git@github.com/user/plugin'
|
|
# set -g @plugin 'git@bitbucket.com/user/plugin'
|
|
|
|
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
|
|
run '~/.tmux/plugins/tpm/tpm'
|
|
|