Overview
The dotfiles include comprehensive PATH configurations and installation scripts for multiple programming languages and runtimes. All language tools are properly integrated into the shell environment.
.NET development
Installation
# Arch Linux
yay -S dotnet-runtime dotnet-sdk aspnet-runtime
PATH configuration
.NET tools are added to PATH:
export PATH = "~/.dotnet/tools: $PATH "
Usage
dotnet --version
dotnet new console
dotnet build
dotnet run
Custom alias
A special alias for prettier test output:
alias dotnet-test-pretty = 'dotnet test --no-restore --verbosity=normal | awk ' \' '...' \' ''
Go programming
Installation
Environment setup
# Go
export GOPATH = $HOME / go
export PATH = $PATH : $GOPATH / bin
Usage
go version
go mod init myproject
go build
go run main.go
The GOPATH is set to $HOME/go, where all Go packages and binaries will be installed.
Rust development
Installation
Rust is installed via rustup:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Environment setup
Cargo environment is automatically loaded:
# Cargo
[ -s " $HOME /.cargo/env" ] && . " $HOME /.cargo/env"
Usage
rustc --version
cargo --version
cargo new myproject
cargo build
cargo run
Many CLI tools are installed via Cargo:
# Examples from the dotfiles
cargo install eza zoxide
Node.js with NVM
Installation
NVM (Node Version Manager) allows managing multiple Node.js versions:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
# Then install LTS version
nvm install --lts
Environment setup
export NVM_DIR = " $HOME /.nvm"
[ -s " $NVM_DIR /nvm.sh" ] && \. " $NVM_DIR /nvm.sh" # This loads nvm
[ -s " $NVM_DIR /bash_completion" ] && \. " $NVM_DIR /bash_completion" # This loads nvm bash_completion
Usage
nvm install --lts # Install latest LTS
nvm install 18 # Install specific version
nvm use 18 # Switch to version 18
nvm list # List installed versions
node --version
npm --version
Bun JavaScript runtime
Installation
Bun is a fast all-in-one JavaScript runtime:
curl -fsSL https://bun.sh/install | bash
Environment setup
# bun completions
[ -s "/home/jay/.bun/_bun" ] && source "/home/jay/.bun/_bun"
# bun
export BUN_INSTALL = " $HOME /.bun"
export PATH = " $BUN_INSTALL /bin: $PATH "
Usage
bun --version
bun run index.ts # Run TypeScript directly
bun install # Install dependencies
bun test # Run tests
Fast execution Bun executes JavaScript/TypeScript much faster than Node.js
Built-in tools Includes bundler, test runner, and package manager
TypeScript support Runs TypeScript files without compilation step
NPM compatible Works with existing NPM packages
Additional package managers
pnpm
export PNPM_HOME = "/home/jay/.local/share/pnpm"
case ": $PATH :" in
* ": $PNPM_HOME :" * ) ;;
*) export PATH = " $PNPM_HOME : $PATH " ;;
esac
Homebrew
For managing additional development tools:
[ -s "/home/linuxbrew/.linuxbrew/bin/brew" ] && eval "$( /home/linuxbrew/.linuxbrew/bin/brew shellenv)"
Development workflow optimization
Install language runtimes
Set up all required languages using the installation commands above
Verify PATH configuration
Ensure shell configuration files are properly linked with Stow
Restart shell
Source updated configuration: source ~/.zshrc
Verify installations
Check versions: dotnet --version, go version, cargo --version, etc.
All language tools integrate with:
Neovim/LazyVim : LSP servers auto-configured for each language
Tmux : Run development servers in separate panes
Lazygit : Manage version control across projects
Zsh completions : Tab completion for CLI commands
After installing any new language runtime, restart your shell or run source ~/.zshrc to load the environment changes.
Neovim - Editor with LSP support for all languages
Lazygit - Git interface for version control