Last active
November 23, 2020 19:10
-
-
Save gustavomedeiross/da8b4d2bf9808d572f93ff380e771654 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
# ctrl-space for modifier | |
unbind C-b | |
set -g prefix C-a | |
bind C-a send-prefix | |
# color theme | |
set -g default-terminal "xterm-256color" | |
set -ga terminal-overrides ",xterm-256color:Tc" | |
# mouse functionality | |
set -g mouse on | |
# new panes on current path | |
bind '%' split-window -h -c '#{pane_current_path}' # Split panes horizontal | |
bind '"' split-window -v -c '#{pane_current_path}' # Split panes vertically | |
bind c new-window -c '#{pane_current_path}' # Create new window | |
# start window and pane numbering from 1 | |
set -g base-index 1 | |
setw -g pane-base-index 1 | |
# renumber windows on close | |
set -g renumber-windows on | |
# have tmux remember more lines | |
set -g history-limit 10000 | |
# smooth copy and pasting | |
# tmux < v2.1: | |
if-shell "[[ `tmux -V | cut -d' ' -f2` -lt 2.1 ]]" "setw -g mode-mouse off" | |
# tmux >= v2.1: | |
if-shell "[[ `tmux -V | cut -d' ' -f2` -ge 2.1 ]]" "setw -g mouse off" | |
# Smart pane switching with awareness of Vim splits. | |
# See: https://github.com/christoomey/vim-tmux-navigator | |
is_vim="ps -o state= -o comm= -t '#{pane_tty}' \ | |
| grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'" | |
bind-key -n 'C-h' if-shell "$is_vim" 'send-keys C-h' 'select-pane -L' | |
bind-key -n 'C-j' if-shell "$is_vim" 'send-keys C-j' 'select-pane -D' | |
bind-key -n 'C-k' if-shell "$is_vim" 'send-keys C-k' 'select-pane -U' | |
bind-key -n 'C-l' if-shell "$is_vim" 'send-keys C-l' 'select-pane -R' | |
tmux_version='$(tmux -V | sed -En "s/^tmux ([0-9]+(.[0-9]+)?).*/\1/p")' | |
if-shell -b '[ "$(echo "$tmux_version < 3.0" | bc)" = 1 ]' \ | |
"bind-key -n 'C-\\' if-shell \"$is_vim\" 'send-keys C-\\' 'select-pane -l'" | |
if-shell -b '[ "$(echo "$tmux_version >= 3.0" | bc)" = 1 ]' \ | |
"bind-key -n 'C-\\' if-shell \"$is_vim\" 'send-keys C-\\\\' 'select-pane -l'" | |
bind-key -T copy-mode-vi 'C-h' select-pane -L | |
bind-key -T copy-mode-vi 'C-j' select-pane -D | |
bind-key -T copy-mode-vi 'C-k' select-pane -U | |
bind-key -T copy-mode-vi 'C-l' select-pane -R | |
bind-key -T copy-mode-vi 'C-\' select-pane -l | |
## === COLORSCHEME: gruvbox dark (medium) === | |
set-option -g status "on" | |
# default statusbar color | |
set-option -g status-style bg=colour237,fg=colour223 # bg=bg1, fg=fg1 | |
# default window title colors | |
set-window-option -g window-status-style bg=colour214,fg=colour237 # bg=yellow, fg=bg1 | |
# default window with an activity alert | |
set-window-option -g window-status-activity-style bg=colour237,fg=colour248 # bg=bg1, fg=fg3 | |
# active window title colors | |
set-window-option -g window-status-current-style bg=red,fg=colour237 # fg=bg1 | |
# pane border | |
set-option -g pane-active-border-style fg=colour250 #fg2 | |
set-option -g pane-border-style fg=colour237 #bg1 | |
# message infos | |
set-option -g message-style bg=colour239,fg=colour223 # bg=bg2, fg=fg1 | |
# writing commands inactive | |
set-option -g message-command-style bg=colour239,fg=colour223 # bg=fg3, fg=bg1 | |
# pane number display | |
set-option -g display-panes-active-colour colour250 #fg2 | |
set-option -g display-panes-colour colour237 #bg1 | |
# clock | |
set-window-option -g clock-mode-colour colour109 #blue | |
# bell | |
set-window-option -g window-status-bell-style bg=colour167,fg=colour235 # bg=red, fg=bg | |
## Theme settings mixed with colors (unfortunately, but there is no cleaner way) | |
set-option -g status-justify "left" | |
set-option -g status-left-style none | |
set-option -g status-left-length "80" | |
set-option -g status-right-style none | |
set-option -g status-right-length "80" | |
set-window-option -g window-status-separator "" | |
set-option -g status-left "#[bg=colour241,fg=colour248] #S #[bg=colour237,fg=colour241,nobold,noitalics,nounderscore]" | |
set-option -g status-right "#[bg=colour237,fg=colour239 nobold, nounderscore, noitalics]#[bg=colour239,fg=colour246] %Y-%m-%d %H:%M #[bg=colour239,fg=colour248,nobold,noitalics,nounderscore]#[bg=colour248,fg=colour237] #h " | |
set-window-option -g window-status-current-format "#[bg=colour2,fg=colour237,nobold,noitalics,nounderscore]#[bg=colour2,fg=colour239] #I #[bg=colour2,fg=colour239,bold] #W #[bg=colour237,fg=colour2,nobold,noitalics,nounderscore]" | |
set-window-option -g window-status-format "#[bg=colour239,fg=colour237,noitalics]#[bg=colour239,fg=colour223] #I #[bg=colour239,fg=colour223] #W #[bg=colour237,fg=colour239,noitalics]" | |
# vim: set ft=tmux tw=0 nowrap: |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment