X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=.tmux.conf;h=ef1626023fbafbdaed5a5fe6555dd665e0691406;hb=44322e6673eb383ccd1e8eec1a0f5fdeaa9e3ce1;hp=009d69ffb4417364b1571873d605abc11f35a178;hpb=f593d3940a0d0bf6ec9e849a63691c100915a1b5;p=dotfiles.git diff --git a/.tmux.conf b/.tmux.conf index 009d69f..ef16260 100644 --- a/.tmux.conf +++ b/.tmux.conf @@ -4,13 +4,13 @@ set-option -g pane-base-index 1 # Renumber windows sequentially after closing any of them set-option -g renumber-windows on -# Attempt to set the client terminal title -set-option -g set-titles on -# Terminal emulator window title -set -g set-titles-string 'tmux #S:#I.#P [ #W ]' - +# Keyboard +set-window-option -g mode-keys vi # Pass [Ctrl]+[PgUp/PgDn] set-window-option -g xterm-keys on +# Don't wait for [Esc] to allow fast switching from insert mode to normal in vim +# Set (and export) environment variable SLOWTERM to override. +if-shell "test -z $SLOWTERM" "set-option -gs escape-time 0" # Mouse set-window-option -g mode-mouse on @@ -28,18 +28,76 @@ set-window-option -g aggressive-resize on set-option -g visual-activity on set-window-option -g monitor-activity on -# Soften status bar color from black on harsh green to black on cyan -set-option -g status-fg black -set-option -g status-bg cyan - # Clock color set-window-option -g clock-mode-colour black +# Attempt to set the client terminal title +set-option -g set-titles on +# Terminal emulator window title +set-option -g set-titles-string 'tmux #S.#I.#P #T' # session, window number, pane number, title + +set-option -g message-style bg=black,fg=white + +# Soften status bar color from black on harsh green to black on cyan +set-option -g status-style bg=cyan,fg=black + +set-option -g pane-active-border-style bg=default,fg=red +set-option -g pane-border-style bg=default,fg=blue + +set-window-option -g mode-style bg=black + +set-window-option -g window-status-activity-style fg=yellow +set-window-option -g window-status-bell-style fg=red +set-window-option -g window-status-content-style fg=magenta +set-window-option -g window-status-current-style bg=blue,fg=white +set-window-option -g window-status-style bg=cyan,fg=black + +set-option -g status-left '[#S.#I.#P]' + +# set-option -g status-interval 5 +# set-option -g status-right '%H:%M' +set-option -g status-right '' + # Increase scrollback lines set-option -g history-limit 1000 -# C-b C-a for last-window -bind-key C-a last-window +# Set the command prefix to match GNU screen (CTRL+a) +# set-option -g prefix C-a +# +# Use C-a C-a key to send prefix instead of the default +# unbind-key C-b +# bind-key C-a send-prefix +# +# C-a for last-window +# bind-key C-a last-window + +# R to reload config without restart +bind-key R source-file ~/.tmux.conf \; display "Configuration reloaded!" + +# vim-like navigation +unbind-key h; bind-key h select-pane -L +unbind-key j; bind-key j select-pane -D +unbind-key k; bind-key k select-pane -U +unbind-key l; bind-key l select-pane -R + +bind H resize-pane -L 10 +bind J resize-pane -D 10 +bind K resize-pane -U 10 +bind L resize-pane -R 10 + +bind -r C-h select-window -t :- +bind -r C-l select-window -t :+ + +# Use vertical and horizontal chars to split the screen +bind-key | split-window -h +bind-key - split-window -v + +bind-key -t vi-copy v begin-selection +bind-key -t vi-copy y copy-selection +bind-key -t vi-copy r rectangle-toggle +bind P paste-buffer -# C-b R to reload config without restart -bind-key R source-file ~/.tmux.conf +# Copy tmux copy buffer to X clipboard +bind -t vi-copy C-y copy-pipe "xclip -i" +# Copy X clipboard to tmux paste buffer +bind C-p run-shell "xclip -o | tmux load-buffer -; tmux paste-buffer"