- π Table of Contents
- π Overview
- π¦ Prerequisites
- π Repository Structure
- π Getting Started
- π€ Contributing
- π License
This repository contains my tracked shell, editor, terminal, and app configuration, plus bootstrap scripts for linking those files into a fresh machine safely.
- Unix-like operating system (MacOS, Linux, etc.)
gitinstalled on your machinecurlfor downloading dependencies when neededbashfor the bootstrap scripts
config/
βββ Brewfile # Homebrew packages and casks
βββ bootstrap/
β βββ vscode/ # VS Code bootstrap settings/extensions
βββ .config/ # tracked XDG config
β βββ zsh/ # aliases/functions split into modules
βββ examples/ # local/private config templates
βββ scripts/ # link and setup helpers
βββ setup/ # tracked dotfiles linked into $HOME
βββ install.sh # entrypoint for bootstrap commands- Clone the config repository:
git clone https://github.com/johnie/config- Change to the project directory:
cd config- Create symlinks for the tracked dotfiles:
./install.sh link- Run the setup doctor:
./install.sh doctorThe doctor checks:
- Homebrew availability
Brewfilesatisfaction- key commands used by the repo
- managed symlink targets
- expected local/private files such as
~/.gitconfig.local
- Optional follow-up steps for a fresh machine:
./install.sh packages
./install.sh macos
./install.sh ssh
./install.sh git
./install.sh vscode./install.sh packages runs brew bundle against the checked-in Brewfile.
You can also run it directly:
brew bundle --file ./BrewfileTracked files are meant to be symlinked. Machine-local or secret-bearing files should stay outside the repo.
examples/gitconfig.local.example->~/.gitconfig.localexamples/functions.private.example->~/.functions.privateexamples/zshrc.local.example->~/.zshrc.localexamples/npmrc.example->~/.npmrc
The linker backs up any existing target into ~/.dotfiles-backups/<timestamp>/ before replacing it with a symlink.
Contributions are welcome! Here are several ways you can contribute:
- Report Issues: Submit bugs found or log feature requests.
Click to expand
- Fork the Repository: Start by forking the project repository to your GitHub account.
- Clone Locally: Clone the forked repository to your local machine using a Git client.
git clone <your-forked-repo-url>
- Create a New Branch: Always work on a new branch, giving it a descriptive name.
git checkout -b new-feature-x
- Make Your Changes: Develop and test your changes locally.
- Commit Your Changes: Commit with a clear and concise message describing your updates.
git commit -m 'Implemented new feature x.' - Push to GitHub: Push the changes to your forked repository.
git push origin new-feature-x
- Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
Once your PR is reviewed and approved, it will be merged into the main branch.
This project is protected under the MIT License.