################################################################################ # Plugins # ################################################################################ set -g @plugin 'tmux-plugins/tpm' set -g @plugin 'tmux-plugins/tmux-sensible' set -g @plugin 'tmux-plugins/tmux-resurrect' set -g @plugin 'catppuccin/tmux' ################################################################################ # General # ################################################################################ # Make window index start at 1. set -g base-index 1 # Make pane index start at 1. setw -g pane-base-index 1 # Automatically renumber windows when one is deleted. set -g renumber-windows on set -g default-terminal "screen-256color" ################################################################################ # Key Mappings # ################################################################################ # Remap prefix. unbind C-b set-option -g prefix C-a bind C-a send-prefix # Vi copy mode. setw -g mode-keys vi unbind [ bind Escape copy-mode unbind p bind p paste-buffer bind -T copy-mode-vi 'v' send -X begin-selection bind -T copy-mode-vi 'y' send -X copy-selection-and-cancel # Better split commands. bind | split-window -h -c "#{pane_current_path}" # cmd-| in iTerm2 bind - split-window -v -c "#{pane_current_path}" # cmd-- in iTerm2 unbind '"' unbind % # Vi-like resizing. bind j resize-pane -D # cmd-j in iTerm2 bind k resize-pane -U # cmd-k in iTerm2 bind h resize-pane -L # cmd-h in iTerm2 bind l resize-pane -R # cmd-l in iTerm2 # Easy reload config. bind r source-file ~/.tmux.conf # Popup. unbind i bind i if-shell -F '#{==:#{session_name},scratch}' { # cmd-i in iTerm2 detach-client } { if-shell "tmux has-session -t scratch" { display-popup -E -h 90% -w 90% "tmux attach-session -t scratch" } { display-popup -E -h 90% -w 90% "tmux new-session -d -c '#{pane_current_path}' -s scratch && tmux set-option -t scratch status off && tmux attach-session -t scratch" } } ################################################################################ # Catppuccin # ################################################################################ # catppuccin set -g @catppuccin_flavour 'mocha' set -g @catppuccin_window_left_separator " " set -g @catppuccin_window_right_separator "" set -g @catppuccin_window_middle_separator "█ " set -g @catppuccin_window_number_position "left" set -g @catppuccin_window_default_fill "number" set -g @catppuccin_window_default_text "#W" set -g @catppuccin_window_current_fill "number" set -g @catppuccin_window_current_text "#W" set -g @catppuccin_status_modules_left "directory" set -g @catppuccin_status_modules_right "user host session date_time" set -g @catppuccin_status_left_separator " " set -g @catppuccin_status_right_separator "" set -g @catppuccin_status_right_separator_inverse "no" set -g @catppuccin_status_fill "icon" set -g @catppuccin_status_connect_separator "no" set -g @catppuccin_directory_text "#{pane_current_path}" set -g @catppuccin_date_time_text "%b %d • %I:%M %p" ################################################################################ # tpm # ################################################################################ # Install tpm if not already installed. if "test ! -d ~/.tmux/plugins/tpm" \ "run 'git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm && ~/.tmux/plugins/tpm/bin/install_plugins'" # Init tmux plugin manager. # Must be very last line!! run '~/.tmux/plugins/tpm/tpm'