# Send prefix - Ctrl+a set-option -g prefix C-a unbind-key C-a bind-key C-a send-prefix # Esc fast set -s escape-time 0 # For gapless window numbers set-option -g renumber-windows on # Use Ctrl+[hjkl] to switch panes bind h select-pane -L bind j select-pane -D bind k select-pane -U bind l select-pane -R # -h|l|Left|Right - move windows bind-key h previous-window bind-key Left previous-window bind-key l next-window bind-key Right next-window # Mouse mode setw -g mouse on # Set easier window split keys bind-key | split-window -h -c "#{pane_current_path}" bind-key \\ split-window -h -c "#{pane_current_path}" bind-key - split-window -v -c "#{pane_current_path}" # close window with bind-key q kill-window # refresh window with bind-key e respawn-window -k -c "#{pane_current_path}" # -j/k for up down (useful to move between history commands) bind-key k send-keys Up bind-key j send-keys Down # Easy config reload bind-key r source-file ~/.config/tmux/tmux.conf \; display-message "~/.config/tmux/.tmux.conf reloaded." # Lookup the cheat sheet -i bind-key i run-shell "tmux neww -n '🏳️ CHEATER\! 😎' ~/.shellconfig/cheat.sh" # Open Workspace bind-key o run-shell "tmux neww -n '🖥 Workspace Manager' ~/.shellconfig/workspaces/open_workspace.sh" # Add/Save Workspace bind-key a run-shell "tmux neww -n '🖥 Workspace Manager' 'cd #{pane_current_path} && ~/.shellconfig/workspaces/add_workspace.sh'" # Delete (x) Workspace bind-key x run-shell "tmux neww -n '🖥 Workspace Manager' ~/.shellconfig/workspaces/delete_workspace.sh" # Change git branches fast -b #bind-key b send-keys "gitB" C-m bind-key b run-shell "tmux neww -n ' Git Branches' 'cd #{pane_current_path} && (zsh -c \"source ~/.shellconfig/common.sh && gitB\" || sleep 1)' " # Git add + fzf bind-key g run-shell "tmux neww -n ' 🞥 Git Add' 'cd #{pane_current_path} && (git ls-files -m -o --exclude-standard | fzf -m --print0 --reverse --header \"🞥 Select files to stage. use [tab] for multi selection\" --preview \"bat --diff --color=always --style=numbers,changes,grid {}\" | xargs -0 -o -t git add)'" # Get weather (Prefix-!) bind-key ! run-shell "tmux neww -n '🌡️ Weather Peek' '(echo \"Fetching Weather...\" && curl -s \"https://wttr.in/?lang=en\") | bat --paging always -p'" ############################ # Themes ########################### # Nord theme # set -g @plugin "arcticicestudio/nord-tmux" # Gruvbox Theme # set -g @plugin 'egel/tmux-gruvbox' # set -g @tmux-gruvbox 'dark' # or 'light' ############################ # Plugins ########################### # Tmux yank (For clipboard integration) set -g @plugin 'tmux-plugins/tmux-yank' # Mouse select to clipboard set -g @yank_selection_mouse 'clipboard' # or 'primary' or 'secondary' set -g @plugin 'catppuccin/tmux' # vim set -g @plugin 'christoomey/vim-tmux-navigator' # Buffer line size (History) set -g history-limit 5000 # Use Ctrl-K to clear buffer bind -n C-k clear-history # Default Colors set-option -sa terminal-overrides ",xterm*:Tc" # Home/End support bind -n End send-key C-e bind -n Home send-key C-a set -g @catppuccin_flavour 'macchiato' # latte, frappe, macchiato, 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 "right" 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_right "directory user host session" 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_host_icon "" set -g @catppuccin_directory_text "#{pane_current_path}" # Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) run '~/.config/tmux/plugins/tpm/tpm' # set copy mode vim set-window-option -g mode-keys vi # keybindings 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 # Enter/Exit compy mode bind-key v copy-mode bind-key -T copy-mode-vi Escape send-keys -X cancel