78 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
# statusbar
 | 
						|
setw -g  monitor-activity on
 | 
						|
set  -g  visual-activity on
 | 
						|
set  -g  history-limit 100000
 | 
						|
set  -g  default-command "${SHELL}"
 | 
						|
setw -g  aggressive-resize on
 | 
						|
set  -sg escape-time 0
 | 
						|
 | 
						|
# keybindings
 | 
						|
# NOTE: I intend to use defaults whenever feasible
 | 
						|
# - my prefix key is still C-b
 | 
						|
# - however, I do use vi mode
 | 
						|
setw -g mode-keys vi
 | 
						|
set  -g status-keys vi
 | 
						|
bind r  source-file ~/.config/tmux/tmux.conf # reload tmux conf
 | 
						|
# Splits
 | 
						|
unbind v
 | 
						|
unbind s
 | 
						|
unbind %   # vsplit
 | 
						|
unbind '"' # hsplit
 | 
						|
bind v    split-window -h -c "#{pane_current_path}"
 | 
						|
bind s    split-window -v -c "#{pane_current_path}"
 | 
						|
bind -r h select-pane  -L
 | 
						|
bind -r j select-pane  -D
 | 
						|
bind -r k select-pane  -U
 | 
						|
bind -r l select-pane  -R
 | 
						|
bind -r H resize-pane  -L 4
 | 
						|
bind -r J resize-pane  -D 4
 | 
						|
bind -r K resize-pane  -U 4
 | 
						|
bind -r L resize-pane  -R 4
 | 
						|
 | 
						|
bind-key -T root F1 select-window -t 1
 | 
						|
bind-key -T root F2 select-window -t 2
 | 
						|
bind-key -T root F3 select-window -t 3
 | 
						|
bind-key -T root F4 select-window -t 4
 | 
						|
bind-key -T root F5 select-window -t 5
 | 
						|
bind-key -T root F6 select-window -t 6
 | 
						|
bind-key -T root F7 select-window -t 7
 | 
						|
bind-key -T root F8 select-window -t 8
 | 
						|
bind-key -T root F9 select-window -t 9
 | 
						|
 | 
						|
# 1-based indexing makes most sense for keyboard layouts (where number row start at 1)
 | 
						|
set  -g base-index 1
 | 
						|
set  -g pane-base-index 1
 | 
						|
setw -g automatic-rename
 | 
						|
 | 
						|
# statusbar
 | 
						|
set -g status-position top
 | 
						|
set -g status-left-length 20
 | 
						|
set -g window-status-separator ""
 | 
						|
%if "#{==:#{host},desktop-arch}"
 | 
						|
set -g status-left "#[bg=colour235,fg=colour255] #S  #[fg=colour235,bg=default] "
 | 
						|
set -g status-right ""
 | 
						|
%else
 | 
						|
set -g status-left '#h '
 | 
						|
set -g status-right '#(uptime | cut -f 4-5 -d " " | cut -f 1 -d ",") %a%l:%M:%S %p %Y-%m-%d'
 | 
						|
%endif
 | 
						|
 | 
						|
# theming
 | 
						|
%if "#{==:#{host},desktop-arch}"
 | 
						|
set  -g default-terminal "tmux-256color"
 | 
						|
setw -g window-status-style fg=colour244,bg=default
 | 
						|
setw -g window-status-current-style fg=colour232,bg=default,bold
 | 
						|
set  -g message-style fg=colour232,bg=default
 | 
						|
setw -g clock-mode-colour colour235
 | 
						|
set  -g status-style bg=default
 | 
						|
set  -g pane-border-style fg=#cccccc
 | 
						|
set  -g pane-active-border-style fg=#555555
 | 
						|
set  -g message-style bg=#cccccc,fg=#000000
 | 
						|
%endif
 | 
						|
 | 
						|
set-hook -g after-new-session 'if -F "#{==:#{session_name},ssh}" "source ${XDG_CONFIG_HOME}/tmux/hooks/tmux.ssh.conf" "source ${XDG_CONFIG_HOME}/tmux/hooks/tmux.regular.conf"'
 | 
						|
 | 
						|
# Vi copypaste mode
 | 
						|
if-shell "test '\( #{$TMUX_VERSION_MAJOR} -eq 2 -a #{$TMUX_VERSION_MINOR} -ge 4 \)'" 'bind-key -Tcopy-mode-vi v send -X begin-selection; bind-key -Tcopy-mode-vi y send -X copy-selection-and-cancel'
 | 
						|
if-shell '\( #{$TMUX_VERSION_MAJOR} -eq 2 -a #{$TMUX_VERSION_MINOR} -lt 4\) -o #{$TMUX_VERSION_MAJOR} -le 1' 'bind-key -t vi-copy v begin-selection; bind-key -t vi-copy y copy-selection'
 | 
						|
if-shell '\( #{$TMUX_VERSION_MAJOR} -eq 2 -a #{$TMUX_VERSION_MINOR} -lt 2\) -o #{$TMUX_VERSION_MAJOR} -le 1' 'set-option -g status-utf8 on'
 |