-
Notifications
You must be signed in to change notification settings - Fork 25
/
.tmux.conf
90 lines (68 loc) · 3.05 KB
/
.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
################################################################################
# Tmux Configuration (Cam Spiers) ##############################################
################################################################################
#
# This Tmux confg is tailored towards development with vim, it use tpm and
# requires the follow tools:
#
# | Tool | Description |
# | ----------------------- | ---------------------- |
# | TPM | Tmux Plugin Manager |
# | Kitty terminal | High Performance |
# | Facebook File Picker | For getting file paths from buffer |
# | 1Password CLI | For getting secrets |
# Force tmux to use utf-8
setw -gq utf8 on
# Enable mouse support
set -g mouse on
set-option -g default-shell /usr/local/bin/bash
# Report a title to external programs
set-option -g set-titles on
set-option -g set-titles-string "#S"
set-option -g status-position bottom
set -g @tmux_power_theme 'snow'
set -g @tmux_power_show_upload_speed true
set -g @tmux_power_show_download_speed true
set -g @tmux_power_left_arrow_icon ' '
set -g @tmux_power_right_arrow_icon ' '
# Set out terminal to kitty
# set -g default-terminal "xterm-kitty"
set -g default-terminal "${TERM}"
set -as terminal-overrides ',*:Smulx=\E[4::%p1%dm' # undercurl support
set -as terminal-overrides ',*:Setulc=\E[58::2::%p1%{65536}%/%d::%p1%{256}%/%{255}%&%d::%p1%{255}%&%d%;m' # underscore colours - needs tmux-3.0
################################################################################
# Bindings #####################################################################
################################################################################
# Navigate windows using shift left and right
bind -n S-Left previous-window
bind -n S-Right next-window
# Navigate sessions using option left and right
bind -n M-Left switch-client -p
bind -n M-Right switch-client -n
# Navigation
bind C-h select-pane -L
bind C-j select-pane -D
bind C-k select-pane -U
bind C-l select-pane -R
################################################################################
# Plugins ######################################################################
################################################################################
# Custom dir outside of .dotfiles
set-environment -g TMUX_PLUGIN_MANAGER_PATH '~/.local/share/tmux/plugins'
# List of plugins
set -g @plugin 'tmux-plugins/tpm'
# Sensible tmux defaults
set -g @plugin 'tmux-plugins/tmux-sensible'
# Yanks to the system keyboard
set -g @plugin 'tmux-plugins/tmux-yank'
# Common bindings
set -g @plugin 'tmux-plugins/tmux-pain-control'
# Allows path picking from any tmux window content
set -g @plugin 'jbnicolai/tmux-fpp'
# Common pane navination with vim (overrides C-l for clear)
set -g @plugin 'christoomey/vim-tmux-navigator'
set -g @plugin 'wfxr/tmux-power'
set -g @plugin 'wfxr/tmux-net-speed'
set -g @plugin 'Morantron/tmux-fingers'
# Initialize TMUX plugin manager
run '~/.local/share/tmux/plugins/tpm/tpm'