Improved tmux config and pane movement/resizing

This commit is contained in:
2025-05-25 18:05:27 +02:00
parent 994c0ac0b8
commit 64637b19ea
3 changed files with 22 additions and 35 deletions

View File

@@ -1,12 +1,12 @@
# Plugins
set -g @plugin 'mrjones2014/smart-splits.nvim'
set -g @plugin 'tmux-plugins/tmux-sensible'
# Settings
set -g default-terminal "xterm-256color"
set -ag terminal-overrides ",xterm-256color:RGB"
setw -g monitor-activity on
setw -g aggressive-resize on
setw -g automatic-rename on
set -s escape-time 0
set-window-option -g xterm-keys on
set-option -g focus-events on
# Setup vi-mode with better keybindings
# TODO: Escape does not work properly for leaving
@@ -20,29 +20,27 @@ unbind C-b
set -g prefix C-a
# Improve navigation between tmux and nvim
# TODO: Disable pane selection wrap
bind-key -n M-h if -F "#{@pane-is-vim}" 'send-keys M-h' "run '#{select_pane_no_wrap} L'"
bind-key -n M-j if -F "#{@pane-is-vim}" 'send-keys M-j' "run '#{select_pane_no_wrap} D'"
bind-key -n M-k if -F "#{@pane-is-vim}" 'send-keys M-k' "run '#{select_pane_no_wrap} U'"
bind-key -n M-l if -F "#{@pane-is-vim}" 'send-keys M-l' "run '#{select_pane_no_wrap} R'"
set -g @smart-splits_no_wrap '' # to disable wrapping. (any value disables wrapping)
bind-key -T copy-mode-vi 'M-h' select-pane -L
bind-key -T copy-mode-vi 'M-j' select-pane -D
bind-key -T copy-mode-vi 'M-k' select-pane -U
bind-key -T copy-mode-vi 'M-l' select-pane -R
set -g @smart-splits_move_left_key 'M-h' # key-mapping for navigation.
set -g @smart-splits_move_down_key 'M-j' # --"--
set -g @smart-splits_move_up_key 'M-k' # --"--
set -g @smart-splits_move_right_key 'M-l' # --"--
set -g @smart-splits_resize_left_key 'M-left' # key-mapping for resizing.
set -g @smart-splits_resize_down_key 'M-down' # --"--
set -g @smart-splits_resize_up_key 'M-up' # --"--
set -g @smart-splits_resize_right_key 'M-right' # --"--
# Custom keybinds
bind '"' split-window -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"
bind s split-window -c "#{pane_current_path}"
bind v split-window -h -c "#{pane_current_path}"
bind -n C-j new-window -c "#{pane_current_path}"
bind -n C-h prev
bind -n C-l next
bind -n C-M-l swap-window -t +1 \; next
bind -n C-M-h swap-window -t -1 \; prev
# Keybind for reloading config
bind r source-file $DOTFILES/tmux/dot-tmux.conf \; display-message "Config reloaded..."
bind -T root F12 \
set prefix None \;\
set key-table off \;\
@@ -59,6 +57,4 @@ wg_is_keys_off="#([ $(tmux show-option -qv key-table) = 'off' ] && echo 'TRUE' )
# Load theme
source-file "$DOTFILES/tmux/gruvbox.conf"
set -g @plugin "dalejung/tmux-select-pane-no-wrap"
run "$DOTFILES/tmux/tpm/tpm"