A collection of dotfiles I use on macOS and various Linux distros.
Shameless plug: I have been developing an alternative to GNU stow for fun called boxunbox. It is designed for my use case, so they are not the same. Check it out!
The biggest difference is how they handle packages; stow just replicates the directory structure with relative links while boxunbox allows more fine-grained control over what gets linked where via config files. It also uses absolute links by default. I found this to be better for my own personal use case.
Each folder is an individual "package". Anything loose or multi-platform (e.g. oh-my-posh) is in the home package. Linking a package is easy; just unbox it:
unbox homeAnd that's it! The .unboxrc.ron file(s) takes care of the rest.
Installs with Homebrew:
brew install jandedobbeleer/oh-my-posh/oh-my-poshor manually, with an installation script (Linux only).
Arch
If you're using Arch Linux and don't want to use Homebrew, there is an unofficial AUR package (oh-my-posh-bin) that updates daily. Install that with whatever tool you prefer.
oh-my-posh can also be used to install nerd fonts. For example:
oh-my-posh font install JetBrainsMonoMy current terminal emulators are ghostty for macOS and foot on Linux. Both require the JetBrainsMono Nerd Font to work properly with my configs.
This is the single most important file in this repo, as well as the only requried one.
zsh plugins are installed automatically via zcomet.
These are used by zcomet and other tools:
gccgitmakeunzipzsh
Important
Don't forget to change your shell to zsh if necessary. Do not run the command as root! You want to change your user shell:
chsh -s /usr/bin/zshbatcatreplacement with syntax highlighting, paging, and more.
eza- An improved
lscommand. Replaced my use oflsdin this config.
- An improved
fd- A faster file finder.
fzf- A fuzzy finder that works with almost anything.
lazygit- My favorite terminal-based git client. Also runs in neovim!
neovim- My favorite text editor. Follow the instructions in the linked repository, there are a few extra dependencies not found here.
ripgrepgrepreplacement that is faster and easier to use.
zoxidecdreplacement with fuzzy directory finding.
These packages install tools that are used in this repository, but are not required for it to work.
flutter- Flutter toolkit.
fnm- Fast Node Manager. A fast, cross-platform Node version manager that works quite well with environments.
go- Golang toolkit.
jenv- Manages the Java environment, making switching versions easy. Note: does not install Java, only manages installed versions.