mirror of https://github.com/bjeanes/dotfiles.git
97 lines
2.8 KiB
Plaintext
97 lines
2.8 KiB
Plaintext
|
# Unbind unused default keys
|
||
|
unbind '#' # list-buffers
|
||
|
unbind = # choose-buffer
|
||
|
unbind - # delete-buffer
|
||
|
unbind % # split-pane -v
|
||
|
unbind '"' # split-pane -h
|
||
|
unbind q # display-panes
|
||
|
|
||
|
setw -g mode-keys vi
|
||
|
set -g default-terminal "screen-256color"
|
||
|
|
||
|
bind R source-file ~/.tmux.conf
|
||
|
bind \ confirm-before kill-server
|
||
|
|
||
|
unbind z
|
||
|
bind z run ". ~/.config/misc/tmux/zoom.sh"
|
||
|
|
||
|
# Mouse
|
||
|
setw -g mode-mouse on
|
||
|
set -g mouse-resize-pane
|
||
|
set -g mouse-select-pane
|
||
|
set -g mouse-select-window
|
||
|
|
||
|
# Copy/Pasting
|
||
|
bind [ copy-mode
|
||
|
bind ] paste-buffer -s \015
|
||
|
|
||
|
bind b list-buffers # list all paste buffers (default key is '#')
|
||
|
bind p choose-buffer # choose buffer to paste interactively (default key was '=')
|
||
|
bind x delete-buffer # delete the most recently copied buffer of text (default key was '-')
|
||
|
|
||
|
# new window
|
||
|
bind C-c new-window
|
||
|
bind c new-window
|
||
|
|
||
|
# Window/Pane management
|
||
|
# Options
|
||
|
set -g base-index 1
|
||
|
set -g set-titles on
|
||
|
setw -g automatic-rename on
|
||
|
|
||
|
# Splitting
|
||
|
bind _ split-window -v
|
||
|
bind | split-window -h
|
||
|
|
||
|
# Resizing
|
||
|
bind -r < resize-pane -L 3
|
||
|
bind -r > resize-pane -R 3
|
||
|
bind -r + resize-pane -U 1
|
||
|
bind -r - resize-pane -D 1
|
||
|
|
||
|
# Swapping panes
|
||
|
bind -r J swap-pane -D
|
||
|
bind -r K swap-pane -U
|
||
|
|
||
|
# Jumping to panes
|
||
|
bind h select-pane -L
|
||
|
bind j select-pane -D
|
||
|
bind k select-pane -U
|
||
|
bind l select-pane -R
|
||
|
|
||
|
bind b last-window # Jump to last active window
|
||
|
bind w display-panes # display visible indicator of each pane
|
||
|
|
||
|
# Statusbar settings
|
||
|
set -g status-keys vi
|
||
|
set -g display-time 2000 # How long messages are displayed for
|
||
|
|
||
|
# default statusbar colors
|
||
|
set-option -g status-utf8 on
|
||
|
set-option -g status-fg colour15
|
||
|
set-option -g status-bg black
|
||
|
|
||
|
setw -g window-status-fg colour15
|
||
|
setw -g window-status-bg black
|
||
|
setw -g window-status-attr none
|
||
|
|
||
|
setw -g window-status-current-fg black
|
||
|
setw -g window-status-current-bg colour15
|
||
|
setw -g window-status-current-attr bold
|
||
|
|
||
|
setw -g window-status-current-format '(#[fg=red]#I#[default] #W#F)'
|
||
|
setw -g window-status-format '(#[fg=yellow]#I#[default] #W#F)'
|
||
|
|
||
|
set-option -g status-left ' ❐ #[fg=red]#S#[default] ▐'
|
||
|
set-option -g status-right '▐ ⌚ #[fg=green]#(date "+%H:%M")#[default] ▐ #[fg=colour210]#(whoami)@#H#[default]'
|
||
|
|
||
|
set-option -g status-right-length 1000
|
||
|
set-option -g status-left-length 60
|
||
|
|
||
|
# https://github.com/sjl/vitality.vim/issues/8#issuecomment-7664649
|
||
|
set-option -g terminal-overrides '*88col*:colors=88,*256col*:colors=256,xterm*:XT:Ms=\E]52;%p1%s;%p2%s\007:Cc=\E]12;%p1%s\007:Cr=\E]112\007:Cs=\E]50;CursorShape=%?%p1%{3}%<%t%{0}%e%p1%{2}%-%;%d\007'
|
||
|
set -sg escape-time 0 # needed to distinguish between ESC and Meta in emacs
|
||
|
|
||
|
bind C-c run "tmux save-buffer - | pbcopy"
|
||
|
bind C-v run "pbpaste | tmux load-buffer - && tmux paste-buffer"
|