Portable development environment bootstrap scripts and config files.
This repository is the source of truth for my development environment. Files under .config/ and .local/ are copied into my home directory by ./dev-env. Program installation is handled by scripts under runs/ through ./run.
Preview config installation without changing files:
./dev-env --dryInstall/copy config files:
./dev-envPreview one installer script:
./run --dry neovim
./run --dry tmux
./run --dry libsRun one installer script:
./run neovim
./run tmux
./run libsRun all installer scripts:
./runReload tmux config after changes:
tmux source-file ~/.config/tmux/tmux.confCheck Neovim startup:
nvim --headless '+quitall'Scripts in .local/scripts/ are copied to ~/.local/scripts/ by ./dev-env. Make sure this directory is on PATH; this repo expects ~/.zshrc to include:
export PATH="$HOME/.local/scripts:$PATH"Available scripts:
tmux-sessionizer: opensfzfover directories in~/personal, creates or switches to a tmux session named after the selected directory, starts the session in that directory, then runsready-tmuxinside it.ready-tmux: if the current project has an executable.ready-tmux, run it; otherwise run$HOME/.ready-tmuxif present; then clear the screen.
Typical usage:
tmux-sessionizerDependencies:
tmux, fzf
.config/ Shared app config copied to ~/.config
.local/ Shared local scripts copied to ~/.local
runs/ Program install scripts
run Runs scripts from runs/
dev-env Copies config and local files into $HOME
- Neovim config currently uses NvChad starter files under
.config/nvim. dev-envremoves and recopies managed config directories, so edit files in this repo first, then run./dev-env.- Existing Linux install scripts are currently Ubuntu/Debian oriented.
Use this prompt after cloning the repo on macOS:
Adapt this dev-env repo for macOS while keeping Linux support.
Goals:
- Keep one repo with shared config files.
- Keep the current Linux behavior working.
- Add OS-specific installer scripts for macOS using Homebrew instead of apt.
- Structure runs/ so common scripts, Linux scripts, and macOS scripts are clearly separated.
- Update ./run to detect the OS with uname and run the correct scripts.
- Keep ./dev-env responsible for copying shared config files.
- Verify with ./run --dry, ./dev-env --dry, shell syntax checks, and macOS-local commands like brew --version.
- Do not introduce submodules or auto-updating config repos.
Suggested structure:
runs/
common/
linux/
macos/
Please inspect the current repo first, propose the minimal safe migration, implement it, and test it on this Mac.