aboutsummaryrefslogtreecommitdiff
path: root/tmux/.tmux.conf
blob: d853e98d1d855fc46ad8cbac58a09d48c443a8c6 (plain)
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
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
#  ██████████ ████     ████ ██     ██ ██     ██
# ░░░░░██░░░ ░██░██   ██░██░██    ░██░░██   ██
#     ░██    ░██░░██ ██ ░██░██    ░██ ░░██ ██
#     ░██    ░██ ░░███  ░██░██    ░██  ░░███
#     ░██    ░██  ░░█   ░██░██    ░██   ██░██
#     ░██    ░██   ░    ░██░██    ░██  ██ ░░██
#     ░██    ░██        ░██░░███████  ██   ░░██
#     ░░     ░░         ░░  ░░░░░░░  ░░     ░░

# change prefix to Ctrl-a (like in gnu-screen)
unbind C-b
set-option -g prefix C-a
bind-key C-a send-prefix

# shell
set -g default-command /usr/bin/zsh
set -g default-shell /usr/bin/zsh

# start with window 1 (instead of 0)
set -g base-index 1

# start with pane 1
set -g pane-base-index 1

# screen mode
set -g default-terminal "screen-256color"

# source config file
bind r source-file ~/.tmux.conf

# history
set -g history-limit 4096

# allow terminal scrolling
set-option -g terminal-overrides 'xterm*:smcup@:rmcup@'

# vim style copy paste mode
unbind [
bind Escape copy-mode
unbind p
bind p paste-buffer
bind-key -t vi-copy 'v' begin-selection
bind -t vi-copy y copy-pipe 'xclip -in -selection clipboard'

# use vi mode
setw -g mode-keys vi
set -g status-keys vi
setw -g utf8 on
# use mouse in copy mode
setw -g mode-mouse on

# splitting
unbind %
bind h split-window -h
unbind '"'
bind v split-window -v

# window switching
#urxvt tab like window switching (-n: no prior escape seq)
bind-key -n S-left prev
bind-key -n S-right next
bind-key -n C-left swap-window -t -1
bind-key -n C-right swap-window -t +1
# with mouse (click on pretty little boxes)
set -g mouse-select-window on

# colon :
bind : command-prompt

# panes
set -g mouse-select-pane on
set -g pane-border-fg black
set -g pane-active-border-fg brightred
#set -g pane-active-border-attr blink
# resize panes with mouse (drag borders)
set -g mouse-select-pane on
set -g mouse-resize-pane on

# status line
set -g status-utf8 on
set -g status-justify left
set -g status-bg default
set -g status-fg colour12
set -g status-interval 2

# messaging
set -g message-fg black
set -g message-bg yellow
set -g message-command-fg blue
set -g message-command-bg black

#window mode
setw -g mode-bg colour6
setw -g mode-fg colour0

# window status
#setw -g window-status-format " #F#I:#W#F "
#setw -g window-status-current-format " #F#I:#W#F "
setw -g window-status-format "#[bg=colour8]#[fg=colour7] #I #[fg=color14]#[bg=colour0] #W "
setw -g window-status-current-format "#[bg=colour6]#[fg=black] #I #[fg=black]#[bg=colour4] #W "
setw -g window-status-current-bg colour0
setw -g window-status-current-fg colour11
setw -g window-status-current-attr dim
setw -g window-status-bg green
setw -g window-status-fg black
setw -g window-status-attr dim
setw -g window-status-content-bg colour0
setw -g window-status-content-fg colour11
setw -g window-status-content-attr blink

# Info on right
set -g status-right-length 30
set -g status-right ''
# '#[fg=magenta]#(cut -d " " -f 1-3 /proc/loadavg) #[fg=colour8]// #[fg=cyan]Tmux [#S]'
# Info on left (no session display)
set -g status-left ''

# loud or quiet?
set-option -g visual-activity on
set-option -g visual-bell off
set-option -g visual-content off
set-option -g visual-silence off
set-window-option -g monitor-activity off
set-window-option -g monitor-content on
set-option -g bell-action none

# tmux clock
set -g clock-mode-colour blue

# some key-binding changes
bind x kill-pane
bind X next-layout
bind Z previous-layout
#unbind Left
#bind C-Left resize-pane -L 2
#bind h select-pane -L
#unbind Down
#bind C-Down resize-pane -D 2
#bind j select-pane -D
#unbind Up
#bind C-Up resize-pane -U 2
#bind k select-pane -U
#unbind Right
#bind C-Right resize-pane -R 2
#bind l select-pane -R
#unbind C-Left
#bind C-h resize-pane -L 1
#unbind C-Down
#bind C-j resize-pane -D 1
#unbind C-Up
#bind C-k resize-pane -U 1
#unbind C-Right
#bind C-l resize-pane -R 1
#unbind M-Left
#bind C-H resize-pane -L 30
#unbind M-Down
#bind C-J resize-pane -D 30
#unbind M-Up
#bind C-K resize-pane -U 30
#unbind M-Right
#bind C-L resize-pane -R 30

# default sessions - need to use 'tmux attach'
#new-session weechat
#new-window rtorrent
#new-window mutt
#new-window zsh