-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.tmux.conf
More file actions
81 lines (63 loc) · 3.11 KB
/
Copy path.tmux.conf
File metadata and controls
81 lines (63 loc) · 3.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# ─── General ────────────────────────────────────────────────────────
set -g default-terminal "tmux-256color"
set -ag terminal-overrides ",xterm-256color:RGB"
set -g mouse on
set -g base-index 1
set -g pane-base-index 1
set -g renumber-windows on
set -g history-limit 50000
set -g escape-time 0
set -g focus-events on
set -g set-clipboard on
set -g aggressive-resize on
set -g detach-on-destroy off
# ─── Pane controls ──────────────────────────────────────────────────
# @key prefix+n Split pane horizontal
bind n split-window -v -c "#{pane_current_path}"
# @key prefix+v Split pane vertical
bind v split-window -h -c "#{pane_current_path}"
# @key prefix+x Kill pane
bind x kill-pane
# ─── Window controls ────────────────────────────────────────────────
# @key prefix+c New window
bind c new-window -c "#{pane_current_path}"
bind k kill-window
# @key prefix+r Rename window
bind r command-prompt "rename-window '%%'"
# ─── Session controls ───────────────────────────────────────────────
# @key prefix+C New session
bind C new-session
bind K kill-session
# @key prefix+R Rename session
bind R command-prompt "rename-session '%%'"
# @key prefix+p Previous session
bind p switch-client -p
# @key prefix+N Next session
bind N switch-client -n
# ─── Theme ──────────────────────────────────────────────────────────
# Status bar position
set -g status-position top
set -g status-interval 5
# Colors
set -g status-style "bg=default,fg=#565f89"
set -g pane-border-style "fg=#3b4261"
set -g pane-active-border-style "fg=#7aa2f7"
set -g message-style "bg=#7aa2f7,fg=#1a1b26"
# Left: all sessions (current one highlighted) + prefix indicator
# Per-session status-left is set by tmux-sessions.sh via hooks below.
set -g status-left-length 60
set-hook -g session-created 'run-shell "~/.dotfiles/tmux-sessions.sh"'
set-hook -g session-closed 'run-shell "~/.dotfiles/tmux-sessions.sh"'
set-hook -g client-session-changed 'run-shell "~/.dotfiles/tmux-sessions.sh"'
set-hook -g after-new-session 'run-shell "~/.dotfiles/tmux-sessions.sh"'
# Right: hostname
set -g status-right-length 30
set -g status-right "#[fg=#565f89]#H "
# Window tabs
set -g window-status-format "#[fg=#565f89] #I:#W "
set -g window-status-current-format "#[fg=#7aa2f7,bold] #I:#W "
set -g window-status-separator ""
# ─── Platform ───────────────────────────────────────────────────────
if-shell "uname | grep -q Darwin" \
"source-file ~/.dotfiles/.tmux-macos.conf" \
"source-file ~/.dotfiles/.tmux-linux.conf"