diff --git a/config/tmux/tmux.conf b/config/tmux/tmux.conf index aebf41a2..1dd3df30 100644 --- a/config/tmux/tmux.conf +++ b/config/tmux/tmux.conf @@ -3,6 +3,52 @@ set -g prefix C-Space set -g prefix2 C-b bind C-Space send-prefix +# Reload config +bind q source-file ~/.config/tmux/tmux.conf + +# Vi mode for copy +setw -g mode-keys vi +bind -T copy-mode-vi v send -X begin-selection +bind -T copy-mode-vi y send -X copy-selection-and-cancel + +# Pane Controls +bind h split-window -h -c "#{pane_current_path}" +bind v split-window -v -c "#{pane_current_path}" +bind -n C-M-PageUp split-window -h -c "#{pane_current_path}" +bind -n C-M-PageDown split-window -v -c "#{pane_current_path}" +bind -n C-M-Home split-window -h -c "#{pane_current_path}" +bind -n C-M-End kill-pane + +bind -n C-M-Left select-pane -L +bind -n C-M-Right select-pane -R +bind -n C-M-Up select-pane -U +bind -n C-M-Down select-pane -D + +bind -n C-M-S-Left resize-pane -L 5 +bind -n C-M-S-Down resize-pane -D 5 +bind -n C-M-S-Up resize-pane -U 5 +bind -n C-M-S-Right resize-pane -R 5 + +# Window navigation +bind r command-prompt -I "#W" "rename-window -- '%%'" +bind c new-window -c "#{pane_current_path}" +bind x kill-window +bind -n C-S-Home new-window -c "#{pane_current_path}" +bind -n C-S-End kill-window + +bind -n C-S-PageUp next-window +bind -n C-S-PageDown previous-window + +# Session controls +bind R command-prompt -I "#S" "rename-session -- '%%'" +bind C new-session +bind X kill-session +bind -n C-M-S-Home new-session -c "#{pane_current_path}" +bind -n C-M-S-End kill-session + +bind -n C-M-S-PageUp switch-client -p +bind -n C-M-S-PageDown switch-client -n + # General set -g default-terminal "tmux-256color" set -ag terminal-overrides ",*:RGB" @@ -36,46 +82,3 @@ set -g message-style "bg=default,fg=blue" set -g message-command-style "bg=default,fg=blue" set -g mode-style "bg=blue,fg=black" setw -g clock-mode-colour blue - -# Reload config -bind M-r source-file ~/.config/tmux/tmux.conf - -# Rename window / session -bind r command-prompt -I "#W" "rename-window -- '%%'" -bind R command-prompt -I "#S" "rename-session -- '%%'" - -# Vi mode for copy -setw -g mode-keys vi -bind -T copy-mode-vi v send -X begin-selection -bind -T copy-mode-vi y send -X copy-selection-and-cancel - -# Pane resizing -bind -r S-Left resize-pane -L 1 -bind -r S-Down resize-pane -D 1 -bind -r S-Up resize-pane -U 1 -bind -r S-Right resize-pane -R 1 - -# Saner splits that open in the same directory -bind | split-window -h -c "#{pane_current_path}" -bind - split-window -v -c "#{pane_current_path}" - -# New windows in same directory -bind c new-window -c "#{pane_current_path}" - -# Pane navigation -bind -n C-M-Left select-pane -L -bind -n C-M-Right select-pane -R -bind -n C-M-Up select-pane -U -bind -n C-M-Down select-pane -D - -# Window navigation -bind -n C-S-Left previous-window -bind -n C-S-Right next-window - -# Session navigation -bind -n C-S-Up switch-client -n -bind -n C-S-Down switch-client -p - -# Sessions -bind C new-session -bind X kill-session