117 lines
3.6 KiB
Bash
117 lines
3.6 KiB
Bash
# tmux config - Catppuccin Macchiato theme
|
|
# Minimal but powerful setup
|
|
|
|
# ─────────────────────────────────────────────────────────────
|
|
# General Settings
|
|
# ─────────────────────────────────────────────────────────────
|
|
|
|
# Change prefix from C-b to C-a (easier to reach)
|
|
unbind C-b
|
|
set -g prefix C-a
|
|
bind C-a send-prefix
|
|
|
|
# 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
|
|
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
|
|
|
|
# ─────────────────────────────────────────────────────────────
|
|
# 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"
|