diff options
Diffstat (limited to '.tmux.conf')
-rw-r--r-- | .tmux.conf | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/.tmux.conf b/.tmux.conf new file mode 100644 index 0000000..546fda7 --- /dev/null +++ b/.tmux.conf @@ -0,0 +1,133 @@ +# Ring the bell if any background window rang a bell +set -g bell-action any + +set -g default-terminal "screen-256color" + +# split windows like vim +# vim's definition of a horizontal/vertical split is reversed from tmux's +bind s split-window -v +bind v split-window -h + +# move around panes with hjkl, as one would in vim after pressing ctrl-w +bind h select-pane -L +bind j select-pane -D +bind k select-pane -U +bind l select-pane -R + +# Create splits and vertical splits +bind-key v split-window -h +bind-key s split-window + +# Pane resize in all four directions using HJKL +bind-key -r H resize-pane -L +bind-key -r J resize-pane -D +bind-key -r K resize-pane -U +bind-key -r L resize-pane -R +# Fix ctrl + L/R +bind-key -n C-Right send-keys w +bind-key -n C-Left send-keys b + +# setting titles on +set -g set-titles on +set -g set-titles-string "#T" +set-option -g allow-rename on + +set -g history-limit 10000 +# set mouse mode on +set -g mouse on + +# Wheel scroll in pane +unbind -T root WheelUpPane +unbind -T root WheelDownPane +bind -T root WheelUpPane if -Ft= '#{mouse_any_flag}' 'send-keys -M' 'if -Ft= "#{pane_in_mode}" "send-keys -M" "copy-mode -u"' + +# Wheel scroll in pane WHILE in copy-mode +bind -tvi-copy WheelUpPane halfpage-up +bind -tvi-copy WheelDownPane halfpage-down + +# Logout with Ctrl+D +bind-key ^D detach-client + +# 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 + +# v and y like vi in copy-mode +bind-key -t vi-copy 'v' begin-selection +bind-key -t vi-copy 'y' copy-selection +# clipboard settings +set -s set-clipboard on +bind-key C-p run "xclip -o | tmux load-buffer - ; tmux paste-buffer" +bind-key C-y run "tmux save-buffer - | xclip -i" + +# set first window to index 1 (not 0) to map more to the keyboard layout... +set -g base-index 1 + +# 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 white +set -g message-bg colour221 +set -g message-attr bold + +# set status-interval to 2 for tmux-mem-cpu-load +set -g status-interval 1 +set -g status-left '#[fg=colour235,bg=colour252,bold] #(hostname) #[fg=colour245,bg=colour238,bold] #(whoami) (#S) ' +set -g status-right '#[fg=colour23,bg=colour234]|>#[fg=white,bg=colour234] CPU:#{cpu_percentage}, Battery: #{battery_percentage} #[fg=colour23,bg=colour234]<||>#[fg=white,bg=colour234] %H:%M:%S #[fg=colour23,bg=colour234]<|' +set -g window-status-format '#[fg=colour235,bg=colour252,bold] #I: #W ' +set -g window-status-current-format '#[fg=black,bg=colour23,noreverse,bold] #I: #W ' + +# No escape time for vi mode +set -sg escape-time 0 + +# next/prev window +bind-key -n M-k next-window +bind-key -n M-j previous-window + +# select windows +bind-key -n M-1 select-window -t 1 +bind-key -n M-2 select-window -t 2 +bind-key -n M-3 select-window -t 3 +bind-key -n M-4 select-window -t 4 +bind-key -n M-5 select-window -t 5 +bind-key -n M-6 select-window -t 6 +bind-key -n M-7 select-window -t 7 +bind-key -n M-8 select-window -t 8 +bind-key -n M-9 select-window -t 9 +bind-key -n M-0 select-window -t 0 + +# Reload config +bind r source-file ~/.tmux.conf + +# Swap windows +bind-key m command-prompt -p "move window to:" "swap-window -t '%%'" + + +# List of plugins +# Supports `github_username/repo` or full git repo URLs +set -g @tpm_plugins ' \ + tmux-plugins/tpm \ + tmux-plugins/tmux-sensible \ + tmux-plugins/tmux-cpu \ + tmux-plugins/tmux-yank \ + tmux-plugins/tmux-open \ + tmux-plugins/tmux-battery \ + tmux-plugins/tmux-logging \ + tmux-plugins/tmux-online-status \ + tmux-plugins/tmux-sidebar \ + ' +# Other examples: +# github_username/plugin_name \ +# git@github.com/user/plugin \ +# git@bitbucket.com/user/plugin \ + +# Initializes TMUX plugin manager. +# Keep this line at the very bottom of tmux.conf. +run-shell '~/.tmux/plugins/tpm/tpm' |