Skip to content

johnie/config

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

29 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Logo
CONFIG

My personal setup of dotfiles and applications

GitHub license git-last-commit GitHub commit activity GitHub top language


πŸ“– Table of Contents


πŸ“ Overview

This repository contains my tracked shell, editor, terminal, and app configuration, plus bootstrap scripts for linking those files into a fresh machine safely.


πŸ“¦ Prerequisites

  • Unix-like operating system (MacOS, Linux, etc.)
  • git installed on your machine
  • curl for downloading dependencies when needed
  • bash for the bootstrap scripts

πŸ“‚ Repository Structure

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

πŸš€ Getting Started

πŸ”§ Installation

  1. Clone the config repository:
git clone https://github.com/johnie/config
  1. Change to the project directory:
cd config
  1. Create symlinks for the tracked dotfiles:
./install.sh link
  1. Run the setup doctor:
./install.sh doctor

The doctor checks:

  • Homebrew availability
  • Brewfile satisfaction
  • key commands used by the repo
  • managed symlink targets
  • expected local/private files such as ~/.gitconfig.local
  1. 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 ./Brewfile

Private And Local Files

Tracked files are meant to be symlinked. Machine-local or secret-bearing files should stay outside the repo.

  • examples/gitconfig.local.example -> ~/.gitconfig.local
  • examples/functions.private.example -> ~/.functions.private
  • examples/zshrc.local.example -> ~/.zshrc.local
  • examples/npmrc.example -> ~/.npmrc

The linker backs up any existing target into ~/.dotfiles-backups/<timestamp>/ before replacing it with a symlink.


🀝 Contributing

Contributions are welcome! Here are several ways you can contribute:

Contributing Guidelines

Click to expand
  1. Fork the Repository: Start by forking the project repository to your GitHub account.
  2. Clone Locally: Clone the forked repository to your local machine using a Git client.
    git clone <your-forked-repo-url>
  3. Create a New Branch: Always work on a new branch, giving it a descriptive name.
    git checkout -b new-feature-x
  4. Make Your Changes: Develop and test your changes locally.
  5. Commit Your Changes: Commit with a clear and concise message describing your updates.
    git commit -m 'Implemented new feature x.'
  6. Push to GitHub: Push the changes to your forked repository.
    git push origin new-feature-x
  7. 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.


πŸ“„ License

This project is protected under the MIT License.

About

πŸ’» My main dotfiles

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors