Skip to content

bsdlp/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

587 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dotfiles

Small macOS-only dotfiles for:

  • zsh with vi-mode keybinds
  • a lightweight Git prompt
  • right-side current path prompt
  • zsh syntax highlighting through Homebrew
  • Neovim config under ~/.config/nvim
  • mise for project-local tools and environment variables
  • Colima-backed Docker CLI

Install

Install Homebrew, then run:

./install.sh

Or run the steps yourself:

brew bundle
./bin/stow
make shell

make shell uses the first zsh on your PATH. If that is Homebrew zsh, macOS requires the full path to be listed in /etc/shells before chsh will accept it.

Notes

zsh is still the best default fit here because it is the macOS default shell, supports the right prompt natively, and keeps shell scripting behavior familiar. Fish is excellent interactively, but switching would mean rewriting shell config and accepting different scripting semantics for little benefit in this setup.

Secrets

Do not put plaintext secrets in this repo.

For machine-local secrets, create ~/.zshrc.local:

export AWS_PROFILE=personal
export SOME_API_KEY=...
export MISE_SOPS_AGE_KEY_FILE="$HOME/.config/mise/age.txt"

For project-local secrets, prefer mise.toml plus an untracked mise.local.toml, or an encrypted env file:

[env]
_.file = { path = ".env.json", redact = true }

mise can decrypt sops/age-encrypted .env.json, .env.yaml, and .env.toml files when the age key is available.

Neovim

Neovim uses Treesitter for syntax highlighting and LSP servers for IDE-like features. This config installs nvim-lspconfig and nvim-treesitter through Neovim's built-in vim.pack.

The Brewfile installs language servers for:

  • Go: gopls
  • TypeScript/React/CDK: typescript-language-server
  • Python: pyright
  • Protobuf: buf

The first Neovim launch may install plugins and Treesitter parsers. To refresh later, run :lua vim.pack.update() and :TSUpdate.

Docker

This setup uses Colima rather than Docker Desktop. Start it with:

colima start
docker context use colima

After that, docker and docker compose should use Colima's socket. Check with:

docker context ls
colima status

About

dotfiles for all

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors