-
Notifications
You must be signed in to change notification settings - Fork 0
/
dot_tmux.conf
111 lines (95 loc) · 3.94 KB
/
dot_tmux.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# shell as default command
set -g default-command "${SHELL}"
# color support
set-option -g default-terminal "tmux-256color"
set-option -ga terminal-overrides ",xterm-256color:Tc"
# image passthrough
set -gq allow-passthrough on
set -g visual-activity off
# window titles
set -g set-titles on
set -g set-titles-string "#T"
# set window and pane index to start at 1
set -g base-index 1
set-window-option -g pane-base-index 1
set-option -g renumber-windows on
# mouse support
set -g mouse on
# vim compatibility
set-window-option -g mode-keys vi
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
# prefix
unbind C-b
set -g prefix C-Space
bind C-Space send-prefix
# jump to last window
bind C-Space last-window
# reload config file
bind r source-file ~/.tmux.conf
# xclip support
bind C-c run "tmux show-buffer | xclip -i -selection primary"
bind C-v run "tmux set-buffer -- \"$(xclip -o -selection primary)\"; tmux paste-buffer"
# vim-tmux-navigator
is_vim="ps -o state= -o comm= -t '#{pane_tty}' \
| grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|l?n?vim?x?|fzf)(diff)?$'"
bind-key -n 'C-h' if-shell "$is_vim" 'send-keys C-h' 'select-pane -L'
bind-key -n 'C-j' if-shell "$is_vim" 'send-keys C-j' 'select-pane -D'
bind-key -n 'C-k' if-shell "$is_vim" 'send-keys C-k' 'select-pane -U'
bind-key -n 'C-l' if-shell "$is_vim" 'send-keys C-l' 'select-pane -R'
tmux_version='$(tmux -V | sed -En "s/^tmux ([0-9]+(.[0-9]+)?).*/\1/p")'
if-shell -b '[ "$(echo "$tmux_version < 3.0" | bc)" = 1 ]' \
"bind-key -n 'C-\\' if-shell \"$is_vim\" 'send-keys C-\\' 'select-pane -l'"
if-shell -b '[ "$(echo "$tmux_version >= 3.0" | bc)" = 1 ]' \
"bind-key -n 'C-\\' if-shell \"$is_vim\" 'send-keys C-\\\\' 'select-pane -l'"
bind-key -T copy-mode-vi 'C-h' select-pane -L
bind-key -T copy-mode-vi 'C-j' select-pane -D
bind-key -T copy-mode-vi 'C-k' select-pane -U
bind-key -T copy-mode-vi 'C-l' select-pane -R
bind-key -T copy-mode-vi 'C-\' select-pane -l
# catppuccin mocha colors
# see .config/nvim/lua/statusline.lua for matching colors
CATPPUCCIN_FLAMINGO="#f2cdcd"
CATPPUCCIN_PINK="#f5c2e7"
CATPPUCCIN_MAUVE="#cba6f7"
CATPPUCCIN_RED="#f38ba8"
CATPPUCCIN_MAROON="#eba0ac"
CATPPUCCIN_PEACH="#fab387"
CATPPUCCIN_GREEN="#a6e3a1"
CATPPUCCIN_TEAL="#94e2d5"
CATPPUCCIN_SKY="#89dceb"
CATPPUCCIN_SAPPHIRE="#74c7ec"
CATPPUCCIN_BLUE="#89b4fa"
CATPPUCCIN_LAVENDER="#b4befe"
CATPPUCCIN_TEXT="#cdd6f4"
CATPPUCCIN_OVERLAY0="#6c7086"
CATPPUCCIN_SURFACE0="#313244"
CATPPUCCIN_BASE="#1e1e2e"
CATPPUCCIN_MANTLE="#181825"
CATPPUCCIN_CRUST="#11111b"
# status line
# own config as catppuccin does not allow much customization
set-option -g status on
set-option -g status-interval 1
#set-option -g status-justify centre
set-option -g status-position bottom
set-option -g status-right-length 140
set-option -g status-keys vi
set-option -g status-style bg=${CATPPUCCIN_MANTLE}
set-option -g status-left ""
TMUX_BLOCK_KUBE="#[fg=${CATPPUCCIN_OVERLAY0}]#(~/.config/tmux/blocks/kube-context.sh)"
TMUX_BLOCK_TIME="#[fg=${CATPPUCCIN_SURFACE0},bg=${CATPPUCCIN_CRUST}]#[fg=${CATPPUCCIN_OVERLAY0},bg=${CATPPUCCIN_SURFACE0}] #[fg=${CATPPUCCIN_TEXT}]%H:%M "
TMUX_BLOCK_SESSION="#[fg=${CATPPUCCIN_MAUVE},bg=${CATPPUCCIN_SURFACE0}]#[,fg=${CATPPUCCIN_MANTLE},bg=${CATPPUCCIN_MAUVE}] #{session_name} "
set-option -g status-right "${TMUX_BLOCK_KUBE}${TMUX_BLOCK_TIME}${TMUX_BLOCK_SESSION}"
set-option -g window-status-separator ""
set-option -wg window-status-current-format "#[fg=${CATPPUCCIN_MANTLE},bg=${CATPPUCCIN_MAUVE}] #I #[fg=${CATPPUCCIN_TEXT},bg=${CATPPUCCIN_SURFACE0}] #W "
set-option -wg window-status-format "#[fg=${CATPPUCCIN_MANTLE},bg=${CATPPUCCIN_LAVENDER}] #I #[fg=${CATPPUCCIN_OVERLAY0},bg=${CATPPUCCIN_MANTLE}] #W "
# plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -sg escape-time 1 # override to avoid strange chars at first startup
set -g @plugin 'tmux-plugins/tmux-prefix-highlight'
# load plugins - has to stay close to end
run '~/.tmux/plugins/tpm/tpm'