dotfiles/.config/tmux/tmux.conf
2022-10-16 15:44:07 +02:00

124 lines
3.4 KiB
Bash

######################################################################
# START OF PLUGINS
######################################################################
# Plugin manager for tmux
set -g @plugin 'tmux-plugins/tpm'
set-environment -g TMUX_PLUGIN_MANAGER_PATH '~/.tmux/plugins/'
# Simple tmux options for anyone
set -g @plugin 'tmux-plugins/tmux-sensible'
#set -g @plugin 'odedlaz/tmux-onedark-theme'
# Gruvbox theme
set -g @plugin 'egel/tmux-gruvbox'
set -g @tmux-gruvbox 'dark' # or 'light'
# Persistent tmux envs across system restarts
set -g @plugin 'tmux-plugins/tmux-resurrect'
# Continuous saving of tmux environment
set -g @plugin 'tmux-plugins/tmux-continuum'
#######################################################
# TMUX-CONTINUUM
#######################################################
# Enables restoral of saved tmux config
set -g @continuum-restore 'on'
# How often to save a tmux layout
set -g @continuum-save-interval '10'
#######################################################
# TMUX-RESURRECT
#######################################################
# Capture contents of each pane
set -g @resurrect-capture-pane-contents 'on'
# Set to resurrect neovim sessions
set -g @resurrect-strategy-nvim 'session'
# Processes to resurrect
set -g @resurrect-processes '~julia'
#######################################################
# TMUX-SENSIBLE
#######################################################
# Increase scrollback buffer size
set -g history-limit 5000
######################################################################
# END OF PLUGINS
######################################################################
######################################################################
# START OF GENERAL CONFIGURATIONS
######################################################################
# Turn on interactivity with mouse
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' 'copy-mode -e; send-keys -M'"
# Enables italics in tmux
#set -g default-terminal "tmux-256color"
set -g default-terminal "screen-256color"
# Terminal type configuration
set -ga terminal-overrides ",screen-256color:RGB"
set -ag terminal-overrides ",alacritty:RGB"
# Start window numbering at specific num
set -g base-index 1
# Renumber windows on window close
set -g renumber-windows on
# Set vi mode
setw -g mode-keys vi
#######################################################
# KEY BINDING
#######################################################
# hjkl pane traversal
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
# Remap prefix from 'C-b' to 'C-a'
unbind C-b
set-option -g prefix C-a
bind-key C-a send-prefix
# Bind popup display commands
# bind t popup -KER "topydo columns"
# bind d popup -h80% -w80% -KR "gcalcli --calendar \"JZ Calendar\" calw"
# bind s popup -h80% -w80% -KER "spt"
# bind C-t popup -KR "$SHELL"
bind-key -r f run-shell "tmux neww ~/.local/bin/tmux-sessionizer"
bind -T copy-mode-vi v send -X begin-selection
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "pbcopy"
bind P paste-buffer
bind -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "pbcopy"
######################################################################
# END OF GENERAL CONFIGURATIONS
######################################################################
# Initialize tpm plugin manager - DO NOT MOVE
run '~/.tmux/plugins/tpm/tpm'