mirror of
https://github.com/Xevion/dotfiles.git
synced 2025-12-05 23:14:46 -06:00
Major shell migration replacing Zsh/Oh-My-Zsh with Fish shell: - Remove all Zsh configurations (dot_zshrc.tmpl, dot_p10k.zsh) - Remove Oh-My-Zsh external dependencies from .chezmoiexternal.toml - Add complete Fish shell setup with config.fish.tmpl and abbr.fish.tmpl - Implement Fish-native functions for lazy-loading tools (mise, pyenv, zoxide, etc.) - Create commonrc.fish.tmpl for cross-shell compatibility - Add Fish plugin management via Fisher (tide prompt, fzf.fish) - Update documentation (CLAUDE.md, TODO.md, ONBOARDING.md) to reflect Fish - Add .fish.tmpl file association to VS Code settings - Enhance PowerShell profile with lsd aliases - Configure git delta pager and zdiff3 merge conflict style - Update WSL keychain integration for Fish shell This migration maintains all existing tool integrations while improving startup performance through lazy-loading and Fish's native features.
95 lines
2.5 KiB
Bash
95 lines
2.5 KiB
Bash
# This template's argument is the shell as a string (bash, ...).
|
|
|
|
# general configuration
|
|
export EDITOR="micro"
|
|
export GPG_TTY=$(tty)
|
|
export MICRO_TRUECOLOR=1
|
|
export TERM=xterm-256color # fixes terminal colors when ssh'ing into laptop
|
|
|
|
# authentication
|
|
|
|
export OPENAI_API_KEY="{{ dopplerProjectJson.OPENAI_CHATGPT_CLI }}"
|
|
|
|
# hishtory
|
|
export HISHTORY_SERVER="https://hsh.{{ dopplerProjectJson.PRIVATE_DOMAIN }}"
|
|
export PATH="$PATH:$HOME/.hishtory"
|
|
{{ if eq .shell "bash" -}}
|
|
source $HOME/.hishtory/config.sh
|
|
{{- else -}}
|
|
{{ fail "Unexpected shell." }}
|
|
{{- end }}
|
|
|
|
export PATH=$HOME/bin:/usr/local/bin:$PATH
|
|
export PATH=$PATH:~/.local/bin
|
|
export PATH=$PATH:/usr/local/go/bin # Go
|
|
export PATH="$HOME/go/bin/:$PATH" # Go-installed tools
|
|
export PATH="$HOME/.local/share/bob/nvim-bin:$PATH" # Bob, the Neovim package manager
|
|
if [ -d "$HOME/.deno" ]; then
|
|
. "$HOME/.deno/env" # Deno
|
|
fi
|
|
. "$HOME/.cargo/env" # Rustup + Cargo + Cargo-installed tools
|
|
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)" # Brew
|
|
command -v rbenv &> /dev/null && eval "$(rbenv init -)" # rbenv for Ruby
|
|
command -v chatgpt &> /dev/null && . <(chatgpt --set-completions {{ .shell -}}) # chatgpt completions
|
|
{{ if eq .shell "bash" -}}
|
|
. "$HOME/.asdf/asdf.sh"
|
|
. "$HOME/.asdf/completions/asdf.bash"
|
|
{{- end }}
|
|
|
|
# pyenv, python version manager
|
|
export PYENV_ROOT="$HOME/.pyenv"
|
|
if [[ -d $PYENV_ROOT/bin ]]; then
|
|
export PATH="$PYENV_ROOT/bin:$PATH"
|
|
if command -v pyenv &> /dev/null; then
|
|
eval "$(pyenv init -)"
|
|
# pyenv virtual-env
|
|
eval "$(pyenv virtualenv-init -)"
|
|
fi
|
|
fi
|
|
|
|
# bun
|
|
export BUN_INSTALL="$HOME/.bun"
|
|
export PATH="$BUN_INSTALL/bin:$PATH"
|
|
[ -s "$HOME/.bun/_bun" ] && source "$HOME/.bun/_bun"
|
|
|
|
# java version manager
|
|
if [ -d $HOME/.jenv/bin ]; then
|
|
export PATH="$HOME/.jenv/bin:$PATH"
|
|
if command -v jenv &> /dev/null
|
|
then
|
|
eval "$(jenv init -)"
|
|
fi
|
|
fi
|
|
|
|
# pnpm
|
|
export PNPM_HOME="$HOME/.local/share/pnpm"
|
|
case ":$PATH:" in
|
|
*":$PNPM_HOME:"*) ;;
|
|
*) export PATH="$PNPM_HOME:$PATH" ;;
|
|
esac
|
|
|
|
# spicetify
|
|
if [ -d "$HOME/.spicetify" ]; then
|
|
export PATH=$PATH:$HOME/.spicetify
|
|
fi
|
|
|
|
# pulumi
|
|
if [ -d "$HOME/.pulumi/bin" ]; then
|
|
export PATH=$PATH:$HOME/.pulumi/bin
|
|
fi
|
|
|
|
. $HOME/.bash_aliases
|
|
|
|
|
|
{{- /* WSL-specific settings */ -}}
|
|
{{- if .data.wsl }}
|
|
|
|
## Ensures CLI apps open URLs in the default Windows browser (Chrome/Firefox/etc) instead of a CLI browser
|
|
export BROWSER='powershell.exe /c start'
|
|
{{- end }}
|
|
|
|
# dotnet
|
|
if [ -d "$HOME/.dotnet" ]; then
|
|
export DOTNET_ROOT="$HOME/.dotnet"
|
|
export PATH="$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools"
|
|
fi |