Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dotfiles

macOS config and agent skills, kept in one repo and symlinked into place.

git clone https://github.com/atulkadian/dotfiles.git ~/projects/dotfiles
cd ~/projects/dotfiles
./install.sh

The installer finds its own location, so the repo works from any path.

Layout

├── install.sh
├── home/               mirrors $HOME; every file here is symlinked
│   ├── .gitconfig
│   ├── .zshrc
│   └── .oh-my-zsh/custom/themes/derpBox.zsh-theme
├── macOS/
│   ├── Brewfile        formulae and casks
│   └── terminal/       Terminal.app profiles
└── skills/             agent skills for Claude Code and Cursor

Drop a file anywhere under home/ and the next run links it. Its path relative to home/ is its path relative to $HOME.

Commands

Flag Does
(none) or --all all four steps below
--dotfiles link home/ into $HOME
--brew install Homebrew, then the Brewfile
--skills link each skill into Claude Code and Cursor
--terminal import the Terminal.app profile and make it the default
--export-terminal copy live Terminal.app settings back into the repo
--dry-run print what would happen, change nothing

Re-running is safe. Links already pointing here are skipped, and anything else in the way moves to <file>.bak.<timestamp> first.

Terminal profiles are imported rather than symlinked, because Terminal.app keeps them in a preferences domain instead of a file. Quit and reopen Terminal if a new window still shows the old profile.

Skills

Skills are linked one at a time, so ~/.claude/skills and ~/.cursor/skills stay real directories. Skills already on a machine keep working, and skills an agent writes later land on local disk rather than in this repo. This repo is public, so that boundary matters on a work machine.

Run ./install.sh --skills after a pull brings in a new skill. Format is in skills/README.md.

Machine-specific config

Work identities, per-machine PATH entries and tokens stay out of git. Two files, both gitignored and both optional:

File Loaded by
~/.gitconfig.local included from home/.gitconfig
~/.zshrc.local sourced at the end of home/.zshrc

A work identity scoped to one directory:

[includeIf "gitdir:~/projects/abc/"]
	path = ~/projects/abc/.gitconfig

About

Configs and stuff for my systems

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages