@heyitsiveen/dotfiles 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +176 -0
- package/dist/index.mjs +1445 -0
- package/dotfiles/macos/.claude/CLAUDE.md +13 -0
- package/dotfiles/macos/.claude/settings.json +38 -0
- package/dotfiles/macos/.claude.json +32 -0
- package/dotfiles/macos/.config/bat/config +27 -0
- package/dotfiles/macos/.config/bat/themes/Vercel.tmTheme +308 -0
- package/dotfiles/macos/.config/bat/themes/Vesper.tmTheme +357 -0
- package/dotfiles/macos/.config/btop/btop.conf +272 -0
- package/dotfiles/macos/.config/btop/themes/Solarized_Dark.theme +89 -0
- package/dotfiles/macos/.config/btop/themes/Vercel.theme +89 -0
- package/dotfiles/macos/.config/btop/themes/Vesper.theme +89 -0
- package/dotfiles/macos/.config/fish/conf.d/00-platform.fish +19 -0
- package/dotfiles/macos/.config/fish/conf.d/10-homebrew.fish +33 -0
- package/dotfiles/macos/.config/fish/conf.d/20-environment.fish +12 -0
- package/dotfiles/macos/.config/fish/conf.d/30-aliases.fish +52 -0
- package/dotfiles/macos/.config/fish/conf.d/40-fzf.fish +120 -0
- package/dotfiles/macos/.config/fish/conf.d/50-tools.fish +51 -0
- package/dotfiles/macos/.config/fish/conf.d/60-tmux.fish +19 -0
- package/dotfiles/macos/.config/fish/conf.d/70-tide.fish +31 -0
- package/dotfiles/macos/.config/fish/config.fish +30 -0
- package/dotfiles/macos/.config/fish/functions/_tide_palette_heyitsiveen.fish +101 -0
- package/dotfiles/macos/.config/fish/functions/_tide_palette_vercel.fish +94 -0
- package/dotfiles/macos/.config/fish/functions/_tide_palette_vesper.fish +100 -0
- package/dotfiles/macos/.config/fish/functions/backup.fish +43 -0
- package/dotfiles/macos/.config/fish/functions/fish_greeting.fish +5 -0
- package/dotfiles/macos/.config/fish/functions/reload-fish.fish +4 -0
- package/dotfiles/macos/.config/fish/functions/tide_palette.fish +21 -0
- package/dotfiles/macos/.config/ghostty/config +46 -0
- package/dotfiles/macos/.config/nvim/.neoconf.json +15 -0
- package/dotfiles/macos/.config/nvim/init.lua +2 -0
- package/dotfiles/macos/.config/nvim/lazy-lock.json +42 -0
- package/dotfiles/macos/.config/nvim/lazyvim.json +11 -0
- package/dotfiles/macos/.config/nvim/lua/config/autocmds.lua +8 -0
- package/dotfiles/macos/.config/nvim/lua/config/keymaps.lua +21 -0
- package/dotfiles/macos/.config/nvim/lua/config/lazy.lua +72 -0
- package/dotfiles/macos/.config/nvim/lua/config/options.lua +13 -0
- package/dotfiles/macos/.config/nvim/lua/plugins/colorscheme.lua +12 -0
- package/dotfiles/macos/.config/nvim/lua/plugins/editor.lua +366 -0
- package/dotfiles/macos/.config/nvim/lua/plugins/example.lua +197 -0
- package/dotfiles/macos/.config/nvim/lua/plugins/mason.lua +11 -0
- package/dotfiles/macos/.config/nvim/lua/plugins/oxc.lua +64 -0
- package/dotfiles/macos/.config/nvim/lua/plugins/ui.lua +123 -0
- package/dotfiles/macos/.config/nvim/stylua.toml +3 -0
- package/dotfiles/macos/.config/ripgrep/config +9 -0
- package/dotfiles/macos/.config/tmux/STATUSBAR REFERENCE.md +1183 -0
- package/dotfiles/macos/.config/tmux/keybinds.conf +124 -0
- package/dotfiles/macos/.config/tmux/notifications.conf +39 -0
- package/dotfiles/macos/.config/tmux/pane.conf +33 -0
- package/dotfiles/macos/.config/tmux/popup-window.conf +27 -0
- package/dotfiles/macos/.config/tmux/statusbar.conf +281 -0
- package/dotfiles/macos/.config/tmux/tmux.conf +94 -0
- package/dotfiles/macos/.config/wezterm/wezterm.lua +143 -0
- package/dotfiles/windows/.claude/CLAUDE.md +13 -0
- package/dotfiles/windows/.claude/settings.json +38 -0
- package/dotfiles/windows/.claude.json +32 -0
- package/dotfiles/windows/.config/bat/config +27 -0
- package/dotfiles/windows/.config/bat/themes/Vercel.tmTheme +308 -0
- package/dotfiles/windows/.config/bat/themes/Vesper.tmTheme +357 -0
- package/dotfiles/windows/.config/btop/btop.conf +251 -0
- package/dotfiles/windows/.config/btop/themes/Solarized_Dark.theme +89 -0
- package/dotfiles/windows/.config/btop/themes/Vercel.theme +89 -0
- package/dotfiles/windows/.config/btop/themes/Vesper.theme +89 -0
- package/dotfiles/windows/.config/nvim/.neoconf.json +15 -0
- package/dotfiles/windows/.config/nvim/init.lua +2 -0
- package/dotfiles/windows/.config/nvim/lazy-lock.json +42 -0
- package/dotfiles/windows/.config/nvim/lazyvim.json +11 -0
- package/dotfiles/windows/.config/nvim/lua/config/autocmds.lua +8 -0
- package/dotfiles/windows/.config/nvim/lua/config/keymaps.lua +21 -0
- package/dotfiles/windows/.config/nvim/lua/config/lazy.lua +72 -0
- package/dotfiles/windows/.config/nvim/lua/config/options.lua +13 -0
- package/dotfiles/windows/.config/nvim/lua/plugins/colorscheme.lua +12 -0
- package/dotfiles/windows/.config/nvim/lua/plugins/editor.lua +366 -0
- package/dotfiles/windows/.config/nvim/lua/plugins/example.lua +197 -0
- package/dotfiles/windows/.config/nvim/lua/plugins/mason.lua +11 -0
- package/dotfiles/windows/.config/nvim/lua/plugins/oxc.lua +64 -0
- package/dotfiles/windows/.config/nvim/lua/plugins/ui.lua +123 -0
- package/dotfiles/windows/.config/nvim/stylua.toml +3 -0
- package/dotfiles/windows/.config/omp-themes/solarized-dark.omp.toml +197 -0
- package/dotfiles/windows/.config/omp-themes/vercel.omp.toml +197 -0
- package/dotfiles/windows/.config/omp-themes/vesper.omp.toml +197 -0
- package/dotfiles/windows/.config/ripgrep/config +9 -0
- package/dotfiles/windows/.config/wezterm/wezterm.lua +88 -0
- package/dotfiles/windows/powershell/Profile.ps1 +36 -0
- package/dotfiles/windows/powershell/functions/Switch-PromptPalette.ps1 +37 -0
- package/dotfiles/windows/powershell/functions/backup.ps1 +39 -0
- package/dotfiles/windows/powershell/functions/reload-shell.ps1 +8 -0
- package/dotfiles/windows/powershell/modules/aliases.ps1 +44 -0
- package/dotfiles/windows/powershell/modules/environment.ps1 +13 -0
- package/dotfiles/windows/powershell/modules/fzf.ps1 +82 -0
- package/dotfiles/windows/powershell/modules/prompt.ps1 +25 -0
- package/dotfiles/windows/powershell/modules/tools.ps1 +52 -0
- package/package.json +72 -0
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# ╔══════════════════════════════════════════╗
|
|
2
|
+
# ║ KEYBINDS KEY CONFIGURATION ║
|
|
3
|
+
# ╚══════════════════════════════════════════╝
|
|
4
|
+
|
|
5
|
+
# Change prefix from Ctrl+b to Ctrl+a (more ergonomic, easier to reach)
|
|
6
|
+
unbind C-b
|
|
7
|
+
set -g prefix C-a
|
|
8
|
+
|
|
9
|
+
bind C-a send-prefix
|
|
10
|
+
|
|
11
|
+
# ╔══════════════════════════════════════════╗
|
|
12
|
+
# ║ GENERAL ║
|
|
13
|
+
# ╚══════════════════════════════════════════╝
|
|
14
|
+
|
|
15
|
+
# Reload configuration file with Prefix+r (Ctrl+a then r)
|
|
16
|
+
# Shows confirmation message after reloading
|
|
17
|
+
bind r source-file ~/.config/tmux/tmux.conf \; display "TMUX Reloaded"
|
|
18
|
+
|
|
19
|
+
# ╔══════════════════════════════════════════╗
|
|
20
|
+
# ║ PANE MANAGEMENT ║
|
|
21
|
+
# ╚══════════════════════════════════════════╝
|
|
22
|
+
|
|
23
|
+
# Split panes using | for vertical and - for horizontal (more intuitive)
|
|
24
|
+
# Unbind old split commands
|
|
25
|
+
unbind '"'
|
|
26
|
+
unbind %
|
|
27
|
+
|
|
28
|
+
# Split panes using | for vertical and - for horizontal (more intuitive)
|
|
29
|
+
# Opens new panes in the current working directory
|
|
30
|
+
bind | split-window -h -c "#{pane_current_path}"
|
|
31
|
+
bind - split-window -v -c "#{pane_current_path}"
|
|
32
|
+
|
|
33
|
+
# Switch panes using Alt+arrow keys WITHOUT prefix (faster navigation)
|
|
34
|
+
bind -n M-Left select-pane -L
|
|
35
|
+
bind -n M-Right select-pane -R
|
|
36
|
+
bind -n M-Up select-pane -U
|
|
37
|
+
bind -n M-Down select-pane -D
|
|
38
|
+
|
|
39
|
+
# Vim-style pane navigation with h,j,k,l (use Prefix first)
|
|
40
|
+
bind h select-pane -L
|
|
41
|
+
bind j select-pane -D
|
|
42
|
+
bind k select-pane -U
|
|
43
|
+
bind l select-pane -R
|
|
44
|
+
|
|
45
|
+
# Resize panes with Prefix+Ctrl+arrow keys (repeatable without re-pressing prefix)
|
|
46
|
+
# -r flag allows holding Ctrl and pressing arrows multiple times
|
|
47
|
+
bind -r C-Left resize-pane -L 5
|
|
48
|
+
bind -r C-Right resize-pane -R 5
|
|
49
|
+
bind -r C-Up resize-pane -U 5
|
|
50
|
+
bind -r C-Down resize-pane -D 5
|
|
51
|
+
|
|
52
|
+
# Vim-style pane resizing with Prefix+H,J,K,L (capital letters)
|
|
53
|
+
bind -r H resize-pane -L 5
|
|
54
|
+
bind -r J resize-pane -D 5
|
|
55
|
+
bind -r K resize-pane -U 5
|
|
56
|
+
bind -r L resize-pane -R 5
|
|
57
|
+
|
|
58
|
+
# ╔══════════════════════════════════════════╗
|
|
59
|
+
# ║ WINDOW MANAGEMENT ║
|
|
60
|
+
# ╚══════════════════════════════════════════╝
|
|
61
|
+
|
|
62
|
+
# Create new window in current directory
|
|
63
|
+
bind c new-window -c "#{pane_current_path}"
|
|
64
|
+
|
|
65
|
+
# Switch windows using Shift+arrow keys WITHOUT prefix
|
|
66
|
+
bind -n S-Left previous-window
|
|
67
|
+
bind -n S-Right next-window
|
|
68
|
+
|
|
69
|
+
# ╔══════════════════════════════════════════╗
|
|
70
|
+
# ║ COPY MODE (VI STYLE) ║
|
|
71
|
+
# ╚══════════════════════════════════════════╝
|
|
72
|
+
|
|
73
|
+
# Use vi key bindings in copy mode
|
|
74
|
+
setw -g mode-keys vi
|
|
75
|
+
|
|
76
|
+
# Enter copy mode with Prefix+[
|
|
77
|
+
# v to begin selection (like visual mode in vim)
|
|
78
|
+
# y to yank (copy) selection
|
|
79
|
+
# p to paste
|
|
80
|
+
|
|
81
|
+
bind -T copy-mode-vi v send-keys -X begin-selection
|
|
82
|
+
bind -T copy-mode-vi y send-keys -X copy-selection-and-cancel
|
|
83
|
+
bind -T copy-mode-vi r send-keys -X rectangle-toggle
|
|
84
|
+
|
|
85
|
+
# Usage: Press 'prefix + p' to paste the last copied text
|
|
86
|
+
# (prefix is usually Ctrl+b by default)
|
|
87
|
+
bind p paste-buffer
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
# Usage: In copy mode, press '/' to search forward (down)
|
|
91
|
+
# Type your search term and press Enter
|
|
92
|
+
bind -T copy-mode-vi / command-prompt -i -p "Search Down:" "send -X search-forward-incremental \"%%%\""
|
|
93
|
+
|
|
94
|
+
# Usage: In copy mode, press '?' to search backward (up)
|
|
95
|
+
# Type your search term and press Enter
|
|
96
|
+
bind -T copy-mode-vi ? command-prompt -i -p "Search Up:" "send -X search-backward-incremental \"%%%\""
|
|
97
|
+
|
|
98
|
+
# ╔══════════════════════════════════════════╗
|
|
99
|
+
# ║ PLATFORM DETECTION & CLIPBOARD ║
|
|
100
|
+
# ╚══════════════════════════════════════════╝
|
|
101
|
+
|
|
102
|
+
# macOS
|
|
103
|
+
# Usage: Press 'y' in copy mode to yank (copy) selected text to macOS clipboard
|
|
104
|
+
if-shell "uname | grep -q Darwin" \
|
|
105
|
+
"bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'pbcopy'; \
|
|
106
|
+
bind -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel 'pbcopy'"
|
|
107
|
+
|
|
108
|
+
# WSL (Ubuntu)
|
|
109
|
+
# Usage: Press 'y' in copy mode to yank (copy) selected text to Windows clipboard
|
|
110
|
+
if-shell "uname -r | grep -q microsoft" \
|
|
111
|
+
"bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'clip.exe'; \
|
|
112
|
+
bind -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel 'clip.exe'"
|
|
113
|
+
|
|
114
|
+
# Ubuntu Linux (Wayland or X11)
|
|
115
|
+
# Usage: Press 'y' in copy mode to yank (copy) selected text to Linux clipboard
|
|
116
|
+
if-shell "[ -z \"$WSL_DISTRO_NAME\" ] && uname | grep -q Linux" \
|
|
117
|
+
"bind -T copy-mode-vi y send-keys -X copy-selection-and-cancel; \
|
|
118
|
+
bind -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-selection-and-cancel; \
|
|
119
|
+
if-shell 'command -v xclip >/dev/null 2>&1' \
|
|
120
|
+
'bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel \"xclip -in -selection clipboard\"; \
|
|
121
|
+
bind -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel \"xclip -in -selection clipboard\"'; \
|
|
122
|
+
if-shell 'command -v wl-copy >/dev/null 2>&1' \
|
|
123
|
+
'bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel \"wl-copy\"; \
|
|
124
|
+
bind -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel \"wl-copy\"'"
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# ╔══════════════════════════════════════════╗
|
|
2
|
+
# ║ NOTIFICATIONS STYLING ║
|
|
3
|
+
# ╚══════════════════════════════════════════╝
|
|
4
|
+
|
|
5
|
+
# ╔══════════════════════════════════════════╗
|
|
6
|
+
# ║ VERCEL ║
|
|
7
|
+
# ╚══════════════════════════════════════════╝
|
|
8
|
+
# Style for command prompt and messages
|
|
9
|
+
# This is what you see when you type Prefix+: or when tmux shows messages
|
|
10
|
+
# Valid values: same as status-style
|
|
11
|
+
# set -g message-style "bg=default,fg=#49AEFF,bold"
|
|
12
|
+
|
|
13
|
+
# Style for command mode (when typing commands)
|
|
14
|
+
# Valid values: same as status-style
|
|
15
|
+
# set -g message-command-style "bg=#005BE7,fg=#FAFAFA"
|
|
16
|
+
|
|
17
|
+
# ╔══════════════════════════════════════════╗
|
|
18
|
+
# ║ VESPER ║
|
|
19
|
+
# ╚══════════════════════════════════════════╝
|
|
20
|
+
# Style for command prompt and messages
|
|
21
|
+
# This is what you see when you type Prefix+: or when tmux shows messages
|
|
22
|
+
# Valid values: same as status-style
|
|
23
|
+
# set -g message-style "bg=default,fg=#FFC799,bold"
|
|
24
|
+
|
|
25
|
+
# Style for command mode (when typing commands)
|
|
26
|
+
# Valid values: same as status-style
|
|
27
|
+
# set -g message-command-style "bg=#FFC799,fg=#101010"
|
|
28
|
+
|
|
29
|
+
# ╔══════════════════════════════════════════╗
|
|
30
|
+
# ║ SOLARIZED ║
|
|
31
|
+
# ╚══════════════════════════════════════════╝
|
|
32
|
+
# Style for command prompt and messages
|
|
33
|
+
# This is what you see when you type Prefix+: or when tmux shows messages
|
|
34
|
+
# Valid values: same as status-style
|
|
35
|
+
set -g message-style "bg=default,fg=#859900,bold"
|
|
36
|
+
|
|
37
|
+
# Style for command mode (when typing commands)
|
|
38
|
+
# Valid values: same as status-style
|
|
39
|
+
set -g message-command-style "bg=#859900,fg=#002B36"
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# ╔══════════════════════════════════════════╗
|
|
2
|
+
# ║ PANE STYLING ║
|
|
3
|
+
# ╚══════════════════════════════════════════╝
|
|
4
|
+
|
|
5
|
+
# ╔══════════════════════════════════════════╗
|
|
6
|
+
# ║ VERCEL ║
|
|
7
|
+
# ╚══════════════════════════════════════════╝
|
|
8
|
+
# set -g pane-border-style "fg=#171717"
|
|
9
|
+
# set -g pane-active-border-style "fg=#005BE7"
|
|
10
|
+
|
|
11
|
+
# ╔══════════════════════════════════════════╗
|
|
12
|
+
# ║ VESPER ║
|
|
13
|
+
# ╚══════════════════════════════════════════╝
|
|
14
|
+
# set -g pane-border-style "fg=#505050"
|
|
15
|
+
# set -g pane-active-border-style "fg=#FFC799"
|
|
16
|
+
|
|
17
|
+
# ╔══════════════════════════════════════════╗
|
|
18
|
+
# ║ SOLARIZED ║
|
|
19
|
+
# ╚══════════════════════════════════════════╝
|
|
20
|
+
set -g pane-border-style "fg=#586E75"
|
|
21
|
+
set -g pane-active-border-style "fg=#B58900"
|
|
22
|
+
|
|
23
|
+
set -g pane-border-format " #{pane_index} #{pane_current_command} "
|
|
24
|
+
|
|
25
|
+
# Border lines style (cosmetic appearance of border)
|
|
26
|
+
# Valid values:
|
|
27
|
+
# single = ─│┌┐└┘ (default, ASCII-safe)
|
|
28
|
+
# double = ═║╔╗╚╝ (double lines)
|
|
29
|
+
# heavy = ━┃┏┓┗┛ (bold/thick lines)
|
|
30
|
+
# simple = plain ASCII characters
|
|
31
|
+
# number = show pane numbers as borders
|
|
32
|
+
# Default: single
|
|
33
|
+
set -g pane-border-lines heavy
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# ============================================
|
|
2
|
+
# POPUP WINDOW CONFIGURATION
|
|
3
|
+
# ============================================
|
|
4
|
+
|
|
5
|
+
# Usage: Press 'prefix + g' to open lazygit in a popup window
|
|
6
|
+
# Ephemeral popup — runs lazygit directly inside display-popup.
|
|
7
|
+
# Each invocation is a fresh instance; closing the popup kills the process.
|
|
8
|
+
# This works well because lazygit is stateless: open, do git ops, close.
|
|
9
|
+
bind -r g display-popup -d '#{pane_current_path}' -w80% -h80% -E lazygit
|
|
10
|
+
|
|
11
|
+
# Usage: Press 'prefix + y' to open Claude Code in a popup window
|
|
12
|
+
# Persistent session popup — creates a named tmux session (hashed by working
|
|
13
|
+
# directory) and attaches to it inside the popup. Closing the popup detaches
|
|
14
|
+
# but keeps the session alive, so reopening reconnects to the same conversation.
|
|
15
|
+
# This is necessary because Claude Code maintains conversational context that
|
|
16
|
+
# would be lost with an ephemeral popup.
|
|
17
|
+
bind -r y run-shell '\
|
|
18
|
+
PATH_HASH="$(printf "%s" "#{pane_current_path}" | ( \
|
|
19
|
+
if command -v md5 >/dev/null 2>&1; then md5 -q; \
|
|
20
|
+
elif command -v md5sum >/dev/null 2>&1; then md5sum | cut -d" " -f1; \
|
|
21
|
+
else cksum | awk "{print \$1}"; \
|
|
22
|
+
fi \
|
|
23
|
+
) | cut -c1-8)"; \
|
|
24
|
+
SESSION="claude-$PATH_HASH"; \
|
|
25
|
+
tmux has-session -t "$SESSION" 2>/dev/null || \
|
|
26
|
+
tmux new-session -d -s "$SESSION" -c "#{pane_current_path}" "claude"; \
|
|
27
|
+
tmux display-popup -w80% -h80% -E "tmux attach-session -t $SESSION"'
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
# ╔══════════════════════════════════════════╗
|
|
2
|
+
# ║ STATUS BAR CONFIGURATION ║
|
|
3
|
+
# ╚══════════════════════════════════════════╝
|
|
4
|
+
set -g status on
|
|
5
|
+
|
|
6
|
+
set -g status-position bottom
|
|
7
|
+
|
|
8
|
+
set -g status-interval 5
|
|
9
|
+
|
|
10
|
+
set -g status-justify left
|
|
11
|
+
|
|
12
|
+
setw -g monitor-activity on
|
|
13
|
+
setw -g monitor-bell on
|
|
14
|
+
set -g visual-activity off
|
|
15
|
+
|
|
16
|
+
# ╔══════════════════════════════════════════╗
|
|
17
|
+
# ║ VERCEL ║
|
|
18
|
+
# ╚══════════════════════════════════════════╝
|
|
19
|
+
|
|
20
|
+
# ╔══════════════════════════════════════════╗
|
|
21
|
+
# ║ STATUS BAR APPEARANCE ║
|
|
22
|
+
# ╚══════════════════════════════════════════╝
|
|
23
|
+
# set -g status-style "bg=default,fg=#A8A8A8"
|
|
24
|
+
|
|
25
|
+
# ╔══════════════════════════════════════════╗
|
|
26
|
+
# ║ STATUS LEFT ║
|
|
27
|
+
# ╚══════════════════════════════════════════╝
|
|
28
|
+
# set -g status-left-length 100
|
|
29
|
+
|
|
30
|
+
# Left status content and styling
|
|
31
|
+
# set -g status-left "#[bg=#171717,fg=#FAFAFA,bold] #S #[bg=#005BE7,fg=#171717]#[bg=#005BE7,fg=#FAFAFA,bold] #(whoami) #[bg=default,fg=#005BE7]"
|
|
32
|
+
# Left status content and styling with prefix indicator.
|
|
33
|
+
# Segment order:
|
|
34
|
+
# 1) Prefix-aware session segment (#S)
|
|
35
|
+
# 2) Prefix-aware separator transition
|
|
36
|
+
# 3) Prefix-aware user segment (#{user})
|
|
37
|
+
# 4) Prefix-aware trailing separator back to default background
|
|
38
|
+
|
|
39
|
+
# set -g status-left "\
|
|
40
|
+
# #{?client_prefix,#[bg=#FC0036 fg=#FAFAFA bold],#[bg=#FAFAFA fg=#171717 bold]} #S \
|
|
41
|
+
# #{?client_prefix,#[bg=#005BE7 fg=#FC0036],#[bg=#005BE7 fg=#FAFAFA]}\
|
|
42
|
+
# #[bg=#005BE7 fg=#FAFAFA bold] #{user} \
|
|
43
|
+
# #[bg=default fg=#005BE7]\
|
|
44
|
+
# "
|
|
45
|
+
|
|
46
|
+
# ╔══════════════════════════════════════════╗
|
|
47
|
+
# ║ WINDOW STATUS (MIDDLE) ║
|
|
48
|
+
# ╚══════════════════════════════════════════╝
|
|
49
|
+
# setw -g window-status-separator ""
|
|
50
|
+
|
|
51
|
+
# Format for inactive windows in the status bar.
|
|
52
|
+
# Branch priority (first match wins):
|
|
53
|
+
# 1) window_bell_flag
|
|
54
|
+
# 2) window_activity_flag
|
|
55
|
+
# 3) fallback inactive format
|
|
56
|
+
# set -g window-status-format ' #I #{b:pane_current_path} '
|
|
57
|
+
|
|
58
|
+
# set -g window-status-format "\
|
|
59
|
+
# #{?window_bell_flag,\
|
|
60
|
+
# #[bg=default fg=#FC0036 reverse]#[bg=#FC0036 fg=#FAFAFA noreverse] #I #[bg=#171717 fg=#FC0036 noreverse] #[fg=#FAFAFA]#{b:pane_current_path} #[bg=default fg=#171717],\
|
|
61
|
+
# #{?window_activity_flag,\
|
|
62
|
+
# #[bg=default fg=#FFAE00 reverse]#[bg=#FFAE00 fg=#101010 noreverse] #I #[bg=#171717 fg=#FFAE00 noreverse] #[fg=#FAFAFA]#{b:pane_current_path} #[bg=default fg=#171717],\
|
|
63
|
+
# #I #{b:pane_current_path} \
|
|
64
|
+
# }\
|
|
65
|
+
# }"
|
|
66
|
+
|
|
67
|
+
# Keep activity style disabled because activity/bell/silence visuals are already handled
|
|
68
|
+
# in window-status-format via window_*_flag conditionals. If this style is non-none,
|
|
69
|
+
# tmux applies both the generic activity style and the inactive window format, causing
|
|
70
|
+
# duplicated highlighting for inactive windows with activity.
|
|
71
|
+
# set -g window-status-activity-style "bg=default,fg=#FFFFFF"
|
|
72
|
+
|
|
73
|
+
# set -g window-status-activity-style "none"
|
|
74
|
+
|
|
75
|
+
# Format for the currently active window.
|
|
76
|
+
# Segment order:
|
|
77
|
+
# 1) Leading wedge from default background
|
|
78
|
+
# 2) Current window index (#I)
|
|
79
|
+
# 3) Current pane path (basename)
|
|
80
|
+
# 4) Trailing wedge back to default background
|
|
81
|
+
|
|
82
|
+
# set -g window-status-current-format "\
|
|
83
|
+
# #[bg=default,fg=#005BE7,reverse]\
|
|
84
|
+
# #[bg=#005BE7,fg=#FAFAFA,noreverse] #I \
|
|
85
|
+
# #[bg=#171717,fg=#005BE7,noreverse] #[fg=#FAFAFA]#{b:pane_current_path} \
|
|
86
|
+
# #[bg=default,fg=#171717]\
|
|
87
|
+
# "
|
|
88
|
+
|
|
89
|
+
# ╔══════════════════════════════════════════╗
|
|
90
|
+
# ║ STATUS RIGHT ║
|
|
91
|
+
# ╚══════════════════════════════════════════╝
|
|
92
|
+
# set -g status-right-length 100
|
|
93
|
+
|
|
94
|
+
# Right status segments:
|
|
95
|
+
# 1) Layered separator chain
|
|
96
|
+
# 2) Host segment (#h)
|
|
97
|
+
|
|
98
|
+
# set -g status-right "\
|
|
99
|
+
# #[bg=default,fg=#171717]\
|
|
100
|
+
# #[bg=#171717,fg=#005BE7]\
|
|
101
|
+
# #[bg=#005BE7,fg=#FAFAFA]\
|
|
102
|
+
# #[bg=#FAFAFA,fg=#101010,bold] #h \
|
|
103
|
+
# "
|
|
104
|
+
|
|
105
|
+
# ╔══════════════════════════════════════════╗
|
|
106
|
+
# ║ VESPER ║
|
|
107
|
+
# ╚══════════════════════════════════════════╝
|
|
108
|
+
|
|
109
|
+
# ╔══════════════════════════════════════════╗
|
|
110
|
+
# ║ STATUS BAR APPEARANCE ║
|
|
111
|
+
# ╚══════════════════════════════════════════╝
|
|
112
|
+
# set -g status-style "bg=default,fg=#A0A0A0"
|
|
113
|
+
|
|
114
|
+
# ╔══════════════════════════════════════════╗
|
|
115
|
+
# ║ STATUS LEFT ║
|
|
116
|
+
# ╚══════════════════════════════════════════╝
|
|
117
|
+
# set -g status-left-length 100
|
|
118
|
+
|
|
119
|
+
# Left status content and styling
|
|
120
|
+
# set -g status-left "#[bg=#161616,fg=#FFFFFF,bold] #S #[bg=#FFC799,fg=#161616]#[bg=#FFC799,fg=#101010,bold] #(whoami) #[bg=default,fg=#FFC799]"
|
|
121
|
+
# Left status content and styling with prefix indicator.
|
|
122
|
+
# Segment order:
|
|
123
|
+
# 1) Prefix-aware session segment (#S)
|
|
124
|
+
# 2) Prefix-aware separator transition
|
|
125
|
+
# 3) Prefix-aware user segment (#{user})
|
|
126
|
+
# 4) Prefix-aware trailing separator back to default background
|
|
127
|
+
|
|
128
|
+
# set -g status-left "\
|
|
129
|
+
# #{?client_prefix,#[bg=#FF8080 fg=#101010 bold],#[bg=#161616 fg=#FFFFFF bold]} #S \
|
|
130
|
+
# #{?client_prefix,#[bg=#FFC799 fg=#FF8080],#[bg=#FFC799 fg=#161616]}\
|
|
131
|
+
# #[bg=#FFC799 fg=#101010 bold] #{user} \
|
|
132
|
+
# #[bg=default fg=#FFC799]\
|
|
133
|
+
# "
|
|
134
|
+
|
|
135
|
+
# ╔══════════════════════════════════════════╗
|
|
136
|
+
# ║ WINDOW STATUS (MIDDLE) ║
|
|
137
|
+
# ╚══════════════════════════════════════════╝
|
|
138
|
+
# setw -g window-status-separator ""
|
|
139
|
+
|
|
140
|
+
# Format for inactive windows in the status bar.
|
|
141
|
+
# Branch priority (first match wins):
|
|
142
|
+
# 1) window_bell_flag
|
|
143
|
+
# 2) window_activity_flag
|
|
144
|
+
# 3) fallback inactive format
|
|
145
|
+
# set -g window-status-format ' #I #{b:pane_current_path} '
|
|
146
|
+
|
|
147
|
+
# set -g window-status-format "\
|
|
148
|
+
# #{?window_bell_flag,\
|
|
149
|
+
# #[bg=default fg=#FF8080 reverse]#[bg=#FF8080 fg=#101010 noreverse] #I #[bg=#161616 fg=#FF8080 noreverse] #[fg=#FFFFFF]#{b:pane_current_path} #[bg=default fg=#161616],\
|
|
150
|
+
# #{?window_activity_flag,\
|
|
151
|
+
# #[bg=default fg=#99FFE4 reverse]#[bg=#99FFE4 fg=#101010 noreverse] #I #[bg=#161616 fg=#99FFE4 noreverse] #[fg=#FFFFFF]#{b:pane_current_path} #[bg=default fg=#161616],\
|
|
152
|
+
# #[fg=#A0A0A0]#I #{b:pane_current_path} \
|
|
153
|
+
# }\
|
|
154
|
+
# }"
|
|
155
|
+
|
|
156
|
+
# Keep activity style disabled because activity/bell/silence visuals are already handled
|
|
157
|
+
# in window-status-format via window_*_flag conditionals. If this style is non-none,
|
|
158
|
+
# tmux applies both the generic activity style and the inactive window format, causing
|
|
159
|
+
# duplicated highlighting for inactive windows with activity.
|
|
160
|
+
# set -g window-status-activity-style "bg=default,fg=#FFFFFF"
|
|
161
|
+
|
|
162
|
+
# set -g window-status-activity-style "none"
|
|
163
|
+
|
|
164
|
+
# Format for the currently active window.
|
|
165
|
+
# Segment order:
|
|
166
|
+
# 1) Leading wedge from default background
|
|
167
|
+
# 2) Current window index (#I)
|
|
168
|
+
# 3) Current pane path (basename)
|
|
169
|
+
# 4) Trailing wedge back to default background
|
|
170
|
+
|
|
171
|
+
# set -g window-status-current-format "\
|
|
172
|
+
# #[bg=default,fg=#FFC799,reverse]\
|
|
173
|
+
# #[bg=#FFC799,fg=#101010,noreverse] #I \
|
|
174
|
+
# #[bg=#161616,fg=#FFC799,noreverse] #[fg=#FFFFFF]#{b:pane_current_path} \
|
|
175
|
+
# #[bg=default,fg=#161616]\
|
|
176
|
+
# "
|
|
177
|
+
|
|
178
|
+
# ╔══════════════════════════════════════════╗
|
|
179
|
+
# ║ STATUS RIGHT ║
|
|
180
|
+
# ╚══════════════════════════════════════════╝
|
|
181
|
+
# set -g status-right-length 100
|
|
182
|
+
|
|
183
|
+
# Right status segments:
|
|
184
|
+
# 1) Layered separator chain
|
|
185
|
+
# 2) Host segment (#h)
|
|
186
|
+
|
|
187
|
+
# set -g status-right "\
|
|
188
|
+
# #[bg=default,fg=#161616]\
|
|
189
|
+
# #[bg=#161616,fg=#232323]\
|
|
190
|
+
# #[bg=#232323,fg=#FFC799]\
|
|
191
|
+
# #[bg=#FFC799,fg=#101010,bold] #h \
|
|
192
|
+
# "
|
|
193
|
+
|
|
194
|
+
# ╔══════════════════════════════════════════╗
|
|
195
|
+
# ║ SOLARIZED ║
|
|
196
|
+
# ╚══════════════════════════════════════════╝
|
|
197
|
+
|
|
198
|
+
# ╔══════════════════════════════════════════╗
|
|
199
|
+
# ║ STATUS BAR APPEARANCE ║
|
|
200
|
+
# ╚══════════════════════════════════════════╝
|
|
201
|
+
set -g status-style "bg=#012b36,fg=#FDF6E3"
|
|
202
|
+
|
|
203
|
+
# ╔══════════════════════════════════════════╗
|
|
204
|
+
# ║ STATUS LEFT ║
|
|
205
|
+
# ╚══════════════════════════════════════════╝
|
|
206
|
+
set -g status-left-length 100
|
|
207
|
+
|
|
208
|
+
# Left status content and styling
|
|
209
|
+
# set -g status-left "#[bg=#171717,fg=#FAFAFA,bold] #S #[bg=#005BE7,fg=#171717]#[bg=#005BE7,fg=#FAFAFA,bold] #(whoami) #[bg=default,fg=#005BE7]"
|
|
210
|
+
# Left status content and styling with prefix indicator.
|
|
211
|
+
# Segment order:
|
|
212
|
+
# 1) Prefix-aware session segment (#S)
|
|
213
|
+
# 2) Prefix-aware separator transition
|
|
214
|
+
# 3) Prefix-aware user segment (#{user})
|
|
215
|
+
# 4) Prefix-aware trailing separator back to default background
|
|
216
|
+
|
|
217
|
+
set -g status-left "\
|
|
218
|
+
#{?client_prefix,#[bg=#DC322F fg=#ECE8D2 bold],#[bg=#ECE8D2 fg=#092833 bold]} #S \
|
|
219
|
+
#{?client_prefix,#[bg=#718080 fg=#DC322F],#[bg=#718080 fg=#ECE8D2]}\
|
|
220
|
+
#[bg=#718080 fg=#092833 bold] #{user} \
|
|
221
|
+
#[bg=default fg=#718080]\
|
|
222
|
+
"
|
|
223
|
+
|
|
224
|
+
# ╔══════════════════════════════════════════╗
|
|
225
|
+
# ║ WINDOW STATUS (MIDDLE) ║
|
|
226
|
+
# ╚══════════════════════════════════════════╝
|
|
227
|
+
setw -g window-status-separator ""
|
|
228
|
+
|
|
229
|
+
# Format for inactive windows in the status bar.
|
|
230
|
+
# Branch priority (first match wins):
|
|
231
|
+
# 1) window_bell_flag
|
|
232
|
+
# 2) window_activity_flag
|
|
233
|
+
# 3) fallback inactive format
|
|
234
|
+
# set -g window-status-format ' #I #{b:pane_current_path} '
|
|
235
|
+
|
|
236
|
+
set -g window-status-format "\
|
|
237
|
+
#{?window_bell_flag,\
|
|
238
|
+
#[bg=default fg=#ECE8D2 reverse]#[bg=#ECE8D2 fg=#DC322F noreverse] #I #[bg=#B58900 fg=#ECE8D2 noreverse] #[fg=#ECE8D2]#{b:pane_current_path} #[bg=default fg=#B58900],\
|
|
239
|
+
#{?window_activity_flag,\
|
|
240
|
+
#[bg=default fg=#ECE8D2 reverse]#[bg=#ECE8D2 fg=#B58900 noreverse] #I #[bg=#B58900 fg=#ECE8D2 noreverse] #[fg=#ECE8D2]#{b:pane_current_path} #[bg=default fg=#B58900],\
|
|
241
|
+
#I #{b:pane_current_path} \
|
|
242
|
+
}\
|
|
243
|
+
}"
|
|
244
|
+
|
|
245
|
+
# Keep activity style disabled because activity/bell/silence visuals are already handled
|
|
246
|
+
# in window-status-format via window_*_flag conditionals. If this style is non-none,
|
|
247
|
+
# tmux applies both the generic activity style and the inactive window format, causing
|
|
248
|
+
# duplicated highlighting for inactive windows with activity.
|
|
249
|
+
# set -g window-status-activity-style "bg=default,fg=#FFFFFF"
|
|
250
|
+
|
|
251
|
+
set -g window-status-activity-style "none"
|
|
252
|
+
|
|
253
|
+
# Format for the currently active window.
|
|
254
|
+
# Segment order:
|
|
255
|
+
# 1) Leading wedge from default background
|
|
256
|
+
# 2) Current window index (#I)
|
|
257
|
+
# 3) Current pane path (basename)
|
|
258
|
+
# 4) Trailing wedge back to default background
|
|
259
|
+
|
|
260
|
+
set -g window-status-current-format "\
|
|
261
|
+
#[bg=default,fg=#ECE8D2,reverse]\
|
|
262
|
+
#[bg=#ECE8D2,fg=#092833,noreverse] #I \
|
|
263
|
+
#[bg=#B58900,fg=#ECE8D2,noreverse] #[fg=#ECE8D2]#{b:pane_current_path} \
|
|
264
|
+
#[bg=default,fg=#B58900]\
|
|
265
|
+
"
|
|
266
|
+
|
|
267
|
+
# ╔══════════════════════════════════════════╗
|
|
268
|
+
# ║ STATUS RIGHT ║
|
|
269
|
+
# ╚══════════════════════════════════════════╝
|
|
270
|
+
set -g status-right-length 100
|
|
271
|
+
|
|
272
|
+
# Right status segments:
|
|
273
|
+
# 1) Layered separator chain
|
|
274
|
+
# 2) Host segment (#h)
|
|
275
|
+
|
|
276
|
+
set -g status-right "\
|
|
277
|
+
#[bg=default,fg=#B58900]\
|
|
278
|
+
#[bg=#B58900,fg=#718080]\
|
|
279
|
+
#[bg=#718080,fg=#ECE8D2]\
|
|
280
|
+
#[bg=#ECE8D2,fg=#092833,bold] #h \
|
|
281
|
+
"
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# ╔══════════════════════════════════════════╗
|
|
2
|
+
# ║ COLOR & TERMINAL SETTINGS ║
|
|
3
|
+
# ╚══════════════════════════════════════════╝
|
|
4
|
+
|
|
5
|
+
# Set 256 color terminal - essential for proper color display
|
|
6
|
+
set -g default-terminal "tmux-256color"
|
|
7
|
+
|
|
8
|
+
# Prefer Homebrew Fish on macOS, then system Fish if available.
|
|
9
|
+
if-shell "test -x /opt/homebrew/bin/fish" \
|
|
10
|
+
"set -g default-shell /opt/homebrew/bin/fish" \
|
|
11
|
+
"if-shell 'test -x /usr/local/bin/fish' 'set -g default-shell /usr/local/bin/fish' \
|
|
12
|
+
'if-shell \"test -x /usr/bin/fish\" \"set -g default-shell /usr/bin/fish\"'"
|
|
13
|
+
|
|
14
|
+
# Enable RGB (true color) support for modern terminals
|
|
15
|
+
# Ensures full 24-bit color in Vim/Neovim and other programs
|
|
16
|
+
set -s terminal-features[200] "ghostty:RGB"
|
|
17
|
+
set -s terminal-features[201] "wezterm:RGB"
|
|
18
|
+
set -s terminal-features[202] "xterm-256color:RGB"
|
|
19
|
+
|
|
20
|
+
# ╔══════════════════════════════════════════╗
|
|
21
|
+
# ║ GENERAL SETTINGS ║
|
|
22
|
+
# ╚══════════════════════════════════════════╝
|
|
23
|
+
|
|
24
|
+
# Fix ESC delay in Vim/Neovim - reduces lag when pressing ESC
|
|
25
|
+
set -sg escape-time 0
|
|
26
|
+
|
|
27
|
+
# Increase scrollback buffer from default 2000 to 50000 lines
|
|
28
|
+
# Allows you to scroll back further in terminal history
|
|
29
|
+
set -g history-limit 50000
|
|
30
|
+
|
|
31
|
+
# Enable mouse support - allows clicking to switch panes, resize, and scroll, also copy
|
|
32
|
+
set -g mouse on
|
|
33
|
+
|
|
34
|
+
# Enable focus events - needed for vim autoread and other focus-aware features
|
|
35
|
+
set -g focus-events on
|
|
36
|
+
|
|
37
|
+
# Renumber windows automatically when one is closed
|
|
38
|
+
# Keeps window numbers sequential (1,2,3 instead of 1,3,5)
|
|
39
|
+
set -g renumber-windows on
|
|
40
|
+
|
|
41
|
+
# Start window numbering at 1 instead of 0 (easier to reach on keyboard)
|
|
42
|
+
set -g base-index 1
|
|
43
|
+
|
|
44
|
+
# Start pane numbering at 1 instead of 0
|
|
45
|
+
setw -g pane-base-index 1
|
|
46
|
+
|
|
47
|
+
# Automatically set window title based on running program
|
|
48
|
+
setw -g automatic-rename on
|
|
49
|
+
|
|
50
|
+
# Enable aggressive resize - windows resize based on smallest viewing client
|
|
51
|
+
# Only constrains window size if a smaller client is actively viewing it
|
|
52
|
+
setw -g aggressive-resize on
|
|
53
|
+
|
|
54
|
+
# ╔══════════════════════════════════════════╗
|
|
55
|
+
# ║ NOTIFICATION STYLING ║
|
|
56
|
+
# ╚══════════════════════════════════════════╝
|
|
57
|
+
source ~/.config/tmux/notifications.conf
|
|
58
|
+
|
|
59
|
+
# ╔══════════════════════════════════════════╗
|
|
60
|
+
# ║ KEYBINDINGS CONFIGURATION ║
|
|
61
|
+
# ╚══════════════════════════════════════════╝
|
|
62
|
+
source ~/.config/tmux/keybinds.conf
|
|
63
|
+
|
|
64
|
+
# ╔══════════════════════════════════════════╗
|
|
65
|
+
# ║ STATUS BAR CONFIGURATION ║
|
|
66
|
+
# ╚══════════════════════════════════════════╝
|
|
67
|
+
source ~/.config/tmux/statusbar.conf
|
|
68
|
+
|
|
69
|
+
# ╔══════════════════════════════════════════╗
|
|
70
|
+
# ║ PANE CONFIGURATION ║
|
|
71
|
+
# ╚══════════════════════════════════════════╝
|
|
72
|
+
source ~/.config/tmux/pane.conf
|
|
73
|
+
|
|
74
|
+
# ╔══════════════════════════════════════════╗
|
|
75
|
+
# ║ POPUP WINDOW CONFIGURATION ║
|
|
76
|
+
# ╚══════════════════════════════════════════╝
|
|
77
|
+
source ~/.config/tmux/popup-window.conf
|
|
78
|
+
|
|
79
|
+
# ╔══════════════════════════════════════════╗
|
|
80
|
+
# ║ PLUGIN MANAGER (TPM) - OPTIONAL ║
|
|
81
|
+
# ╚══════════════════════════════════════════╝
|
|
82
|
+
|
|
83
|
+
# List of plugins - uncomment and install TPM to use
|
|
84
|
+
# TPM installation: git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
|
|
85
|
+
# After adding plugins, press Prefix+I to install them
|
|
86
|
+
|
|
87
|
+
# set -g @plugin 'tmux-plugins/tpm'
|
|
88
|
+
# set -g @plugin 'tmux-plugins/tmux-sensible'
|
|
89
|
+
# set -g @plugin 'tmux-plugins/tmux-resurrect' # Save/restore sessions
|
|
90
|
+
# set -g @plugin 'tmux-plugins/tmux-continuum' # Auto-save sessions
|
|
91
|
+
# set -g @plugin 'christoomey/vim-tmux-navigator' # Seamless vim+tmux navigation
|
|
92
|
+
|
|
93
|
+
# Initialize TPM (keep this line at the very bottom)
|
|
94
|
+
# run '~/.tmux/plugins/tpm/tpm'
|