neovim-ide/dotfiles/.config/tmux/tmux.conf

93 lines
4.6 KiB
Bash

# ╔══════════════════════════════════════════════════════════════════╗
# ║ arch-dev :: tmux.conf (desktop) ║
# ║ Kanagawa Wave · 256-color · Ctrl+Space prefix · vim-nav ║
# ╚══════════════════════════════════════════════════════════════════╝
# ── Prefix ────────────────────────────────────────────────────────────────────
unbind C-b
set -g prefix C-Space
bind C-Space send-prefix
# ── Core behavior ─────────────────────────────────────────────────────────────
set -g mouse on
set -g base-index 1
setw -g pane-base-index 1
set -g renumber-windows on
set -sg escape-time 5
set -g history-limit 50000
set -g focus-events on
set -g display-time 2000
# ── 256 color (no truecolor — Termius mangles it as purple) ───────────────────
set -g default-terminal "tmux-256color"
# ── Clipboard (OSC 52) ────────────────────────────────────────────────────────
set -g set-clipboard on
# ── Splits in cwd ─────────────────────────────────────────────────────────────
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
bind c new-window -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
# ── Alt+number 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
# ── Pane resize ───────────────────────────────────────────────────────────────
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
# ── Zoom & scroll mode ────────────────────────────────────────────────────────
bind z resize-pane -Z
bind Enter copy-mode
bind -T copy-mode-vi v send -X begin-selection
bind -T copy-mode-vi y send -X copy-selection-and-cancel
setw -g mode-keys vi
# ── Reload & detach ───────────────────────────────────────────────────────────
bind r source-file ~/.tmux.conf \; display "↻ tmux reloaded"
bind d detach-client
# ── Status bar: 256-color Kanagawa Wave approximations ────────────────────────
# 234=sumiInk0, 236=sumiInk3, 237=waveBlue1, 110=crystalBlue
# 173=boatYellow2, 106=springGreen, 242=fujiGray
# 250=fujiWhite, 139=oniViolet
set -g status on
set -g status-interval 5
set -g status-position bottom
set -g status-style "bg=colour234,fg=colour250"
set -g status-left-length 40
set -g status-left \
"#[bold,fg=colour139,bg=colour234] arch-dev#[fg=colour236] │ #[default]"
set -g status-right-length 60
set -g status-right \
"#[fg=colour106]%H:%M #[fg=colour236]│ #[fg=colour110]%a %d %b"
# Window tabs
set -g window-status-format " #I #W "
set -g window-status-current-format "#[bold,fg=colour173,bg=colour237] #I #W #[default]"
set -g window-status-style "fg=colour242"
set -g window-status-current-style "fg=colour173,bg=colour237"
# Pane borders
set -g pane-border-style "fg=colour236"
set -g pane-active-border-style "fg=colour110"
# Message bar
set -g message-style "bg=colour237,fg=colour250,bold"