111 lines
2.8 KiB
Plaintext
111 lines
2.8 KiB
Plaintext
# Remap <C-b> to <C-t>.
|
|
unbind-key C-b
|
|
set-option -g prefix C-t
|
|
bind-key C-t send-prefix
|
|
|
|
# Disable escape delay.
|
|
set -sg escape-time 0
|
|
|
|
# Reload config.
|
|
bind -n M-r source-file /etc/tmux.conf
|
|
|
|
# Scroll.
|
|
bind -n M-p copy-mode -u
|
|
bind -n M-n send-keys Pagedown
|
|
|
|
# Copy mode.
|
|
setw -g mode-keys vi
|
|
bind -n M-v copy-mode
|
|
bind -n M-P choose-buffer;
|
|
bind -T copy-mode-vi v send -X begin-selection
|
|
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "pbcopy"
|
|
|
|
# Selection style.
|
|
set -g mode-style "fg=#$bg_3 bg=#$accent bold"
|
|
|
|
# Pane style.
|
|
set -g pane-border-style "fg=#$bg_1"
|
|
set -g pane-active-border-style "fg=#$bg_1"
|
|
|
|
# Remap split keys.
|
|
bind -n M-\\ split-window -h -c "#{pane_current_path}"
|
|
bind -n M-- split-window -v -c "#{pane_current_path}"
|
|
bind -n M-= select-layout tiled
|
|
bind -n M-k resize-pane -U 1
|
|
bind -n M-j resize-pane -D 1
|
|
bind -n M-h resize-pane -L 1
|
|
bind -n M-l resize-pane -R 1
|
|
bind -n M-A swap-pane -U
|
|
bind -n M-D swap-pane -D
|
|
unbind '"'
|
|
unbind %
|
|
|
|
# Swith panes with alt + hjkl.
|
|
bind -n M-a select-pane -L
|
|
bind -n M-d select-pane -R
|
|
bind -n M-w select-pane -U
|
|
bind -n M-s select-pane -D
|
|
|
|
# Close pane.
|
|
bind -n M-c kill-pane
|
|
bind -n M-C kill-pane -a
|
|
|
|
# Detach.
|
|
bind -n M-z detach-client
|
|
bind -n M-Z detach-client -a
|
|
|
|
# Switch sessions.
|
|
bind -n M-9 switch-client -p
|
|
bind -n M-0 switch-client -n
|
|
bind -n M-g choose-session
|
|
|
|
# Resize to smallest client.
|
|
set -g window-size smallest
|
|
|
|
# Statusbar.
|
|
bind-key -n M-F set-option -g status;
|
|
bind-key -n M-f run-shell 'tmux_script togglestatusbar'
|
|
set -g status-interval 2
|
|
set -g status-position bottom
|
|
set -g status-justify left
|
|
set -g status-style "bg=#$bg_2 fg=#$fg_3"
|
|
|
|
set -g status-left "#[bold,bg=#$fg_3,fg=#$bg_3] #H-#S #(tmux_script client_count #S)#[bg=#$bg_2,fg=#$fg_3]"
|
|
set -g status-left-length 50
|
|
set -g status-right-length 50
|
|
set -g status-right "#(tmux_script statusbar) %d %a #[fg=#$fg_3]#[bold,bg=#$fg_3,fg=#$bg_3] %H:%M "
|
|
|
|
set-window-option -g window-status-separator ""
|
|
|
|
setw -g window-status-current-style "fg=#$fg bold"
|
|
setw -g window-status-current-format " #W "
|
|
|
|
setw -g window-status-style ""
|
|
setw -g window-status-format " #W "
|
|
|
|
set-window-option -g visual-bell off
|
|
setw -g window-status-bell-style "bold blink"
|
|
|
|
# Create new window.
|
|
bind -n M-Escape new-window -c "#{pane_current_path}"
|
|
bind -n M-t new-window -c "#{pane_current_path}" # NOTE: for compatibility reasons.
|
|
|
|
# Close window.
|
|
bind -n M-x kill-window
|
|
bind -n M-X kill-window -a
|
|
|
|
# Switch window.
|
|
bind -n M-e next-window
|
|
bind -n M-q previous-window
|
|
|
|
# Move window.
|
|
bind -n M-E swap-window -t +1\; select-window -t +1
|
|
bind -n M-Q swap-window -t -1\; select-window -t -1
|
|
|
|
# Env.
|
|
set-option -g default-terminal "tmux-256color"
|
|
set-option -g focus-events on
|
|
set-option -sa terminal-features "RGB"
|
|
set-option -g update-environment "SSH_CLIENT SSH_TTY DOCKER_CONFIG DOCKER_HOST DISPLAY XAUTHORITY BASH_PATH"
|
|
|