- 📖 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.