Minimal dotfiles setup with safe symlink installation for Linux and macOS.
git/config->~/.gitconfiggit/ignore->~/.gitignore_globalshell/bash_aliases->~/.bash_aliasesshell/common.sh->~/.config/shell/common.shshell/linux.sh->~/.config/shell/linux.shshell/macos.sh->~/.config/shell/macos.shzsh/zshrc->~/.zshrczsh/zprofile->~/.zprofileoh-my-posh/theme.omp.json->~/.config/oh-my-posh/theme.omp.jsonnpm/npmrc->~/.npmrcalacritty/alacritty.toml->~/.config/alacritty/alacritty.tomlkonsole/Solyvie.profile->~/.local/share/konsole/Solyvie.profile(Linux)konsole/Solyvie-Alacritty.colorscheme->~/.local/share/konsole/Solyvie-Alacritty.colorscheme(Linux)pi/agent/settings.json->~/.pi/agent/settings.jsonpi/agent/keybindings.json->~/.pi/agent/keybindings.jsonpi/agent/prompts/commit.md->~/.pi/agent/prompts/commit.mdpi/agent/themes/*.json->~/.pi/agent/themes/*.json
- oh-my-posh: local theme file (no remote theme dependency)
- shell: shared cross-platform shell setup with Linux/macOS split
- opencode: PATH integration in
shell/bash_aliases - npm: basic npm config from your current setup
- pi: settings, keybindings, custom prompts, and themes (auth/sessions are not managed)
- local overrides: optional non-git shell overrides via
~/.config/shell/local.sh
The bootstrap automatically installs these zsh plugins:
- fzf - fuzzy finder (Ctrl+R for history, Ctrl+T for files)
- zsh-autosuggestions - autosuggestions from history
- zsh-history-substring-search - arrow key history search
Plugins are installed to ~/.fzf and ~/.zsh/. To reinstall manually:
./scripts/install-zsh-plugins.shFrom this directory, run:
chmod +x install.sh bootstrap.sh scripts/install-zsh-plugins.sh
./install.shOr use the bootstrap flow (installs dotfiles + zsh plugins):
./bootstrap.shPreview all actions without changing anything:
./install.sh --dry-run./install.sh --help--dry-run: print actions only--force: overwrite existing files instead of backing them up
When a target file already exists, it is moved to:
~/.dotfiles-backups/YYYYMMDD-HHMMSS/
unless you use --force.
This repo can export package manifests for reproducibility:
./scripts/export-packages.shCurrent supported exports (when available on the system):
packages/apt-manual.txtpackages/flatpak-apps.txtpackages/pnpm-global.jsonpackages/npm-global.jsonpackages/pipx.jsonpackages/cargo-install-list.txt
Restore helpers:
./scripts/install-packages-apt.sh./scripts/install-packages-apt-curated.sh./scripts/install-node-globals.sh- see
packages/README.mdfor notes and source categories
- Add a file/folder in this repository.
- Add a
link_file "source" "target"line ininstall.sh. - Run
./install.sh --dry-runand then./install.sh.