# change prefix to Ctrl+a unbind C-b set -g prefix C-a # 0 is too far from ` ;) set -g base-index 1 # set -g default-terminal "screen-256color" set -g default-terminal "rxvt-unicode-256color" # fixes italics not working in nvim set -g status-keys vi set -g history-limit 10000 setw -g mode-keys vi setw -g mouse on setw -g monitor-activity on bind-key v split-window -h bind-key s split-window -v bind-key J resize-pane -D 5 bind-key K resize-pane -U 5 bind-key H resize-pane -L 15 bind-key L resize-pane -R 15 bind-key M-j resize-pane -D bind-key M-k resize-pane -U bind-key M-h resize-pane -L bind-key M-l resize-pane -R # Vim style pane selection bind h select-pane -L bind j select-pane -D bind k select-pane -U bind l select-pane -R # Use Alt-vim keys without prefix key to switch panes bind -n M-h select-pane -L bind -n M-j select-pane -D bind -n M-k select-pane -U bind -n M-l select-pane -R # Use Alt-arrow keys without prefix key to switch panes bind -n M-Left select-pane -L bind -n M-Right select-pane -R bind -n M-Up select-pane -U bind -n M-Down select-pane -D # Shift arrow to switch windows bind -n S-Left previous-window bind -n S-Right next-window # No delay for escape key press set -sg escape-time 0 # Reload tmux config bind r source-file ~/.tmux.conf set-option -g status-position top # right part of status bar that highlights when prefix active set -g status-right ' #{?client_prefix,#[reverse]#[noreverse] ,}"#{=21:pane_title}" %H:%M %d-%b-%y' bind P paste-buffer # Enable mouse & Copy/Paste - Requirements: xclip set -g mouse on bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'select-pane -t=; copy-mode -e; send-keys -M'" bind -n WheelDownPane select-pane -t= \; send-keys -M bind -n C-WheelUpPane select-pane -t= \; copy-mode -e \; send-keys -M bind -T copy-mode-vi C-WheelUpPane send-keys -X halfpage-up bind -T copy-mode-vi C-WheelDownPane send-keys -X halfpage-down bind -T copy-mode-emacs C-WheelUpPane send-keys -X halfpage-up bind -T copy-mode-emacs C-WheelDownPane send-keys -X halfpage-down # # Use vim keybindings in copy mode setw -g mode-keys vi # Update default binding of `Enter` to also use copy-pipe unbind -T copy-mode-vi Enter bind-key -T copy-mode-vi v send-keys -X begin-selection bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "xclip -selection c" bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -in -selection clipboard" # ---------------------- # Status Bar # ----------------------- set-option -g status on # turn the status bar on set -g status-interval 5 # set update frequencey (default 15 seconds) set -g status-justify centre # center window list for clarity # set-option -g status-position top # position the status bar at top of screen # visual notification of activity in other windows setw -g monitor-activity on set -g visual-activity on # set color for status bar set-option -g status-bg colour235 #base02 set-option -g status-fg yellow #yellow # show host name and IP address on left side of status bar set -g status-left-length 85 set -g status-left "#{?client_prefix,#[reverse]#[noreverse] ,} #[fg=colour198]: #h : #[fg=brightblue]#(curl icanhazip.com) #(ifconfig en0 | grep 'inet ' | awk '{print \"en0 \" $2}') #(ifconfig en1 | grep 'inet ' | awk '{print \"en1 \" $2}') #(ifconfig en3 | grep 'inet ' | awk '{print \"en3 \" $2}') #(ifconfig tun0 | grep 'inet ' | awk '{print \"vpn \" $2}') " # show session name, window & pane number, date and time on right side of # status bar set -g status-right-length 60 set -g status-right "#[fg=blue]#S #I:#P #[fg=yellow]: %d %b %Y #[fg=green]: %l:%M %p : #(date -u | awk '{print $4}') :" set -g status-right "#[fg=blue]#(tmux-cpu --no-color)"