My cross-platform, cross-shell configuration files and installation scripts managed with chezmoi:
- Zsh on Windows 11 WSL 2 Ubuntu 22.04
- Zsh on MacOS
- Zsh on Ubuntu 22.04
- Zsh on Fedora 36
- Powershell 7 on Windows 11
Documentation for my setup can be found on my notes website: Setup.
The files I think are most notable are listed below:
- Neovim configuration, based off LazyVim:
dot_config/nvim
- Tmux configuration:
dot_tmux.conf
- Integrated with neovim: uses same theme, seamless navigation between tmux and neovim splits
- Complex tmux sessions are managed easily using tmuxinator:
dot_config/tmuxinator
- Installation scripts: improve and standardize the CLI across operating systems
.chezmoiexternal.toml
- To see what software is installed, search for
url
- To see what software is installed, search for
- Unix-specific:
run_install-unix.sh.tmpl
- To see what software is installed, search for
dependencies
- Does not require Sudo privileges
- To see what software is installed, search for
- Windows-specific:
run_install-windows.ps1
- Encryption scripts: files with sensitive information are
encrypted
- Unix-specific:
run_before_decrypt-private-key-unix.sh.tmpl
- Windows-specific:
run_before_decrypt-private-key-windows.ps1.tmpl
- Unix-specific:
- Configuration files for software that is not managed with chezmoi:
reference_dotfiles
-
Install prerequisites
-
Install chezmoi in
~/.local/bin
, pulling and applying the latest changespushd ~ sh -c "$(curl -fsLS get.chezmoi.io/lb)" -- init --apply patrick-5546 popd
- To install without encrypted files, add
--branch no-encryption
to the init command
- To install without encrypted files, add
-
If desired, manually install software with unique installation instructions
-
Additional setup for Fedora
-
Configure dnf (run
man dnf.conf
to see options and defaults): append the following lines to/etc/dnf/dnf.conf
max_parallel_downloads=10 defaultyes=True keepcache=True
-
Install PowerShell 7 from the Microsoft Store
-
Install git and gsudo using winget in PowerShell
winget install --exact --id FiloSottile.age --interactive winget install --exact --id twpayne.chezmoi --interactive winget install --exact --id Git.Git --interactive
-
Clone this repository in PowerShell, pulling and applying the latest changes
chezmoi init --apply patrick-5546
-
Optional: run
run_install-windows.ps1
to match my unix developer experience- Prerequisite:
winget install --exact --id gerardog.gsudo --interactive
- Note: I do not run this automatically anymore because I do most of my development through WSL or VS Code. Instead, I now manage the software I want through WingetUI whenever possible
- Prerequisite: