From 453b0e6b93d2109840746621d3a6f8314fdf59bd Mon Sep 17 00:00:00 2001 From: Fernando Schauenburg Date: Sat, 19 Feb 2022 01:08:46 +0100 Subject: [PATCH] tmux: add new key bindings to manage windows/panes --- config/tmux/tmux.conf | 64 ++++++++++++++++++++++++++----------------- 1 file changed, 39 insertions(+), 25 deletions(-) diff --git a/config/tmux/tmux.conf b/config/tmux/tmux.conf index f53a324..a5edc67 100644 --- a/config/tmux/tmux.conf +++ b/config/tmux/tmux.conf @@ -1,41 +1,63 @@ +set -g prefix C-space + # # Key bindings # -set -g prefix C-space -bind C-space send-prefix +bind C-space send-prefix +bind r source-file "$XDG_CONFIG_HOME/tmux/tmux.conf" \; display "RELOADED" -# Open new windows/panes with the path in current pane +# Window/pane management (new windows/panes use the path in current pane) bind c new-window -c '#{pane_current_path}' bind | split-window -h -c '#{pane_current_path}' bind - split-window -v -c '#{pane_current_path}' bind x kill-pane bind X kill-window -bind r source-file "$XDG_CONFIG_HOME/tmux/tmux.conf" -bind . next-window -bind , previous-window bind n command-prompt 'rename-window %%' bind N command-prompt 'rename-session %%' + +# Move around +bind . next-window +bind , previous-window bind h select-pane -L bind j select-pane -D bind k select-pane -U bind l select-pane -R + +# Resize panes bind -r C-h resize-pane -L 5 bind -r C-j resize-pane -D 5 bind -r C-k resize-pane -U 5 bind -r C-l resize-pane -R 5 -unbind-key -T copy-mode-vi MouseDragEnd1Pane # Stay in copy mode on drag end +# Arrangement of panes +bind b break-pane \; select-pane -m \; last-window +bind J join-pane -v +bind L join-pane -h + +# Choosing layouts +bind -r C-o rotate-window +bind -r C-i rotate-window -D + +bind -r space next-layout +bind C-m set main-pane-width 50% \; select-layout main-vertical +bind C-e select-layout even-horizontal +bind C-t select-layout tiled + +# Stay in copy mode on drag end +unbind-key -T copy-mode-vi MouseDragEnd1Pane # # General # set -gs escape-time 50 # avoid delays with ESC in vim +set -gs repeat-time 1000 # allow 1 second for multiple commands set -g base-index 1 # start window numbering from 1 set -g history-limit 20000 # remember longer history setw -g automatic-rename on # automatically rename windows setw -g mouse on # enable mouse support setw -g pane-base-index 1 # start pane numbering from 1 + # Set $TERM and force 256 colors. # https://github.com/tmux/tmux/wiki/FAQ#how-do-i-use-a-256-colour-terminal set -g default-terminal 'screen-256color' @@ -64,24 +86,16 @@ set -g status-right-length 48 set -g status-justify centre # Color definitions -# SOLARIZED TMUX -# --------- -------- -# Base03 colour8 -# Base02 colour0 -# Base01 colour10 -# Base00 colour11 -# Base0 colour12 -# Base1 colour14 -# Base2 colour7 -# Base3 colour15 -# Yellow colour3 -# Orange colour9 -# Red colour1 -# Magenta colour5 -# Violet colour13 -# Blue colour4 -# Cyan colour6 -# Green colour2 +# SOLARIZED TMUX SOLARIZED TMUX +# --------- -------- --------- -------- +# Base03 colour8 Yellow colour3 +# Base02 colour0 Orange colour9 +# Base01 colour10 Red colour1 +# Base00 colour11 Magenta colour5 +# Base0 colour12 Violet colour13 +# Base1 colour14 Blue colour4 +# Base2 colour7 Cyan colour6 +# Base3 colour15 Green colour2 set -g status-left "\ #{?client_prefix,#[fg=colour1],#[fg=colour10]}\