Last active
December 11, 2016 00:52
-
-
Save lrusev/95038037317eacb4792dab3d36066edf to your computer and use it in GitHub Desktop.
This file contains hidden or 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
| # use UTF8 | |
| set -g utf8 | |
| set-window-option -g utf8 on | |
| set -g prefix C-a | |
| unbind C-b | |
| bind C-a send-prefix | |
| # 0 is too far from ` ;) | |
| set -g base-index 1 | |
| # Automatically set window title | |
| set-window-option -g automatic-rename on | |
| set-option -g set-titles on | |
| #set -g default-terminal screen-256color | |
| set -g status-keys vi | |
| set -g history-limit 10000 | |
| # use vim keybindings in copy mode | |
| setw -g mode-keys vi | |
| 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 5 | |
| bind-key L resize-pane -R 5 | |
| 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 | |
| # use PREFIX | to split window horizontally and PREFIX - to split vertically | |
| #bind | split-window -h | |
| #bind - split-window -v | |
| # Make the current window the first window | |
| bind T swap-window -t 1 | |
| # 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 | |
| set -g display-panes-time 2000 | |
| set -g pane-base-index 1 | |
| # 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 | |
| set-window-option -g automatic-rename on | |
| # move x clipboard into tmux paste buffer | |
| bind C-p run "tmux set-buffer \"$(xclip -o)\"; tmux paste-buffer" | |
| # move tmux copy buffer into x clipboard | |
| bind C-y run "tmux show-buffer | xclip -i" | |
| # Reload tmux config | |
| bind r source-file ~/.tmux.conf | |
| # ---------------------- | |
| # Status Bar | |
| # ----------------------- | |
| set-option -g status on # turn the status bar on | |
| set -g status-utf8 on # set utf-8 for the status bar | |
| 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 | |
| set-option -g status-attr dim | |
| # set window list colors - red for active and cyan for inactive | |
| set-window-option -g window-status-fg brightblue #base0 | |
| set-window-option -g window-status-bg colour236 | |
| set-window-option -g window-status-attr dim | |
| set-window-option -g window-status-current-fg brightred #orange | |
| set-window-option -g window-status-current-bg colour236 | |
| set-window-option -g window-status-current-attr bright | |
| # show host name and IP address on left side of status bar | |
| set -g status-left-length 70 | |
| set -g status-left "#[fg=green]: #h : #[fg=brightblue]#(curl icanhazip.com) #[fg=yellow]#(ifconfig en0 | grep 'inet ' | awk '{print \"en0 \" $2}') #(ifconfig en1 | grep 'inet ' | awk '{print \"en1 \" $2}') #[fg=red]#(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]:: #(date | awk '{print $4}') ::" | |
| #Evil mouse settings | |
| ##scroll buffer | |
| set -g mouse on | |
| # Toggle mouse on with ^B m | |
| bind m \ | |
| set -g mode-mouse on \;\ | |
| set -g mouse-resize-pane on \;\ | |
| set -g mouse-select-pane on \;\ | |
| set -g mouse-select-window on \;\ | |
| display 'Mouse: ON' | |
| # Toggle mouse off with ^B M | |
| bind M \ | |
| set -g mode-mouse off \;\ | |
| set -g mouse-resize-pane off \;\ | |
| set -g mouse-select-pane off \;\ | |
| set -g mouse-select-window off \;\ | |
| display 'Mouse: OFF' | |
| unbind + | |
| bind + \ | |
| new-window -d -n tmux-zoom 'clear && echo TMUX ZOOM && read' \;\ | |
| swap-pane -s tmux-zoom.0 \;\ | |
| select-window -t tmux-zoom | |
| unbind - | |
| bind - \ | |
| last-window \;\ | |
| swap-pane -s tmux-zoom.0 \;\ | |
| kill-window -t tmux-zoom | |
| # update default binding of 'Enter' to also use copy-pipe | |
| unbind [ | |
| bind Escape copy-mode | |
| unbind p | |
| bind p paste-buffer | |
| bind-key -t vi-copy 'v' begin-selection | |
| bind-key -t vi-copy 'y' copy-selection | |
| bind-key -t vi-copy 'r' rectangle-toggle | |
| #https://powerline.readthedocs.io/en/latest/installation.html | |
| #run-shell "~/powerline-daemon -q" | |
| source ~/.local/lib/python2.7/site-packages/powerline/bindings/tmux/powerline.conf | |
| # List of plugins | |
| set -g @plugin 'tmux-plugins/tpm' | |
| set -g @plugin 'tmux-plugins/tmux-sensible' | |
| set -g @plugin 'tmux-plugins/tmux-resurrect' | |
| set -g @plugin 'tmux-plugins/tmux-continuum' | |
| set -g @plugin 'tmux-plugins/tmux-yank' | |
| set -g @plugin 'tmux-plugins/tmux-open' | |
| set -g @plugin 'tmux-plugins/tmux-copycat' | |
| set -g @continuum-restore 'on' | |
| # Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) | |
| run '~/.tmux/plugins/tpm/tpm' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment