Configs managed with GNU Stow. CLI tools managed with mise.
git clone https://github.com/macintorsten/dotfiles.git ~/.dotfiles
bash ~/.dotfiles/bootstrap.sh
cd ~/.dotfiles && stow */
source ~/.bashrcbootstrap.sh is intentionally rootless: install stow, git, and curl yourself first if they are missing.
Global tools are defined in mise/.config/mise/config.toml. The config now prefers mise's built-in tool names and default backends where they are available, keeping a direct http: source only for tldr because it does not currently have a default registry entry in this setup. bootstrap.sh installs mise into ~/.local/bin, installs the configured tools, and shell startup exposes both mise and its shims so globally installed tools also work in non-login shells.
The current pinned release URLs target Linux x86_64, which matches the current WSL setup. If you want to use the repo on another platform later, extend the mise config with additional platform-specific URLs.
mise install # install everything from config.toml
mise exec -- jq --versionmise outdated
mise upgrade --bump # bump pinned versions in config.toml
mise installfnm has been replaced with mise. The config enables Node idiomatic version files, so .nvmrc-based projects can still work once you install a Node version with mise use -g node@lts.
The Vim config uses vim-fugitive and fzf.vim for lightweight git navigation:
Ctrl+Popens:GFiles<Leader>ggruns a repo-scopedgit grepfor the current word, or the visual selection, and opens quickfix<Leader>gsopens Fugitive status<Leader>gdopens a vertical git diff<Leader>gbopens git blame
If you want a small LSP upgrade later without changing editors, vim-lsp plus asyncomplete.vim would fit this setup well.
The Neovim config lives under nvim/.config/nvim and is intended to coexist with Vim rather than replace it.
- The config targets Neovim 0.12+ for the smoothest experience, while keeping a few small compatibility shims for older releases where that does not require dropping features.
- It keeps the core shortcuts familiar:
Ctrl+Pfor git files,Ctrl+Ffor files,Ctrl+Bfor buffers, and<Leader>gg/<Leader>gs/<Leader>gd/<Leader>gbfor git workflows. - Plugins are bootstrapped with
lazy.nvim, navigation usesfzf-lua, git usesvim-fugitiveplusgitsigns, and LSP/completion usemason.nvim,nvim-lspconfig, andnvim-cmp. - Use
:Colorsor<Leader>fcto preview installed colorschemes with live updates. mise installalso provides the Node host (npm:neovim) andtree-sitter-cliso Neovim health checks stay cleaner.- Install the
neovimbinary with your system package manager, then the firstnvimlaunch will install plugins automatically. - Java support is wired through
nvim-jdtls; installjdtlsfrom:Mason, and the config ensures the Java treesitter parser so once a JDK is available, opening a Maven/Gradle/git-backed Java project should mostly just work.
./test.sh # build Docker image
./test.sh -i # interactive shell