Files
dots/files/tmux/.tmux.conf
2023-10-06 15:31:06 +02:00

96 lines
2.8 KiB
Bash

# tmux.conf
# ~ M. Thomas
######### Terminal Setup ##########
# set default terminal
set -g default-terminal "tmux-256color"
# enable true color terminal
set -ga terminal-overrides ",*256col*:Tc,alacritty:Tc"
######### Keybinds ##########
# new panes (open with current path)
bind-key -n M-v split-window -h -c "#{pane_current_path}"
bind-key -n M-s split-window -v -c "#{pane_current_path}"
# pane selection
bind-key -n M-h select-pane -L
bind-key -n M-j select-pane -D
bind-key -n M-k select-pane -U
bind-key -n M-l select-pane -R
# pane / window modifications
bind-key -n M-z resize-pane -Z
# use `set automatic-rename on` to reset
bind-key -n M-, command-prompt -p "Rename window:" "rename-window '%%'"
bind-key -n M-< set automatic-rename on
# new windows
bind-key -n M-c new-window -c "#{pane_current_path}"
# navigate 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
# swap panes
bind-key -n 'M-H' swap-pane -D
bind-key -n 'M-L' swap-pane -U
# move panes to and from windows
bind-key -n 'M-t' command-prompt -p "Send pane to:" "join-pane -t :'%%'"
bind-key -n 'M-!' select-layout even-horizontal
bind-key -n 'M-@' select-layout even-vertical
# resize panes
bind-key -n 'M-Left' resize-pane -L 20
bind-key -n 'M-Right' resize-pane -R 20
bind-key -n 'M-Up' resize-pane -U 20
bind-key -n 'M-Down' resize-pane -D 20
########## General ##########
# alias
set -s command-alias[1] respawn='respawn-pane -k'
# make escape bindings of programs work in tmux
set -s escape-time 5
# renumber windows, when one gets closed
set-option -g renumber-windows on
# enable mouse
set-option -g mouse on
# start pane index at 1
set -g base-index 1
setw -g pane-base-index 1
# set terminal window title (update every second)
set-option -g status-interval 1
set-option -g set-titles on
set-option -g set-titles-string "#H: #W"
########## Styling ##########
# generated using https://github.com/edkolev/tmuxline.vim
set -g status-position top
set -g status-justify "left"
set -g status "on"
set -g message-command-style "fg=#829181,bg=#e6e2cc"
set -g pane-active-border-style "fg=#93b259"
set -g status-style "none,bg=#e6e2cc"
set -g message-style "fg=#829181,bg=#e6e2cc"
set -g pane-border-style "fg=#e9e8d2"
set -g status-right-length "100"
set -g status-left-length "100"
setw -g window-status-activity-style "none,fg=#93b259,bg=#e6e2cc"
setw -g window-status-style "none,fg=#939f91,bg=#e6e2cc"
set -g status-left ""
set -g status-right "#[fg=#939f91,bg=#e6e2cc] #H @ #S"
setw -g window-status-format "#I:#W"
setw -g window-status-current-format "#[fg=#93b259,bold]#I:#W*"