Created
August 22, 2018 09:57
-
-
Save slaykovsky/f4ab4629ee09d731d35007c7c64efed7 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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 screen-256color | |
# Keep your finger on ctrl, or don't | |
bind-key ^D detach-client | |
# Create splits and vertical splits | |
bind-key v split-window -h -p 50 -c "#{pane_current_path}" | |
bind-key ^V split-window -h -p 50 -c "#{pane_current_path}" | |
bind-key s split-window -p 50 -c "#{pane_current_path}" | |
bind-key ^S split-window -p 50 -c "#{pane_current_path}" | |
# 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 -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 | |
# Smart pane switching with awareness of vim splits. | |
# Source: https://github.com/christoomey/vim-tmux-navigator | |
is_vim='echo "#{pane_current_command}" | grep -iqE "(^|\/)g?(view|n?vim?x?)(diff)?$"' | |
bind -n C-h if-shell "$is_vim" "send-keys C-h" "select-pane -L" | |
bind -n C-j if-shell "$is_vim" "send-keys C-j" "select-pane -D" | |
bind -n C-k if-shell "$is_vim" "send-keys C-k" "select-pane -U" | |
bind -n C-l if-shell "$is_vim" "send-keys C-l" "select-pane -R" | |
bind -n C-\ if-shell "$is_vim" "send-keys C-\\" "select-pane -l" | |
# Use vi keybindings for tmux commandline input. | |
# Note that to get command mode you need to hit ESC twice... | |
set -g status-keys emacs | |
# Use vi keybindings in copy and choice modes | |
setw -g mode-keys emacs | |
# 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-window-option -g pane-base-index 1 | |
set-window-option -g mouse on | |
# 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 | |
# New windows/pane in $PWD | |
bind c new-window -c "#{pane_current_path}" | |
# Fix key bindings broken in tmux 2.1 | |
set -g assume-paste-time 0 | |
# force a reload of the config file | |
unbind r | |
bind r source-file ~/.tmux.conf \; display "Reloaded!" | |
set -g set-titles on | |
set -g status on | |
set -g status-interval 5 | |
set -g status-justify left | |
set -g status-position bottom | |
set -g status-style fg=green,bg=black | |
set -g status-left "#[fg=brightblack,bold]λ% #[fg=brightblack,nobold](#{session_name}) " | |
set -g status-right "#[fg=brightblack]%H:%M:%S %d/%m/%Y" | |
set -g window-status-current-style fg=yellow | |
set -g window-status-current-format "[#[fg=red,bold]#I: #W#[default]]" | |
set -g window-status-format "#[fg=blue][#I: #W]" | |
set -g pane-active-border-style fg=red | |
set -g pane-border-style fg=yellow | |
set -g pane-border-status top | |
set -g pane-border-format "[#{pane_current_command}]" | |
set -g mode-style bg=black | |
set -g visual-activity off | |
set -g monitor-activity off | |
set -g monitor-bell off | |
set -g xterm-keys on |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment