-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.tmux.common.conf
More file actions
144 lines (110 loc) · 4.52 KB
/
.tmux.common.conf
File metadata and controls
144 lines (110 loc) · 4.52 KB
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
# -- general -------------------------------------------------------------------
set -g set-clipboard on
set-option -g default-terminal "screen-256color"
set -ga terminal-overrides ",*256col*:Tc"
set -s escape-time 10 # faster command sequences
set -sg repeat-time 600 # increase repeat timeout
setw -g xterm-keys on
set -s focus-events on
# if multiple clients are attached to the same window, maximize it to the
# bigger one
set-window-option -g aggressive-resize
# Start windows and pane numbering with index 1 instead of 0
set -g base-index 1
setw -g pane-base-index 1
# re-number windows when one is closed
set -g renumber-windows on
# word separators for automatic word selection
setw -g word-separators ' @"=()[]_-:,.'
setw -ag word-separators "'"
# Show times longer than supposed
set -g display-panes-time 2000
# tmux messages are displayed for 4 seconds
set -g display-time 4000
# Split horiziontal and vertical splits, instead of % and "
# Also open them in the same directory
bind-key v split-window -h -c '#{pane_current_path}'
bind-key s split-window -v -c '#{pane_current_path}'
# Pressing Ctrl+Shift+Left (will move the current window to the left. Similarly
# right. No need to use the modifier (C-b).
bind-key -n C-S-Left swap-window -t -1
bind-key -n C-S-Right swap-window -t +1
# Source file
unbind r
bind r source-file ~/.tmux.conf \; display "Reloaded!"
# Use vim keybindings in copy mode
setw -g mode-keys vi
# Update default binding of `Enter` and `Space to also use copy-pipe
unbind -T copy-mode-vi Enter
unbind -T copy-mode-vi Space
bind-key -T edit-mode-vi Up send-keys -X history-up
bind-key -T edit-mode-vi Down send-keys -X history-down
# setup 'v' to begin selection as in Vim
bind-key -T copy-mode-vi 'v' send-keys -X begin-selection
bind P paste-buffer
# emacs key bindings in tmux command prompt (prefix + :) are better than
# vi keys, even for vim users
set -g status-keys emacs
# Have a very large history
set -g history-limit 100000
# Mouse mode on
set -g mouse on
# Set title
set -g set-titles on
set -g set-titles-string "#T"
# Equally resize all panes
bind-key = select-layout even-horizontal
bind-key | select-layout even-vertical
# Resize panes
bind-key J resize-pane -D 10
bind-key K resize-pane -U 10
bind-key H resize-pane -L 10
bind-key L resize-pane -R 10
# Select panes
# NOTE(arslan): See to prevent cycling https://github.com/tmux/tmux/issues/1158
bind-key j select-pane -D
bind-key k select-pane -U
bind-key h select-pane -L
bind-key l select-pane -R
bind M-[ select-pane -L
bind M-] select-pane -R
# Disable confirm before killing
bind-key x kill-pane
# This tmux statusbar config was created by tmuxline.vim
set -g status "on"
set -g status-justify "left"
set -g status-position "top"
set -g status-left-length "130"
set -g status-left-style "none"
set -g status-right-length "100"
set -g status-right-style "none"
set -g status-style "none"
# theme
set -g status-left "#{prefix_highlight}#[fg=colour22,bg=colour148,bold] #S #[fg=colour148,bg=colour236,nobold,nounderscore,noitalics]"
set -g status-right "#[fg=colour240,bg=colour236,nobold,nounderscore,noitalics]#[fg=colour250,bg=colour240] %Y-%m-%d %H:%M #[fg=colour252,bg=colour240,nobold,nounderscore,noitalics]#[fg=colour241,bg=colour252] #h "
set -g pane-active-border-style fg=colour148
set -g pane-border-style fg=colour240
set -g message-command-style fg=colour231,bg=colour240
set -g message-style bg=colour240,fg=colour231
setw -g window-status-style fg=colour245,none
setw -g window-status-activity-style bg=colour236,fg=colour148,none
setw -g window-status-separator ""
setw -g window-status-style bg=colour236
setw -g window-status-format "#[fg=colour245,bg=colour236] #I #[fg=colour245,bg=colour236] #W"
setw -g window-status-current-format "#[fg=colour236,bg=colour240,nobold,nounderscore,noitalics]#[fg=colour231,bg=colour240] #I #[fg=colour231,bg=colour240]#{?window_zoomed_flag,#[fg=green][],} #W #[fg=colour240,bg=colour236,nobold,nounderscore,noitalics]"
# set -g mode-style "fg=white,bg=colour148"
# light colours
# fg = thin line
# set -g pane-border-style "bg=colour253 fg=colour244"
# set -g pane-active-border-style "bg=colour253 fg=colour208"
# fg = text
# set -g window-style 'fg=colour238,bg=colour253'
# set -g window-active-style 'fg=colour238,bg=colour231'
# Customize the status line
# set -g status-fg colour208
# set -g status-bg colour253
# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'joshmedeski/tmux-nerd-font-window-name'
run '~/.tmux/plugins/tpm/tpm'