mirror of
https://github.com/aquatix/dotfiles.git
synced 2025-12-07 00:05:10 +01:00
131 lines
5.0 KiB
Bash
131 lines
5.0 KiB
Bash
# Ring the bell if any background window rang a bell
|
|
set -g bell-action any
|
|
|
|
# Default termtype. If the rcfile sets $TERM, that overrides this value.
|
|
set -g default-terminal tmux-256color-italic
|
|
#set -g terminal-overrides ',tmux-256color-italic:Tc'
|
|
set -g terminal-overrides ',*256col*:Tc'
|
|
|
|
# Keep your finger on ctrl, or don't
|
|
bind-key ^D detach-client
|
|
|
|
# Create splits and vertical splits
|
|
bind-key v split-window -h
|
|
bind-key ^V split-window -h
|
|
bind-key s split-window
|
|
bind-key ^S split-window
|
|
|
|
# Pane resize in all four directions using vi bindings.
|
|
# Can use these raw but I map them to shift-ctrl-<h,j,k,l> in iTerm.
|
|
bind-key J resize-pane -D
|
|
bind-key K resize-pane -U
|
|
bind-key H resize-pane -L
|
|
bind-key L resize-pane -R
|
|
|
|
# Pane resize in the four directions using ctrl+shift+arrow-key
|
|
bind-key -n C-S-Up resize-pane -U 15
|
|
bind-key -n C-S-Down resize-pane -D 15
|
|
bind-key -n C-S-Left resize-pane -L 25
|
|
bind-key -n C-S-Right resize-pane -R 25
|
|
|
|
# Use vi keybindings for tmux commandline input.
|
|
# Note that to get command mode you need to hit ESC twice...
|
|
set -g status-keys vi
|
|
|
|
# Use vi keybindings in copy and choice modes
|
|
setw -g mode-keys vi
|
|
|
|
# easily toggle synchronization (mnemonic: e is for echo)
|
|
# sends input to all panes in a given window.
|
|
bind e setw synchronize-panes on
|
|
bind E setw synchronize-panes off
|
|
|
|
# set first window to index 1 (not 0) to map more to the keyboard layout...
|
|
#set-option -g base-index 1
|
|
set-option -g base-index 0
|
|
#set-window-option -g pane-base-index 1
|
|
set-window-option -g pane-base-index 0
|
|
|
|
# color scheme (styled as vim-powerline)
|
|
set -g status-left-length 52
|
|
set -g status-right-length 451
|
|
set -g status-fg white
|
|
set -g status-bg colour234
|
|
set -g pane-border-fg colour245
|
|
set -g pane-active-border-fg colour39
|
|
set -g message-fg colour16
|
|
set -g message-bg colour221
|
|
set -g message-attr bold
|
|
#set -g status-left '#[fg=colour235,bg=colour252,bold] ❐ #S #[fg=colour252,bg=colour238,nobold]⮀#[fg=colour245,bg=colour238,bold] #(whoami) #[fg=colour238,bg=colour234,nobold]⮀'
|
|
# Status line with username:
|
|
#set -g status-left '#[fg=colour235,bg=colour252,bold] ❐ #S #[fg=colour252,bg=colour238,nobold]#[fg=colour245,bg=colour238,bold] #(whoami) #[fg=colour238,bg=colour234,nobold]'
|
|
# Status line without username:
|
|
set -g status-left '#[fg=colour235,bg=colour252,bold] ❐ #S #[fg=colour252,bg=colour234,nobold]'
|
|
#set -g window-status-format "#[fg=colour235,bg=colour252,bold] #I #W "
|
|
#set -g window-status-format "#[fg=colour235,bg=colour252]#I #W#[fg=colour235,bg=colour252,bold]"
|
|
#set -g window-status-format "#[fg=colour234,bg=colour252,nobold]#I #W#[fg=colour252,bg=colour234,nobold]"
|
|
set -g window-status-format "#[fg=colour252,bg=colour234,nobold] #I #W "
|
|
#set -g window-status-current-format "#[fg=colour234,bg=colour39]⮀#[fg=black,bg=colour39,noreverse,bold] #I: #W #[fg=colour39,bg=colour234,nobold]⮀"
|
|
#set -g window-status-current-format "#[fg=colour234,bg=colour39]#[fg=black,bg=colour39,noreverse,bold] #I: #W #[fg=colour39,bg=colour234,nobold]"
|
|
#set -g window-status-current-format "#[fg=colour234,bg=colour39]#[fg=black,bg=colour39,noreverse,bold] #I: #W #[fg=colour39,bg=colour234,nobold]"
|
|
set -g window-status-current-format "#[fg=colour234,bg=colour39]#[fg=black,bg=colour39,noreverse,bold] #I #W #[fg=colour39,bg=colour234,nobold]"
|
|
set -g window-status-separator ""
|
|
set -g status-right '#(hostname) #[bg=#bbbbbb]#[fg=#000000] #(cut -d " " -f -3 /proc/loadavg) #[bg=#4e4e4e]#[fg=#ffffff]#(date +" %H:%M ")'
|
|
#
|
|
|
|
# Patch for OS X pbpaste and pbcopy under tmux.
|
|
#set-option -g default-command "which reattach-to-user-namespace > /dev/null && reattach-to-user-namespace -l $SHELL || $SHELL"
|
|
|
|
# Screen like binding
|
|
unbind C-b
|
|
set -g prefix C-a
|
|
bind a send-prefix
|
|
|
|
# No escape time for vi mode
|
|
set -sg escape-time 0
|
|
|
|
# Screen like binding for last window
|
|
unbind l
|
|
bind C-a last-window
|
|
|
|
# Bigger history
|
|
set -g history-limit 10000
|
|
|
|
# Automatically copy a handful of useful environment variables so you won't loose ssh-agent for example
|
|
set -g update-environment -r
|
|
|
|
# Fix for shift-keys with Fn; needs correct terminfo too
|
|
setw -g xterm-keys on
|
|
|
|
# Mouse support for resizing and selecting panes, default to off; not needed for 2.2 and up
|
|
if-shell "if [[ `tmux -V | cut -d' ' -f2` -lt 2.1 ]]; then true; else false; fi" \
|
|
'set -g mouse off; set -g mouse-utf8 off'
|
|
|
|
# toggle mouse mode to allow mouse copy/paste
|
|
# set mouse on with prefix m
|
|
bind m \
|
|
set -g mouse on \;\
|
|
#set -g mouse-utf8 on \;\
|
|
display 'Mouse: ON'
|
|
# set mouse off with prefix M
|
|
bind M \
|
|
set -g mouse off \;\
|
|
#set -g mouse-utf8 off \;\
|
|
display 'Mouse: OFF'
|
|
# zoom this pane to full screen
|
|
bind + \
|
|
new-window -d -n tmux-zoom 'clear && echo TMUX ZOOM && read' \;\
|
|
swap-pane -s tmux-zoom.0 \;\
|
|
select-window -t tmux-zoom
|
|
# restore this pane
|
|
bind - \
|
|
last-window \;\
|
|
swap-pane -s tmux-zoom.0 \;\
|
|
kill-window -t tmux-zoom
|
|
|
|
# Local config
|
|
if-shell "[ -f ~/.tmux.conf.user ]" 'source ~/.tmux.conf.user'
|
|
|
|
# reload config with leader-r
|
|
bind r source-file ~/.tmux.conf \; display-message "Config reloaded..."
|