1# Prefix
2unbind C-b
3set -g prefix C-s
4bind C-s send-prefix
5
6# Reload config
7bind C-r source-file ~/.config/tmux/tmux.conf \; display "Config Reloaded!"
8
9# Pane splits
10unbind %
11unbind '"'
12bind e split-window -h -c "#{pane_current_path}"
13bind o split-window -v -c "#{pane_current_path}"
14
15# Windows
16unbind t
17bind t new-window -c "#{pane_current_path}"
18bind T clock-mode
19
20# Search
21unbind f
22bind f copy-mode \; command-prompt -p "Search:" "send-keys -X search-forward '%%'"
23
24# Copy mode
25set -g mode-keys vi
26unbind -T copy-mode-vi MouseDragEnd1Pane
27
28# Resurrect plugin
29set -g @resurrect-save 'S'
30set -g @resurrect-restore 'R'
31
32
33# Popups
34bind C-l if-shell \
35 'git -C "#{pane_current_path}" rev-parse --is-inside-work-tree >/dev/null 2>&1' \
36 'display-popup -d "#{pane_current_path}" -w 90% -h 90% -E "lazygit"' \
37 'display-message "Git repo not found"'
38
39bind C-p display-menu -T "#[align=centre]Dev Menu" \
40 -x C -y C \
41 "" \
42 "Edit Dotfiles" d "new-window -c ~ 'cd dotfiles && nvim .'" \
43 "Edit .zshrc" z "display-popup -E 'nvim ~/.zshrc'" \
44 "Terminal" t "display-popup -d '#{pane_current_path}' -E 'zsh'" \