This repo contains my configuration files (aka dotfiles) and related scripts. Feel free to use whatever works for you. You may also find inspiration from repos that have inspired me.
# Fresh system bootstrap (installs Homebrew, Go, and configures everything)
bash -c "$(curl -fsSL https://raw.githubusercontent.com/cpplain/dotfiles/main/bin/bootstrap)"
# Or if you already have the repo cloned and lnk installed
cd ~/git/dotfiles
lnk --config home/.config/lnk/config.json create
This repository uses lnk
, a Go-based dotfile management tool with the following features:
- Fast execution - Written in Go for improved performance over shell scripts
- File-level and directory-level linking - Links individual files by default, directories when specified
- Adopt/orphan files - Easily add or remove files from version control
- Dual repositories - Separate public and private configuration repos
- Git integration - Automatically respects
.gitignore
patterns - Zero dependencies - Pure Go implementation using only the standard library
See the full lnk documentation for detailed usage.
Quick commands:
lnk status # Show all managed files
lnk adopt --path ~/.ssh/config --source-dir home # Add to dotfiles
lnk adopt --path ~/.ssh/config --source-dir private/home # Add to private repo
lnk orphan --path ~/.config/app # Remove from dotfiles
- OS: macOS
- Package manager: Homebrew
- Terminal: Ghostty
- Shell: fish
- Editor: Neovim (LazyVim)
- Font: SF Mono
- Symbols: Symbols Nerd Font
- Theme: Catppuccin
- Manual Configuration - Additional manual setup steps required after installation