*ฅ^•ﻌ•^ฅ* ✨✨  HWisnu's blog  ✨✨ о ฅ^•ﻌ•^ฅ

Tmux config

My Tmux config used with Neovim and Yazi.

unbind r
bind r source-file ~/.tmux.conf

set -g prefix C-s
set -g mouse on
set -g @autosave 1
set -g history-limit 50000
set -g display-time 4000

# Start windows and panes at 1, not 0
set -g base-index 1
set -g pane-base-index 1
set-window-option -g pane-base-index 1
set-option -g renumber-windows on

bind-key h select-pane -L
bind-key j select-pane -D
bind-key k select-pane -U
bind-key l select-pane -R

set-option -g status-position top

# Set vi-mode
set-window-option -g mode-keys vi
# Keybindings
# set -g @yank_selection 'primary'
bind-key -T copy-mode-vi v send-keys -X begin-selection
bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle
bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel

# Open panes in current working directory
bind-key \\ split-window -h -c "#{pane_current_path}"
bind-key - split-window -v -c "#{pane_current_path}"
unbind '"'
unbind %


# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'catppuccin/tmux#latest'
set -g @plugin 'tmux-plugins/tmux-yank'
set -g @plugin 'alexwforsythe/tmux-which-key'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @plugin 'sainnhe/tmux-fzf'
set -g @plugin 'omerxx/tmux-sessionx'

## SessionX
set -g @sessionx-bind 'q'

## Catppuccin-tmux config personal custom
set -g @catppuccin_window_left_separator " █"
set -g @catppuccin_window_right_separator "█ "
set -g @catppuccin_window_number_position "right"
set -g @catppuccin_window_middle_separator " | "

set -g @catppuccin_window_default_fill "none"
set -g @catppuccin_window_current_fill "all"
set -g @catppuccin_window_status "no"

set -g @catppuccin_status_default "on"
set -g @catppuccin_status_modules_left "host"
set -g @catppuccin_status_modules_right "application session"
set -g @catppuccin_status_left_separator "█"
set -g @catppuccin_status_right_separator "█"
set -g @catppuccin_status_fill "icon"
set -g @catppuccin_status_connect_separator "no"

# set -g @catppuccin_directory_text "#{pane_current_path}"
set -g @catppuccin_directory_text "#( echo \#{pane_current_path} | sed \"s|$HOME|~|\" | xargs basename )"
set -g @catppuccin_window_default_text "#( echo \#{pane_current_path} | sed \"s|$HOME|~|\" | xargs basename )"


# Other examples:
# set -g @plugin 'github_username/plugin_name'
# set -g @plugin 'github_username/plugin_name#branch'
# set -g @plugin 'git@github.com:user/plugin'
# set -g @plugin 'git@bitbucket.com:user/plugin'

# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'
run-shell ~/clone/path/yank.tmux
run-shell ~/clone/path/resurrect.tmux
run-shell ~/clone/path/continuum.tmux

Only install the plugins you need. More plugins does not mean better user experience, on the contrary it will make things complicated and far less enjoyable. KISS! keep it simple stupid

#CLI #multiplexer #programming #terminal #tmux