dotfiles/.config/tmux/tmux.conf

101 lines
2.5 KiB
Plaintext

# Start a session if none exists
new-session -s main
# Start htop and split window
set-hook -t main session-created 'send-keys -t main:0 "sudo htop" C-m; split-window'
# remap prefix from 'C-b' to 'C-a'
unbind C-b
set-option -g prefix C-a
bind-key C-a send-prefix
# Use C-b to send prefix twice so it acts on nested session
bind-key -n C-b send-prefix
# split panes using | and -
bind | split-window -h
bind - split-window -v
unbind '"'
unbind %
# reload config file
bind r source-file $XDG_CONFIG_HOME/tmux/tmux.conf
# switch panes using Alt-arrow without prefix
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
# start windows and panes at 1, not 0,
set -g base-index 1
set -g pane-base-index 1
# Enable mouse mode
set -g mouse on
#+----------------+
#+ Plugin Support +
#+----------------+
#+--- tmux-prefix-highlight ---+
set -g @prefix_highlight_fg black
set -g @prefix_highlight_bg brightcyan
#+---------+
#+ Options +
#+---------+
set -g status-interval 1
set -g status on
set -g aggressive-resize on
#+--------+
#+ Status +
#+--------+
#+--- Layout ---+
set -g status-justify left
#+--- Colors ---+
set -g status-bg black
set -g status-fg white
#+-------+
#+ Panes +
#+-------+
set -g pane-border-style bg=black,fg=black
set -g pane-active-border-style bg=black,fg=brightblack
set -g display-panes-colour black
set -g display-panes-active-colour brightblack
#+------------+
#+ Clock Mode +
#+------------+
setw -g clock-mode-colour cyan
#+----------+
#+ Messages +
#+---------+
set -g message-style fg=cyan,bg=brightblack
set -g message-command-style fg=cyan,bg=brightblack
######################
### DESIGN CHANGES ###
######################
## Status bar design
# status line
set -g status-justify left
set -g status-interval 2
set -g default-terminal "screen-256color"
# Add true color & italics support with alacritty terminal
if-shell 'type "alacritty" >/dev/null' \
'set -g default-terminal "alacritty"'
#+--- Bars ---+
set -g status-left "#[fg=black,bg=blue,bold] #S "
set -g status-right "#{prefix_highlight}#[fg=white,bg=brightblack] %Y-%m-%d #[fg=white,bg=brightblack,nobold,noitalics,nounderscore]|#[fg=white,bg=brightblack] %H:%M#[fg=cyan,bg=brightblack,nobold,noitalics,nounderscore] #[fg=black,bg=cyan,bold] #h "
#+--- Windows ---+
set -g window-status-format " #[fg=white,bg=brightblack] #I #[fg=white,bg=brightblack]#W #F "
set -g window-status-current-format " #[fg=black,bg=cyan] #I#[fg=black,bg=cyan,nobold,noitalics,nounderscore] #[fg=black,bg=cyan]#W #F "
set -g window-status-separator ""