@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,197 @@
1
+ "$schema" = "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json"
2
+ console_title_template = "{{ .Shell }} in {{ .Folder }}"
3
+ final_space = true
4
+ version = 3
5
+
6
+ [[blocks]]
7
+ alignment = "left"
8
+ type = "prompt"
9
+
10
+ [[blocks.segments]]
11
+ type = "os"
12
+ background = "#FFC799"
13
+ foreground = "#101010"
14
+ style = "diamond"
15
+ leading_diamond = "\ue0b2"
16
+ template = " {{ if .WSL }}WSL at {{ end }}{{.Icon}} "
17
+
18
+ [[blocks.segments]]
19
+ type = "session"
20
+ background = "#FFC799"
21
+ foreground = "#101010"
22
+ style = "powerline"
23
+ template = "{{ .UserName }} "
24
+
25
+ [[blocks.segments]]
26
+ type = "text"
27
+ background = "#E6B38A"
28
+ foreground = "#101010"
29
+ style = "powerline"
30
+ powerline_symbol = "\ue0b0"
31
+ template = "<parentBackground></>"
32
+
33
+ [[blocks.segments]]
34
+ type = "text"
35
+ background = "#CC9F7A"
36
+ foreground = "#101010"
37
+ style = "powerline"
38
+ powerline_symbol = "\ue0b0"
39
+ template = "<parentBackground></>"
40
+
41
+ [[blocks.segments]]
42
+ type = "text"
43
+ background = "#FFC799"
44
+ foreground = "#101010"
45
+ style = "diamond"
46
+ leading_diamond = "<transparent>\ue0b0</>"
47
+ template = " \uf07c "
48
+
49
+ [[blocks.segments]]
50
+ background = "#161616"
51
+ foreground = "#ffffff"
52
+ style = "powerline"
53
+ powerline_symbol = "\ue0b0"
54
+ template = " {{ .Path }} "
55
+ type = "path"
56
+
57
+ [blocks.segments.properties]
58
+ style = "folder"
59
+ folder_separator_icon = " \ue0b1 "
60
+ home_icon = "~"
61
+
62
+ [[blocks.segments]]
63
+ type = "git"
64
+ background = "#FFC799"
65
+ background_templates = [
66
+ "{{ if or (.Working.Changed) (.Staging.Changed) }}#99FFE4{{ end }}",
67
+ "{{ if and (gt .Ahead 0) (gt .Behind 0) }}#FF8080{{ end }}",
68
+ "{{ if gt .Ahead 0 }}#FF8080{{ end }}",
69
+ "{{ if gt .Behind 0 }}#FF8080{{ end }}"
70
+ ]
71
+ foreground = "#101010"
72
+ leading_diamond = "<transparent>\ue0b0</>"
73
+ style = "diamond"
74
+ template = "{{ .UpstreamIcon }} {{ .HEAD }}{{if .BranchStatus }} {{ .BranchStatus }}{{ end }}{{ if .Working.Changed }} {{ .Working.String }}{{ end }}{{ if and (.Working.Changed) (.Staging.Changed) }} |{{ end }}{{ if .Staging.Changed }} {{ .Staging.String }}{{ end }}{{ if gt .StashCount 0 }} {{ .StashCount }}{{ end }} "
75
+ trailing_diamond = "\ue0b0"
76
+
77
+ [blocks.segments.properties]
78
+ branch_max_length = 25
79
+ fetch_stash_count = true
80
+ fetch_status = true
81
+ fetch_upstream_icon = true
82
+
83
+ [[blocks]]
84
+ alignment = "right"
85
+ type = "prompt"
86
+
87
+ [[blocks.segments]]
88
+ type = "react"
89
+ background = "#B9AEDA"
90
+ foreground = "#101010"
91
+ style = "powerline"
92
+ powerline_symbol = "\ue0b2"
93
+ invert_powerline = true
94
+ template = " \ue7ba {{ .Full }} "
95
+
96
+ [[blocks.segments]]
97
+ type = "tauri"
98
+ background = "#FFC799"
99
+ foreground = "#101010"
100
+ style = "powerline"
101
+ powerline_symbol = "\ue0b2"
102
+ invert_powerline = true
103
+ template = " \ue8bb {{ .Full }} "
104
+
105
+ [[blocks.segments]]
106
+ type = "rust"
107
+ background = "#FF8080"
108
+ foreground = "#101010"
109
+ style = "powerline"
110
+ powerline_symbol = "\ue0b2"
111
+ invert_powerline = true
112
+ template = " \ue7a8 {{ .Full }} "
113
+
114
+ [[blocks.segments]]
115
+ type = "go"
116
+ background = "#B9AEDA"
117
+ foreground = "#101010"
118
+ style = "powerline"
119
+ powerline_symbol = "\ue0b2"
120
+ invert_powerline = true
121
+ template = " \ue627 {{ .Full }} "
122
+
123
+ [[blocks.segments]]
124
+ type = "lua"
125
+ background = "#B9AEDA"
126
+ foreground = "#101010"
127
+ style = "powerline"
128
+ powerline_symbol = "\ue0b2"
129
+ invert_powerline = true
130
+ template = " \ue620 {{ .Full }} "
131
+
132
+ [[blocks.segments]]
133
+ type = "node"
134
+ background = "#161616"
135
+ foreground = "#FFFFFF"
136
+ style = "diamond"
137
+ leading_diamond = "\ue0b2"
138
+ template = "{{ if .PackageManagerIcon }}{{ .PackageManagerIcon }} {{ end }}{{ .Full }} "
139
+ trailing_diamond = "<transparent,#161616>\ue0b2</>"
140
+
141
+ [blocks.segments.properties]
142
+ fetch_package_manager = true
143
+ npm_icon = " <#99FFE4>\uE71E</> "
144
+ bun_icon = " <#FFFFFF>\ue76f</> "
145
+ pnpm_icon = " <#FFC799>\ue865</> "
146
+
147
+ [[blocks.segments]]
148
+ type = "claude"
149
+ background = "#FFC799"
150
+ foreground = "#101010"
151
+ style = "diamond"
152
+ leading_diamond = "\ue0b2"
153
+ template = " \uee0d {{ .Model.DisplayName }} \uf2d0 {{ .TokenUsagePercent.Gauge }} "
154
+ trailing_diamond = "<transparent,#FFC799>\ue0b2</>"
155
+
156
+ [[blocks.segments]]
157
+ type = "text"
158
+ background = "#CC9F7A"
159
+ foreground = "#101010"
160
+ style = "powerline"
161
+ powerline_symbol = "\ue0b2"
162
+ invert_powerline = true
163
+ template = "<parentBackground></>"
164
+
165
+ [[blocks.segments]]
166
+ type = "text"
167
+ background = "#E6B38A"
168
+ foreground = "#101010"
169
+ style = "powerline"
170
+ powerline_symbol = "\ue0b2"
171
+ invert_powerline = true
172
+ template = "<parentBackground></>"
173
+
174
+ [[blocks.segments]]
175
+ type = "time"
176
+ background = "#FFC799"
177
+ foreground = "#101010"
178
+ style = "diamond"
179
+ template = " \uf4ab {{ .CurrentDate | date .Format }} "
180
+ trailing_diamond = "\ue0b0"
181
+
182
+ [[blocks]]
183
+ alignment = "left"
184
+ newline = true
185
+ type = "prompt"
186
+
187
+ [[blocks.segments]]
188
+ type = "status"
189
+ foreground = "#FFC799"
190
+ foreground_templates = [
191
+ "{{ if gt .Code 0 }}#FF8080{{ end }}"
192
+ ]
193
+ style = "plain"
194
+ template = "\u276f"
195
+
196
+ [blocks.segments.properties]
197
+ always_enabled = true
@@ -0,0 +1,9 @@
1
+ # ~/.config/ripgrep/config
2
+ # One option per line.
3
+
4
+ --smart-case
5
+ --hidden
6
+ --glob=!.git/
7
+ --glob=!node_modules/
8
+ --glob=!dist/
9
+ --glob=!build/
@@ -0,0 +1,88 @@
1
+ local wezterm = require 'wezterm'
2
+ local config = {}
3
+
4
+ config.window_close_confirmation = 'NeverPrompt'
5
+
6
+ --! DEFAULT SHELL
7
+ -- Default to PowerShell 7 on Windows.
8
+ -- Uncomment the line below to use WSL instead:
9
+ -- config.default_domain = wezterm.default_wsl_domains()[1] and wezterm.default_wsl_domains()[1].name
10
+ config.default_prog = { 'pwsh.exe', '-NoLogo' }
11
+
12
+ --! FONT
13
+ config.font = wezterm.font 'JetBrains Mono'
14
+
15
+ --! TAB BAR
16
+ -- Enabled (tmux not available natively on Windows; use WezTerm tabs instead)
17
+ config.enable_tab_bar = true
18
+ config.hide_tab_bar_if_only_one_tab = true
19
+ config.use_fancy_tab_bar = false
20
+
21
+ --! WINDOW
22
+ config.window_background_opacity = 0.9
23
+ -- Note: macos_window_background_blur is macOS-only and omitted here.
24
+
25
+ --! CURSOR
26
+ config.default_cursor_style = 'BlinkingBar'
27
+
28
+ --! COLOR SCHEME
29
+ config.color_scheme = 'Solarized Dark (Gogh)'
30
+ -- Alternates (uncomment to switch):
31
+ -- config.color_scheme = 'Vercel'
32
+ -- config.color_scheme = 'Vesper'
33
+
34
+ -- Override background for Solarized to match Ghostty
35
+ if config.color_scheme == 'Solarized Dark (Gogh)' then
36
+ config.colors = { background = '#031219' }
37
+ end
38
+
39
+ config.color_schemes = {
40
+ ['Vercel'] = {
41
+ --! The default text color
42
+ foreground = '#fafafa',
43
+ --! The default background color
44
+ background = '#101010',
45
+
46
+ cursor_bg = '#f32882',
47
+ cursor_fg = '#fafafa',
48
+ cursor_border = '#f32882',
49
+
50
+ selection_bg = '#005be7',
51
+ selection_fg = '#fafafa',
52
+
53
+ scrollbar_thumb = '#171717',
54
+ split = '#171717',
55
+
56
+ ansi = {
57
+ '#000000', '#fc0036', '#29a948', '#ffae00',
58
+ '#006aff', '#f32882', '#00ac96', '#feffff',
59
+ },
60
+ brights = {
61
+ '#a8a8a8', '#ff8080', '#4be15d', '#ffae00',
62
+ '#49aeff', '#f97ea8', '#00e4c4', '#fefefe',
63
+ },
64
+ },
65
+ ['Vesper'] = {
66
+ foreground = '#FFFFFF',
67
+ background = '#101010',
68
+
69
+ cursor_bg = '#FFC799',
70
+ cursor_fg = '#101010',
71
+ cursor_border = '#FFC799',
72
+
73
+ selection_bg = 'rgba(50% 50% 50% 50%)',
74
+ scrollbar_thumb = 'rgba(50% 50% 50% 50%)',
75
+ split = '#505050',
76
+
77
+ ansi = {
78
+ '#101010', '#F5A191', '#90B99F', '#E6B99D',
79
+ '#ACA1CF', '#E29ECA', '#EA83A5', '#A0A0A0',
80
+ },
81
+ brights = {
82
+ '#7E7E7E', '#FF8080', '#99FFE4', '#FFC799',
83
+ '#B9AEDA', '#ECAAD6', '#F591B2', '#FFFFFF',
84
+ },
85
+ },
86
+ }
87
+
88
+ return config
@@ -0,0 +1,36 @@
1
+ # =============================================================================
2
+ # PowerShell Profile — Entry Point
3
+ # =============================================================================
4
+ # Modular profile: dot-sources all scripts in modules/ and functions/.
5
+ # Symlink this file to:
6
+ # ~/Documents/PowerShell/Microsoft.PowerShell_profile.ps1
7
+
8
+ # Dotfiles config root — setup tool symlinks/copies .config files here
9
+ $Global:DotfilesConfig = Join-Path $env:USERPROFILE '.config'
10
+
11
+ # --- Load modules (feature-grouped config scripts) ---
12
+ $modulesDir = Join-Path (Split-Path -Parent $PSCommandPath) 'modules'
13
+ if (Test-Path $modulesDir) {
14
+ Get-ChildItem -Path $modulesDir -Filter '*.ps1' |
15
+ Sort-Object Name |
16
+ ForEach-Object { . $_.FullName }
17
+ }
18
+
19
+ # --- Load functions (individual utility functions) ---
20
+ $functionsDir = Join-Path (Split-Path -Parent $PSCommandPath) 'functions'
21
+ if (Test-Path $functionsDir) {
22
+ Get-ChildItem -Path $functionsDir -Filter '*.ps1' |
23
+ Sort-Object Name |
24
+ ForEach-Object { . $_.FullName }
25
+ }
26
+
27
+ # --- Bun ---
28
+ $bunBin = Join-Path $env:USERPROFILE '.bun\bin'
29
+ if (Test-Path $bunBin) {
30
+ $env:PATH = "$bunBin;$env:PATH"
31
+ }
32
+
33
+ # --- Greeting (fastfetch) ---
34
+ if (Get-Command fastfetch -ErrorAction SilentlyContinue) {
35
+ fastfetch
36
+ }
@@ -0,0 +1,37 @@
1
+ # =============================================================================
2
+ # Switch-PromptPalette — Theme switcher for oh-my-posh
3
+ # =============================================================================
4
+ # Converted from: dotfiles-macos/.config/fish/functions/tide_palette.fish
5
+ # Usage:
6
+ # Switch-PromptPalette solarized-dark # (default)
7
+ # Switch-PromptPalette vercel
8
+ # Switch-PromptPalette vesper
9
+ # Switch-PromptPalette list # show available palettes
10
+
11
+ function Switch-PromptPalette {
12
+ param(
13
+ [ValidateSet('solarized-dark', 'vercel', 'vesper', 'list')]
14
+ [string]$Palette = 'list'
15
+ )
16
+
17
+ if ($Palette -eq 'list') {
18
+ Write-Host 'Available palettes:'
19
+ Write-Host ' solarized-dark (default)'
20
+ Write-Host ' vercel'
21
+ Write-Host ' vesper'
22
+ return
23
+ }
24
+
25
+ # Persist selection
26
+ $configDir = Join-Path $env:USERPROFILE '.config\dotfiles'
27
+ if (-not (Test-Path $configDir)) {
28
+ New-Item -ItemType Directory -Path $configDir -Force | Out-Null
29
+ }
30
+ Set-Content -Path (Join-Path $configDir 'prompt-theme.txt') -Value $Palette
31
+
32
+ # Apply immediately
33
+ $themePath = Join-Path $Global:DotfilesConfig "omp-themes\$Palette.omp.toml"
34
+ oh-my-posh init pwsh --config $themePath | Out-String | Invoke-Expression
35
+
36
+ Write-Host "Prompt palette set to: $Palette"
37
+ }
@@ -0,0 +1,39 @@
1
+ # =============================================================================
2
+ # backup — Create a timestamped backup of a file
3
+ # =============================================================================
4
+ # Converted from: dotfiles-macos/.config/fish/functions/backup.fish
5
+ # Usage:
6
+ # backup <file> # backup in same directory
7
+ # backup <file> <destination> # backup in a specific directory
8
+
9
+ function backup {
10
+ param(
11
+ [Parameter(Mandatory, Position = 0)]
12
+ [string]$FilePath,
13
+
14
+ [Parameter(Position = 1)]
15
+ [string]$Destination
16
+ )
17
+
18
+ if (-not (Test-Path $FilePath)) {
19
+ Write-Error "File not found: $FilePath"
20
+ return
21
+ }
22
+
23
+ $timestamp = Get-Date -Format 'yyyyMMdd-HHmmss'
24
+ $fileName = [System.IO.Path]::GetFileName($FilePath)
25
+ $backupName = "$fileName.$timestamp.bak"
26
+
27
+ if ($Destination) {
28
+ if (-not (Test-Path $Destination)) {
29
+ Write-Error "Destination directory not found: $Destination"
30
+ return
31
+ }
32
+ $dest = Join-Path $Destination $backupName
33
+ } else {
34
+ $dest = Join-Path (Split-Path $FilePath) $backupName
35
+ }
36
+
37
+ Copy-Item -Path $FilePath -Destination $dest
38
+ Write-Host "Backup created: $dest"
39
+ }
@@ -0,0 +1,8 @@
1
+ # =============================================================================
2
+ # reload-shell — Restart the current PowerShell session
3
+ # =============================================================================
4
+ # Converted from: dotfiles-macos/.config/fish/functions/reload-fish.fish
5
+
6
+ function reload-shell {
7
+ & pwsh -NoLogo
8
+ }
@@ -0,0 +1,44 @@
1
+ # =============================================================================
2
+ # Aliases & Shortcuts
3
+ # =============================================================================
4
+ # Converted from: dotfiles-macos/.config/fish/conf.d/30-aliases.fish
5
+ # Fish abbreviations → PowerShell functions with @args forwarding.
6
+ # Note: tmux aliases are omitted (tmux not native on Windows).
7
+
8
+ # --- Git ---
9
+ if (Get-Command git -ErrorAction SilentlyContinue) {
10
+ function g { git @args }
11
+ function gs { git status @args }
12
+ function ga { git add @args }
13
+ function gaa { git add --all @args }
14
+ function gc { git commit @args }
15
+ function gcm { git commit -m @args }
16
+ function gp { git push @args }
17
+ function gpl { git pull @args }
18
+ function gd { git diff @args }
19
+ function gds { git diff --staged @args }
20
+ function gco { git checkout @args }
21
+ function gb { git branch @args }
22
+ function gl { git log --oneline --graph @args }
23
+ function gst { git stash @args }
24
+ function gstp { git stash pop @args }
25
+ }
26
+
27
+ # --- Lazygit ---
28
+ if (Get-Command lazygit -ErrorAction SilentlyContinue) {
29
+ function lg { lazygit @args }
30
+ }
31
+
32
+ # --- HTTPie ---
33
+ if (Get-Command http -ErrorAction SilentlyContinue) {
34
+ function hget { http GET @args }
35
+ function hpost { http POST @args }
36
+ function hput { http PUT @args }
37
+ function hdel { http DELETE @args }
38
+ }
39
+
40
+ # --- Btop (system monitor) ---
41
+ if (Get-Command btop -ErrorAction SilentlyContinue) {
42
+ function top { btop @args }
43
+ function htop { btop @args }
44
+ }
@@ -0,0 +1,13 @@
1
+ # =============================================================================
2
+ # Environment Variables
3
+ # =============================================================================
4
+ # Converted from: dotfiles-macos/.config/fish/conf.d/20-environment.fish
5
+
6
+ # --- $EDITOR / $VISUAL fallback chain: nvim > vim > nano ---
7
+ foreach ($editor in @('nvim', 'vim', 'nano')) {
8
+ if (Get-Command $editor -ErrorAction SilentlyContinue) {
9
+ $env:EDITOR = $editor
10
+ $env:VISUAL = $editor
11
+ break
12
+ }
13
+ }
@@ -0,0 +1,82 @@
1
+ # =============================================================================
2
+ # fzf — Fuzzy Finder Configuration
3
+ # =============================================================================
4
+ # Converted from: dotfiles-macos/.config/fish/conf.d/40-fzf.fish
5
+ # FZF_DEFAULT_OPTS is shell-agnostic — same value works on any shell.
6
+
7
+ if (-not (Get-Command fzf -ErrorAction SilentlyContinue)) { return }
8
+
9
+ # ╔══════════════════════════════════════╗
10
+ # ║ VERCEL ║
11
+ # ╚══════════════════════════════════════╝
12
+ # $env:FZF_DEFAULT_OPTS = @"
13
+ # --style=full:rounded
14
+ # --color=bg:-1,list-bg:-1,input-bg:-1,preview-bg:-1,header-bg:-1
15
+ # --color=fg:#A8A8A8,current-fg:#FEFFFF,query:#FEFFFF,ghost:#A8A8A8
16
+ # --color=current-bg:-1,selected-bg:-1
17
+ # --color=hl:#49AEFF,current-hl:#00E4C4,selected-hl:#00E4C4
18
+ # --color=info:#00AC96,header:#A8A8A8,prompt:#006AFF,pointer:#005BE7
19
+ # --color=marker:#F32882,spinner:#F32882,gutter:-1
20
+ # --color=border:#171717,list-border:#171717,input-border:#171717,preview-border:#171717,header-border:#171717
21
+ # --color=separator:#171717,label:#A8A8A8,list-label:#A8A8A8,input-label:#A8A8A8,preview-label:#A8A8A8,header-label:#A8A8A8
22
+ # --height 50% --layout reverse --info inline --marker '>' --pointer '>' --prompt '> '
23
+ # --bind 'ctrl-/:toggle-preview'
24
+ # "@
25
+
26
+ # ╔══════════════════════════════════════╗
27
+ # ║ VESPER ║
28
+ # ╚══════════════════════════════════════╝
29
+ # $env:FZF_DEFAULT_OPTS = @"
30
+ # --style=full:rounded
31
+ # --color=bg:-1,list-bg:-1,input-bg:-1,preview-bg:-1,header-bg:-1
32
+ # --color=fg:#A0A0A0,current-fg:#FFFFFF,query:#FFFFFF,ghost:#7E7E7E
33
+ # --color=current-bg:-1,selected-bg:-1
34
+ # --color=hl:#FFC799,current-hl:#FFC799,selected-hl:#FFC799
35
+ # --color=info:#A0A0A0,header:#7E7E7E,prompt:#FFC799,pointer:#FFC799
36
+ # --color=marker:#FFC799,spinner:#FFC799,gutter:-1
37
+ # --color=border:#282828,list-border:#282828,input-border:#282828,preview-border:#282828,header-border:#282828
38
+ # --color=separator:#282828,label:#7E7E7E,list-label:#7E7E7E,input-label:#7E7E7E,preview-label:#7E7E7E,header-label:#7E7E7E
39
+ # --height 50% --layout reverse --info inline --marker '>' --pointer '>' --prompt '> '
40
+ # --bind 'ctrl-/:toggle-preview'
41
+ # "@
42
+
43
+ # ╔══════════════════════════════════════╗
44
+ # ║ SOLARIZED DARK (active) ║
45
+ # ╚══════════════════════════════════════╝
46
+ $env:FZF_DEFAULT_OPTS = @"
47
+ --style=full:rounded
48
+ --color=bg:-1,list-bg:-1,input-bg:-1,preview-bg:-1,header-bg:-1
49
+ --color=fg:#839496,current-fg:#93A1A1,query:#93A1A1,ghost:#586E75
50
+ --color=current-bg:-1,selected-bg:-1
51
+ --color=hl:#B58900,current-hl:#CB4B16,selected-hl:#CB4B16
52
+ --color=info:#268BD2,header:#586E75,prompt:#B58900,pointer:#B58900
53
+ --color=marker:#B58900,spinner:#B58900,gutter:-1
54
+ --color=border:#586E75,list-border:#586E75,input-border:#586E75,preview-border:#586E75,header-border:#586E75
55
+ --color=separator:#586E75,label:#586E75,list-label:#586E75,input-label:#586E75,preview-label:#586E75,header-label:#586E75
56
+ --height 50% --layout reverse --info inline --marker '>' --pointer '>' --prompt '> '
57
+ --bind 'ctrl-/:toggle-preview'
58
+ "@
59
+
60
+ # --- fd integration (file/directory listing) ---
61
+ if (Get-Command fd -ErrorAction SilentlyContinue) {
62
+ $env:FZF_DEFAULT_COMMAND = 'fd --type file --strip-cwd-prefix --hidden --follow --exclude .git'
63
+ $env:FZF_CTRL_T_COMMAND = $env:FZF_DEFAULT_COMMAND
64
+ $env:FZF_ALT_C_COMMAND = 'fd --type dir --strip-cwd-prefix --hidden --follow --exclude .git'
65
+ }
66
+
67
+ # --- bat preview for Ctrl+T ---
68
+ if (Get-Command bat -ErrorAction SilentlyContinue) {
69
+ $env:FZF_CTRL_T_OPTS = "--preview 'bat --style=numbers --color=always --line-range :300 {}'"
70
+ }
71
+
72
+ # --- eza preview for Alt+C ---
73
+ if (Get-Command eza -ErrorAction SilentlyContinue) {
74
+ $env:FZF_ALT_C_OPTS = "--preview 'eza --tree --level=2 --icons --color=always {}'"
75
+ }
76
+
77
+ # --- PSFzf keybindings (Ctrl+F file search, Ctrl+R history) ---
78
+ if (Get-Module -ListAvailable -Name PSFzf -ErrorAction SilentlyContinue) {
79
+ Import-Module PSFzf
80
+ Set-PsFzfOption -PSReadlineChordProvider 'Ctrl+f'
81
+ Set-PsFzfOption -PSReadlineChordReverseHistory 'Ctrl+r'
82
+ }
@@ -0,0 +1,25 @@
1
+ # =============================================================================
2
+ # Prompt — oh-my-posh initialization
3
+ # =============================================================================
4
+ # Converted from: dotfiles-macos/.config/fish/conf.d/70-tide.fish
5
+ # Reads the active palette from ~/.config/dotfiles/prompt-theme.txt
6
+ # Valid values: solarized-dark (default), vercel, vesper
7
+
8
+ if (-not (Get-Command oh-my-posh -ErrorAction SilentlyContinue)) { return }
9
+
10
+ # Read persisted theme preference (defaults to solarized-dark)
11
+ $themeConfigDir = Join-Path $env:USERPROFILE '.config\dotfiles'
12
+ $themeConfigFile = Join-Path $themeConfigDir 'prompt-theme.txt'
13
+ $validThemes = @('solarized-dark', 'vercel', 'vesper')
14
+
15
+ if (Test-Path $themeConfigFile) {
16
+ $palette = (Get-Content $themeConfigFile -Raw).Trim()
17
+ } else {
18
+ $palette = 'solarized-dark'
19
+ }
20
+
21
+ if ($palette -notin $validThemes) { $palette = 'solarized-dark' }
22
+
23
+ $themePath = Join-Path $Global:DotfilesConfig "omp-themes\$palette.omp.toml"
24
+
25
+ oh-my-posh init pwsh --config $themePath | Out-String | Invoke-Expression
@@ -0,0 +1,52 @@
1
+ # =============================================================================
2
+ # CLI Tool Integrations
3
+ # =============================================================================
4
+ # Converted from: dotfiles-macos/.config/fish/conf.d/50-tools.fish
5
+ # Note: MANPAGER (bat as man pager) is omitted — man pages not used on Windows.
6
+
7
+ # --- bat (cat replacement) ---
8
+ if (Get-Command bat -ErrorAction SilentlyContinue) {
9
+ # Active theme: Solarized (dark)
10
+ # Alternates (uncomment to switch):
11
+ # $env:BAT_THEME = 'Vercel'
12
+ # $env:BAT_THEME = 'Vesper'
13
+ $env:BAT_THEME = 'Solarized (dark)'
14
+
15
+ function cat { bat --paging=never @args }
16
+ }
17
+
18
+ # --- eza (ls replacement) ---
19
+ if (Get-Command eza -ErrorAction SilentlyContinue) {
20
+ function ls { eza --icons --group-directories-first @args }
21
+ function ll { eza -l --icons --git --header --group-directories-first @args }
22
+ function la { eza -la --icons --git --header --group-directories-first @args }
23
+ function lt { eza --tree --level=2 --icons @args }
24
+ function lta { eza --tree --level=2 --icons -a @args }
25
+ }
26
+
27
+ # --- zoxide (smarter cd) ---
28
+ if (Get-Command zoxide -ErrorAction SilentlyContinue) {
29
+ Invoke-Expression (& { (zoxide init powershell | Out-String) })
30
+ }
31
+
32
+ # --- ripgrep ---
33
+ if (Get-Command rg -ErrorAction SilentlyContinue) {
34
+ $rgConfig = Join-Path $Global:DotfilesConfig 'ripgrep\config'
35
+ if (Test-Path $rgConfig) {
36
+ $env:RIPGREP_CONFIG_PATH = $rgConfig
37
+ }
38
+ }
39
+
40
+ # --- delta (git diff pager) ---
41
+ if (Get-Command delta -ErrorAction SilentlyContinue) {
42
+ $env:GIT_PAGER = 'delta'
43
+ }
44
+
45
+ # --- PSReadLine (history search + completion UX) ---
46
+ if (Get-Module -ListAvailable -Name PSReadLine -ErrorAction SilentlyContinue) {
47
+ Set-PSReadLineOption -PredictionSource History
48
+ Set-PSReadLineOption -PredictionViewStyle ListView
49
+ Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward
50
+ Set-PSReadLineKeyHandler -Key DownArrow -Function HistorySearchForward
51
+ Set-PSReadLineKeyHandler -Key Tab -Function MenuComplete
52
+ }