This repo is the portable userland layer for my development environment.
It keeps the OS-specific setup intentionally thin and puts the reusable tooling in mise, while Neovim keeps using Mason for editor-only LSPs, formatters, and related tooling.
Upon cloning pull latest submodules with:
git submodule update --init --remote --recursiveGet a decent terminal emulator before doing anything else.
- Linux and macOS: use
ghostty - Windows: use
wezterm
The default Windows path in this repo is still wezterm plus WSL, but native Windows also works for the shared mise and Neovim setup below.
Install these with your distro package manager:
curlorwgetgitgzipmaketarunzip
Clipboard integration is assumed to be handled by the host OS.
Install these first:
gitfor WindowsGit BashweztermVisual Studiocommunity edition: just theC++ developmentcomponents
Using Git Bash keeps the shell setup close to the Linux and WSL instructions. You can run it directly, or launch it inside wezterm.
Example wezterm config:
config.default_prog = { "C:/Program Files/Git/bin/bash.exe", "-l" }Install Xcode Command Line Tools first:
xcode-select --installThat covers the usual git, tar, and make requirements.
Install mise:
curl https://mise.run | shUse either:
scoop install miseor:
winget install jdx.miseActivate it in your shell.
echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrcecho 'eval "$(~/.local/bin/mise activate zsh)"' >> ~/.zshrcecho '~/.local/bin/mise activate fish | source' >> ~/.config/fish/config.fishecho 'eval "$(mise activate bash)"' >> ~/.bashrcOpen a new shell afterwards.
Copy the config into place:
mkdir -p ~/.config/mise
cp mise/config.toml ~/.config/mise/config.tomlOn native Windows from Git Bash, ~/.config/mise is fine too. Run mise config if you want to confirm the exact resolved path on your machine.
Then install everything:
mise installThis config manages:
buncmakeclangfexgithub-cligoneovimninjanodeodinopencodepythonripgreprustswifttree-sittertypstuvzig
On Windows need to add the shims to path via PowerShell:
$shim = "$env:LOCALAPPDATA\mise\shims"
[Environment]::SetEnvironmentVariable(
"Path",
$env:Path + ";" + $shim,
"User"
)Copy the Neovim config:
mkdir -p ~/.config
cp -r nvim ~/.config/On Windows the location is instead:
cp -r nvim/ ~/AppData/Local/Launch it to install:
nvimOn native Windows, Neovim itself still uses its normal Windows config location under %LOCALAPPDATA%\nvim, so treat the ~/.config copy step above as the Git Bash equivalent path rather than a guarantee about where stdpath("config") resolves.
Note: the current neovim config only looks for python interpreters in unix locations, so the
Scripts/python.exelocation in windows may not work without a future fix
For Docker, use your distro package manager. That usually installs the matching CLI together with the engine.
For Docker without Docker Desktop:
brew install colima docker
colima start