93 lines
4.6 KiB
Bash
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"
|