This is a collection of configuration files for the tools that I like to use during software development: Neovim, Tmux (not so much anymore due to Neovide and my homegrown session management), Alacritty.
This project uses GNU Stow to create symlinks from this repository to your $HOME directory.
NOTE:
git clone https://github.com/WizardStark/dotfiles.git
cd dotfiles
./setup.sh
Use ./sync.sh after changing dotfiles-managed scripts or adding dependencies.
That includes newly added CLI dependencies such as worktrunk: keep them in the
repo-managed install sources (Brewfile or scripts/manifest.tsv) so setup.sh
and sync.sh bootstrap them automatically.
Pi is part of that reproducible setup:
scripts/manifest.tsvhome/.pi/agent/extensions/home/.pi/agent/settings.json
and ./sync.sh installs any missing entries via pi installedit tool override so edit diffs keep the customized full-width, syntax-highlighted TUI rendering without patching Pi’s installed files./sync.sh
./sync.sh applies changes by default; use --check for verification only.
If Homebrew/Linuxbrew is missing or not executable on the current host, ./sync.sh
now skips Brewfile-managed install/check steps and continues with the rest of the
repo-managed sync work on a best-effort basis.
Useful variants:
./sync.sh --check # verify Brewfile, extra tools, Pi packages, and stow state
./sync.sh --check --verbose
./sync.sh --with-sudo # also update login shell with sudo-backed chsh
Setup script variants depending on machine state:
./setup.sh # new machine bootstrap
./setup.sh --post-brew # brew already installed
./setup.sh --post-brew --no-sudo
The repo now uses a hybrid approach:
Brewfilestow still manages the dotfiles under home/mise runs the repo tasks declared in mise.tomlscripts/manifest.tsv tracks the non-brew extras managed by the sync flowCommon task entrypoints:
mise run bootstrap # new machine after setup.sh bootstraps mise itself
mise run sync # sync an existing machine
mise run sync-sudo # sync and update login shell with sudo
mise run sync-adopt # sync and let stow adopt existing unmanaged files
mise run sync-adopt-sudo
mise run check # verify current machine state
The most important keybinds are <space><space> in Neovim for the command palette,
wherein you can fuzzy find your way through most available commands, and <C-a>? for
a list of tmux binds - this is much less nice to use as I have not found a way to add
descriptions, but the commands are pretty self explanatory.
The tmux config is set up to use OSC 52 clipboard sync so tmux -> ssh -> tmux
copy operations update the local machine clipboard through the outer tmux client.
Requirements:
set-clipboard, refresh-client -l, and nested passthroughUseful tmux clipboard actions:
<C-a> y requests the current terminal clipboard and stores it in a new tmux
paste bufferTo prevent the Hyper key in windows opening copilot, run the following reg-edit command:
REG ADD HKCU\Software\Classes\ms-officeapp\Shell\Open\Command /t REG_SZ /d rundll32