-
Notifications
You must be signed in to change notification settings - Fork 0
/
executable_dot_tmux.conf
112 lines (92 loc) · 3.5 KB
/
executable_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
112
set -g default-terminal "screen-256color"
set -as terminal-overrides ",*:Tc"
# fix for vim block cursor
set -ga terminal-overrides '*:Ss=\E[%p1%d q:Se=\E[ q'
unbind C-b
set-option -g prefix C-]
bind-key C-] send-prefix
set -g base-index 1
set -g mode-keys vi
set -g history-limit 10000
# Kill a session with Capital X
bind-key X kill-session
# Use Alt-vim keys without prefix key to switch panes
bind -n M-h previous-window
bind -n M-l next-window
# No delay for escape key press
set -sg escape-time 0
# Reload tmux config
bind r source-file ~/.tmux.conf
bind P paste-buffer
bind-key -T copy-mode-vi v send-keys -X begin-selection
bind-key -T copy-mode-vi r send-keys -X rectangle-toggle
set-option -g focus-events on
# TPM List of plugins
#__________________________________
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'christoomey/vim-tmux-navigator'
set -g @plugin 'tmux-plugins/tmux-sessionist'
set -g @plugin 'tmux-plugins/tmux-pain-control'
set -g @plugin 'sainnhe/tmux-fzf'
set -g @plugin 'tmux-plugins/tmux-yank'
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'
bind X confirm-before kill-session
# default statusbar colors Thanks to https://waylonwalker.com/tmux-status-bar/
# ――――――――――――――――――――――――――――――――
# Kanagawa Color
FG='#7e9cd8'
AUTUMN_RED='#C34043'
YELLOW='#c0a36e'
set-option -g status-position top
set-option -g status-bg default
set-option -g status-fg colour240
set-window-option -g window-status-style fg=$FG
# set-window-option -g window-status-style bg=default
#set -g pane-active-border-style fg='#6272a4'
set -g status-left-length 85
set -g status-interval 2
set -g status-left "#[fg=$AUTUMN_RED,bold] #S"
# set -g window-status-current-format "#[fg=black,bold bg=default]│#[fg=white bg=cyan]#W#[fg=black,bold bg=default]│"
set -g window-status-current-format "#[fg=$AUTUMN_RED]|#[fg=$YELLOW]#{window_flags}#[fg=$AUTUMN_RED]#W|"
set -g status-style bg=default
set -g status-right ""
set -g status-right '#(gitmux "#{pane_current_path}")'
set -g status-justify centre
# border colours
#set -g pane-border-style fg=magenta
set -g pane-active-border-style "bg=default fg=$AUTUMN_RED"
# Switch Sessinos
# ____________________________
bind -n M-j display-popup -E "\
tmux list-sessions -F '#{?session_attached,,#{session_activity},#{session_name}}' |\
sort -r |\
sed '/^$/d' |\
cut -d',' -f2- \|
fzf --reverse --header jump-to-session --preview 'tmux capture-pane -pt {}' |\
xargs tmux switch-client -t"
# Kill Session
bind k display-popup -E "\
tmux list-sessions -F '#{?session_attached,,#{session_name}}' |\
sed '/^$/d' |\
fzf --reverse -m --header=kill-session |\
xargs -I {} tmux kill-session -t {}"
bind -n M-t popup -E -h 95% -w 95% -x 100% "htop"
bind C-w display-popup -E "~/.local/bin/ta.sh ~/projects"
bind C-g display-popup -E "~/.local/bin/ta.sh ~/git"
bind -n M-B switch-client -l # switch to last session
bind -n M-b switch-client -l
# ___________ switch sessions _____________
bind -n M-P switch-client -p
bind -n M-N switch-client -n
# Alt Space to zoom in and out of the pane
bind -n M-space resize-pane -Z # maximaze pane
# alt enter for copy mode https://waylonwalker.com/tmux-copy-mode-binding/
bind Enter copy-mode
bind -n M-Enter copy-mode
bind-key -n M-g if-shell -F '#{==:#{session_name},scratch}' {
detach-client
} {
display-popup -E -h 80% -w 80% -x 10% "tmux new-session -A -s scratch"
}