@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.
Files changed (94) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +176 -0
  3. package/dist/index.mjs +1445 -0
  4. package/dotfiles/macos/.claude/CLAUDE.md +13 -0
  5. package/dotfiles/macos/.claude/settings.json +38 -0
  6. package/dotfiles/macos/.claude.json +32 -0
  7. package/dotfiles/macos/.config/bat/config +27 -0
  8. package/dotfiles/macos/.config/bat/themes/Vercel.tmTheme +308 -0
  9. package/dotfiles/macos/.config/bat/themes/Vesper.tmTheme +357 -0
  10. package/dotfiles/macos/.config/btop/btop.conf +272 -0
  11. package/dotfiles/macos/.config/btop/themes/Solarized_Dark.theme +89 -0
  12. package/dotfiles/macos/.config/btop/themes/Vercel.theme +89 -0
  13. package/dotfiles/macos/.config/btop/themes/Vesper.theme +89 -0
  14. package/dotfiles/macos/.config/fish/conf.d/00-platform.fish +19 -0
  15. package/dotfiles/macos/.config/fish/conf.d/10-homebrew.fish +33 -0
  16. package/dotfiles/macos/.config/fish/conf.d/20-environment.fish +12 -0
  17. package/dotfiles/macos/.config/fish/conf.d/30-aliases.fish +52 -0
  18. package/dotfiles/macos/.config/fish/conf.d/40-fzf.fish +120 -0
  19. package/dotfiles/macos/.config/fish/conf.d/50-tools.fish +51 -0
  20. package/dotfiles/macos/.config/fish/conf.d/60-tmux.fish +19 -0
  21. package/dotfiles/macos/.config/fish/conf.d/70-tide.fish +31 -0
  22. package/dotfiles/macos/.config/fish/config.fish +30 -0
  23. package/dotfiles/macos/.config/fish/functions/_tide_palette_heyitsiveen.fish +101 -0
  24. package/dotfiles/macos/.config/fish/functions/_tide_palette_vercel.fish +94 -0
  25. package/dotfiles/macos/.config/fish/functions/_tide_palette_vesper.fish +100 -0
  26. package/dotfiles/macos/.config/fish/functions/backup.fish +43 -0
  27. package/dotfiles/macos/.config/fish/functions/fish_greeting.fish +5 -0
  28. package/dotfiles/macos/.config/fish/functions/reload-fish.fish +4 -0
  29. package/dotfiles/macos/.config/fish/functions/tide_palette.fish +21 -0
  30. package/dotfiles/macos/.config/ghostty/config +46 -0
  31. package/dotfiles/macos/.config/nvim/.neoconf.json +15 -0
  32. package/dotfiles/macos/.config/nvim/init.lua +2 -0
  33. package/dotfiles/macos/.config/nvim/lazy-lock.json +42 -0
  34. package/dotfiles/macos/.config/nvim/lazyvim.json +11 -0
  35. package/dotfiles/macos/.config/nvim/lua/config/autocmds.lua +8 -0
  36. package/dotfiles/macos/.config/nvim/lua/config/keymaps.lua +21 -0
  37. package/dotfiles/macos/.config/nvim/lua/config/lazy.lua +72 -0
  38. package/dotfiles/macos/.config/nvim/lua/config/options.lua +13 -0
  39. package/dotfiles/macos/.config/nvim/lua/plugins/colorscheme.lua +12 -0
  40. package/dotfiles/macos/.config/nvim/lua/plugins/editor.lua +366 -0
  41. package/dotfiles/macos/.config/nvim/lua/plugins/example.lua +197 -0
  42. package/dotfiles/macos/.config/nvim/lua/plugins/mason.lua +11 -0
  43. package/dotfiles/macos/.config/nvim/lua/plugins/oxc.lua +64 -0
  44. package/dotfiles/macos/.config/nvim/lua/plugins/ui.lua +123 -0
  45. package/dotfiles/macos/.config/nvim/stylua.toml +3 -0
  46. package/dotfiles/macos/.config/ripgrep/config +9 -0
  47. package/dotfiles/macos/.config/tmux/STATUSBAR REFERENCE.md +1183 -0
  48. package/dotfiles/macos/.config/tmux/keybinds.conf +124 -0
  49. package/dotfiles/macos/.config/tmux/notifications.conf +39 -0
  50. package/dotfiles/macos/.config/tmux/pane.conf +33 -0
  51. package/dotfiles/macos/.config/tmux/popup-window.conf +27 -0
  52. package/dotfiles/macos/.config/tmux/statusbar.conf +281 -0
  53. package/dotfiles/macos/.config/tmux/tmux.conf +94 -0
  54. package/dotfiles/macos/.config/wezterm/wezterm.lua +143 -0
  55. package/dotfiles/windows/.claude/CLAUDE.md +13 -0
  56. package/dotfiles/windows/.claude/settings.json +38 -0
  57. package/dotfiles/windows/.claude.json +32 -0
  58. package/dotfiles/windows/.config/bat/config +27 -0
  59. package/dotfiles/windows/.config/bat/themes/Vercel.tmTheme +308 -0
  60. package/dotfiles/windows/.config/bat/themes/Vesper.tmTheme +357 -0
  61. package/dotfiles/windows/.config/btop/btop.conf +251 -0
  62. package/dotfiles/windows/.config/btop/themes/Solarized_Dark.theme +89 -0
  63. package/dotfiles/windows/.config/btop/themes/Vercel.theme +89 -0
  64. package/dotfiles/windows/.config/btop/themes/Vesper.theme +89 -0
  65. package/dotfiles/windows/.config/nvim/.neoconf.json +15 -0
  66. package/dotfiles/windows/.config/nvim/init.lua +2 -0
  67. package/dotfiles/windows/.config/nvim/lazy-lock.json +42 -0
  68. package/dotfiles/windows/.config/nvim/lazyvim.json +11 -0
  69. package/dotfiles/windows/.config/nvim/lua/config/autocmds.lua +8 -0
  70. package/dotfiles/windows/.config/nvim/lua/config/keymaps.lua +21 -0
  71. package/dotfiles/windows/.config/nvim/lua/config/lazy.lua +72 -0
  72. package/dotfiles/windows/.config/nvim/lua/config/options.lua +13 -0
  73. package/dotfiles/windows/.config/nvim/lua/plugins/colorscheme.lua +12 -0
  74. package/dotfiles/windows/.config/nvim/lua/plugins/editor.lua +366 -0
  75. package/dotfiles/windows/.config/nvim/lua/plugins/example.lua +197 -0
  76. package/dotfiles/windows/.config/nvim/lua/plugins/mason.lua +11 -0
  77. package/dotfiles/windows/.config/nvim/lua/plugins/oxc.lua +64 -0
  78. package/dotfiles/windows/.config/nvim/lua/plugins/ui.lua +123 -0
  79. package/dotfiles/windows/.config/nvim/stylua.toml +3 -0
  80. package/dotfiles/windows/.config/omp-themes/solarized-dark.omp.toml +197 -0
  81. package/dotfiles/windows/.config/omp-themes/vercel.omp.toml +197 -0
  82. package/dotfiles/windows/.config/omp-themes/vesper.omp.toml +197 -0
  83. package/dotfiles/windows/.config/ripgrep/config +9 -0
  84. package/dotfiles/windows/.config/wezterm/wezterm.lua +88 -0
  85. package/dotfiles/windows/powershell/Profile.ps1 +36 -0
  86. package/dotfiles/windows/powershell/functions/Switch-PromptPalette.ps1 +37 -0
  87. package/dotfiles/windows/powershell/functions/backup.ps1 +39 -0
  88. package/dotfiles/windows/powershell/functions/reload-shell.ps1 +8 -0
  89. package/dotfiles/windows/powershell/modules/aliases.ps1 +44 -0
  90. package/dotfiles/windows/powershell/modules/environment.ps1 +13 -0
  91. package/dotfiles/windows/powershell/modules/fzf.ps1 +82 -0
  92. package/dotfiles/windows/powershell/modules/prompt.ps1 +25 -0
  93. package/dotfiles/windows/powershell/modules/tools.ps1 +52 -0
  94. 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'