Homelab-Infra/roles/cli_productivity/templates/tmux.conf.j2

66 lines
1.7 KiB
Django/Jinja

# Managed by Ansible
# General quality of life
set -g mouse on
set -g history-limit 50000
set -g set-clipboard on
set -g renumber-windows on
set -g escape-time 10
set -g focus-events on
# Use 1-based indexes
set -g base-index 1
setw -g pane-base-index 1
# Better terminal/color support
set -g default-terminal "tmux-256color"
set -ga terminal-overrides ",xterm-256color:Tc"
# Vi-style copy mode
setw -g mode-keys vi
# Status bar
set -g status on
set -g status-interval 5
set -g status-position bottom
set -g status-style "bg=colour235,fg=colour250"
set -g status-left-length 80
set -g status-right-length 120
set -g status-left "#[fg=colour82,bold] #S #[fg=colour240]|#[default] "
set -g status-right "#[fg=colour245]%Y-%m-%d #[fg=colour82]%H:%M #[fg=colour240]| #[fg=colour39]#H "
setw -g window-status-format "#[fg=colour245] #I:#W "
setw -g window-status-current-format "#[fg=colour235,bg=colour82,bold] #I:#W "
# Pane borders
set -g pane-border-style "fg=colour240"
set -g pane-active-border-style "fg=colour82"
# Easier reload
bind r source-file ~/.tmux.conf \; display-message "Reloaded ~/.tmux.conf"
# Splits using current directory
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
# New windows keep current directory
bind c new-window -c "#{pane_current_path}"
# Vim-like pane movement
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
# Resize panes
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
# Copy mode bindings
bind-key -T copy-mode-vi v send-keys -X begin-selection
bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel
bind-key -T copy-mode-vi Escape send-keys -X cancel