dotfiles/dot_config/tmux/tmux.conf

123 lines
3.8 KiB
Text
Raw Normal View History

2026-01-28 17:46:39 +00:00
# tmux config - Catppuccin Macchiato theme
# Minimal but powerful setup
# ─────────────────────────────────────────────────────────────
# General Settings
# ─────────────────────────────────────────────────────────────
# Change prefix from C-b to C-s
2026-01-28 17:46:39 +00:00
unbind C-b
set -g prefix C-s
bind C-s send-prefix
2026-01-28 17:46:39 +00:00
# Enable true color support
set -g default-terminal "tmux-256color"
set -ga terminal-overrides ",*256col*:Tc"
set -ga terminal-overrides ",xterm-256color:Tc"
# Enable mouse support
set -g mouse on
# Start windows and panes at 1, not 0
set -g base-index 1
setw -g pane-base-index 1
# Renumber windows when one is closed
set -g renumber-windows on
# Increase scrollback buffer
set -g history-limit 10000
# Reduce escape time (important for Helix/vim)
set -sg escape-time 0
# Enable focus events
set -g focus-events on
# ─────────────────────────────────────────────────────────────
# Key Bindings
# ─────────────────────────────────────────────────────────────
# Reload config
bind r source-file ~/.config/tmux/tmux.conf \; display "Config reloaded!"
# Split panes with | and -
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
unbind '"'
unbind %
# Vim-style pane navigation
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
# Resize panes with H/J/K/L
bind -r H resize-pane -L 5
bind -r J resize-pane -D 5
bind -r K resize-pane -U 5
bind -r L resize-pane -R 5
# New window in current path
bind c new-window -c "#{pane_current_path}"
# Quick window switching (no prefix needed)
bind -n C-n next-window
bind -n C-p previous-window
2026-01-28 17:46:39 +00:00
bind -n M-1 select-window -t 1
bind -n M-2 select-window -t 2
bind -n M-3 select-window -t 3
bind -n M-4 select-window -t 4
bind -n M-5 select-window -t 5
# Close window
bind x confirm-before -p "Kill window #W? (y/n)" kill-window
2026-01-28 17:46:39 +00:00
# ─────────────────────────────────────────────────────────────
# Catppuccin Macchiato Colors
# ─────────────────────────────────────────────────────────────
# Palette
# Base: #24273a
# Surface0: #363a4f
# Surface1: #494d64
# Text: #cad3f5
# Subtext0: #a5adcb
# Mauve: #c6a0f6
# Blue: #8aadf4
# Green: #a6da95
# Yellow: #eed49f
# Red: #ed8796
# Status bar
set -g status-position bottom
set -g status-style "bg=#24273a,fg=#cad3f5"
set -g status-left-length 30
set -g status-right-length 50
# Status left: session name
set -g status-left "#[bg=#c6a0f6,fg=#24273a,bold] #S #[bg=#24273a] "
# Status right: date and time
set -g status-right "#[fg=#a5adcb]%Y-%m-%d #[fg=#cad3f5]%H:%M #[bg=#8aadf4,fg=#24273a,bold] #h "
# Window status
set -g window-status-format "#[fg=#a5adcb] #I:#W "
set -g window-status-current-format "#[bg=#363a4f,fg=#8aadf4,bold] #I:#W "
set -g window-status-separator ""
# Pane borders
set -g pane-border-style "fg=#363a4f"
set -g pane-active-border-style "fg=#c6a0f6"
# Message style
set -g message-style "bg=#363a4f,fg=#cad3f5"
set -g message-command-style "bg=#363a4f,fg=#cad3f5"
# Mode style (copy mode, etc.)
setw -g mode-style "bg=#363a4f,fg=#cad3f5"
# Clock
setw -g clock-mode-colour "#c6a0f6"