@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,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,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
|
+
}
|