aboutsummaryrefslogtreecommitdiff
path: root/tmux/tmux.conf
blob: 626a22edc008406efc982f156b2997e449524d3c (plain) (blame)
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
set -g status-style "fg=green,bg=black"
set-window-option -g window-status-current-style "bg=green,fg=black"
set -g status-right "#[fg=black,bg=green] #(whoami)@#h|m:#(sh $HOME/.tmux_helper.sh memory)|l:#(sh $HOME/.tmux_helper.sh load)|#(sh $HOME/.tmux_helper.sh uptime)"
# For a basic tmux configuration without the helper
# set -g status-right "#[fg=black,bg=green] #(whoami)@#h"

set -g status-position bottom
# Despite my preference for vi bindings elsewhere
set -g status-keys emacs

# If you mark a pane with c-b m you can swap it tapping this
bind-key M-s swap-pane

# Pretty nifty little option to mirror input for all panes
bind M-s set synchronize-panes

# Allow the hotkeys to be switched using M-x to C-x, M-b to C-b, and so forth
bind M-x set prefix C-x
bind M-b set prefix C-b
bind M-a set prefix C-a

# set -g mode-mouse on
set -g mode-keys vi
# set -g aggressive-resize on

# This has previously not given me any issues other than 'set termguicolors' in
# vim
# set -g default-terminal "screen-256color"

# This seems to fix that problem, it may cause other issues but I'm going to
# keep an eye on it
# set-option -g default-terminal "tmux-256color"
set-option -g default-terminal "screen-256color"
set-option -ga terminal-overrides ",xterm*:Tc"


# Don't let command rename our windows
set-option -g allow-rename off

# Press v to "visually" and y to "yank" the text
# Press `c-b ]` to paste 
# If you ever want to look up a keybind use `c-b ?`
bind-key -T copy-mode-vi v send-keys -X begin-selection
bind-key -T copy-mode-vi y send-keys -X copy-selection

# This one is also useful if you don't want to do what is listed above
# bind p paste-buffer

# Rather large histroy buffer so I don't lose shit
set-option -g history-limit 16000

# Fix for certian applications such as Nvim
set -sg escape-time 0

# Select panes with vim like bindings
bind-key M-k select-pane -U
bind-key M-j select-pane -D
bind-key M-h select-pane -L
bind-key M-l select-pane -R


# Reload configuration
bind-key r source ~/.tmux.conf
# Respawn the pane  # Useful if you have `set -g remain-on-exit on` or so
bind-key M-r respawn-pane


# Change the status line a little bit, most are close to defaults
set -g status-left-length 35
set -g status-left "[#S] "

set -g status-right-length 40
set -g window-status-format "#I:#W#F"

set -g set-titles on
set -g set-titles-string "tmux: #{session_name} [#I]#{window_name} -- #T"


# If you still want to select text out of the terminal as you normally would
# You should hold the shift key ( Linux ) Option/Alt works in iTerm2 on MacOS
# Does not seem to work with the native terminal.
set -g mouse on

# Old mouse method
# set-option -g mode-mouse on
# set-option -g mouse-resize-pane on
# set-option -g mouse-select-pane on
# set-option -g mouse-select-window on

# If you want any local configuration
source ~/.tmux.conf.local