mirror of
https://github.com/Xevion/dotfiles.git
synced 2025-12-06 01:14:48 -06:00
Add `wt` function to launch Windows Terminal with WSL in current directory across Bash, Fish, Nushell, and PowerShell. The function supports passing additional arguments while maintaining the current working directory context.
119 lines
3.9 KiB
Cheetah
119 lines
3.9 KiB
Cheetah
# Fish shell common configuration
|
|
# This template provides environment setup for Fish shell
|
|
|
|
# General configuration
|
|
set -gx EDITOR "micro"
|
|
set -gx GPG_TTY (tty)
|
|
set -gx MICRO_TRUECOLOR 1
|
|
set -gx TERM xterm-256color # fixes terminal colors when ssh'ing into laptop
|
|
|
|
# Authentication
|
|
set -gx OPENAI_API_KEY "{{ dopplerProjectJson.OPENAI_CHATGPT_CLI }}"
|
|
|
|
# PATH setup (batched for performance - reduces startup time by ~13ms)
|
|
set -l paths_to_add
|
|
|
|
# Collect paths with conditional checks
|
|
test -d $HOME/.hishtory && set -a paths_to_add $HOME/.hishtory
|
|
test -d $HOME/bin && set -a paths_to_add $HOME/bin
|
|
set -a paths_to_add /usr/local/bin $HOME/.local/bin
|
|
test -d /usr/local/go/bin && set -a paths_to_add /usr/local/go/bin # Go
|
|
test -d $HOME/go/bin && set -a paths_to_add $HOME/go/bin # Go-installed tools
|
|
test -d $HOME/.local/share/bob/nvim-bin && set -a paths_to_add $HOME/.local/share/bob/nvim-bin # Bob, Neovim package manager
|
|
|
|
# Deno (conditionally source env file or add to path list)
|
|
if test -d $HOME/.deno
|
|
if not source $HOME/.deno/env.fish 2>/dev/null
|
|
set -gx DENO_INSTALL $HOME/.deno
|
|
set -a paths_to_add $DENO_INSTALL/bin
|
|
end
|
|
end
|
|
|
|
# Rust/Cargo (source env file or add to path list)
|
|
if test -f $HOME/.cargo/env.fish
|
|
source $HOME/.cargo/env.fish
|
|
else if test -f $HOME/.cargo/env
|
|
# Fallback: parse bash env file
|
|
set -gx CARGO_HOME $HOME/.cargo
|
|
set -a paths_to_add $CARGO_HOME/bin
|
|
end
|
|
|
|
# Homebrew (cached for performance - reduces startup time by ~14ms)
|
|
if test -f /home/linuxbrew/.linuxbrew/bin/brew
|
|
set -l brew_cache "$HOME/.cache/brew_env.fish"
|
|
set -l brew_bin "/home/linuxbrew/.linuxbrew/bin/brew"
|
|
|
|
# Regenerate cache if: doesn't exist, >7 days old, or brew binary is newer
|
|
if not test -f "$brew_cache"; \
|
|
or test (math (date +%s) - (stat -c %Y "$brew_cache" 2>/dev/null || echo 0)) -gt 604800; \
|
|
or test "$brew_bin" -nt "$brew_cache"
|
|
mkdir -p (dirname "$brew_cache")
|
|
$brew_bin shellenv > "$brew_cache" 2>/dev/null
|
|
end
|
|
|
|
test -f "$brew_cache" && source "$brew_cache"
|
|
end
|
|
|
|
set -gx PYENV_ROOT $HOME/.pyenv
|
|
|
|
# bun
|
|
set -gx BUN_INSTALL $HOME/.bun
|
|
set -a paths_to_add $BUN_INSTALL/bin
|
|
# Note: Bun's _bun file is bash-specific, Fish completions handled separately
|
|
|
|
# jenv (add to path list for later batch add)
|
|
if test -d $HOME/.jenv/bin
|
|
set -a paths_to_add $HOME/.jenv/bin
|
|
end
|
|
|
|
# pnpm
|
|
set -gx PNPM_HOME $HOME/.local/share/pnpm
|
|
set -a paths_to_add $PNPM_HOME
|
|
|
|
# spicetify
|
|
test -d $HOME/.spicetify && set -a paths_to_add $HOME/.spicetify
|
|
|
|
# pulumi
|
|
test -d $HOME/.pulumi/bin && set -a paths_to_add $HOME/.pulumi/bin
|
|
|
|
# dotnet
|
|
if test -d $HOME/.dotnet
|
|
set -gx DOTNET_ROOT $HOME/.dotnet
|
|
set -a paths_to_add $DOTNET_ROOT $DOTNET_ROOT/tools
|
|
end
|
|
|
|
# Batch add all collected paths (single PATH reconstruction instead of 17+ calls)
|
|
test -n "$paths_to_add[1]" && fish_add_path $paths_to_add
|
|
|
|
# Post-PATH initialization for tools that need commands available
|
|
if test -d $HOME/.jenv/bin; and command -q jenv
|
|
jenv init - fish | source
|
|
end
|
|
|
|
# Note: Aliases are defined in Fish-native format in ~/.config/fish/conf.d/abbr.fish
|
|
# The bash_aliases file contains bash-specific syntax and is not sourced here
|
|
|
|
{{- /* WSL-specific settings */ -}}
|
|
{{- if .data.wsl }}
|
|
|
|
## Ensures CLI apps open URLs in the default Windows browser
|
|
set -gx BROWSER 'powershell.exe /c start'
|
|
|
|
# Cursor IDE CLI (Windows installation accessible from WSL)
|
|
test -x /mnt/c/Users/Xevion/AppData/Local/Programs/cursor/resources/app/bin/cursor && \
|
|
fish_add_path /mnt/c/Users/Xevion/AppData/Local/Programs/cursor/resources/app/bin
|
|
|
|
# Zed Editor CLI (Windows installation accessible from WSL)
|
|
test -x /mnt/c/Users/Xevion/AppData/Local/Programs/Zed/bin/zed && \
|
|
fish_add_path /mnt/c/Users/Xevion/AppData/Local/Programs/Zed/bin
|
|
|
|
# Launch Windows Terminal in current directory
|
|
function wt
|
|
if test (count $argv) -eq 0
|
|
wt.exe -w 0 sp wsl --cd (pwd)
|
|
else
|
|
wt.exe -w 0 $argv wsl --cd (pwd)
|
|
end
|
|
end
|
|
{{- end }}
|