mirror of
https://github.com/GeorgeSG/dotfiles.git
synced 2026-09-02 23:58:45 +00:00
2.8 KiB
2.8 KiB
Dotfiles
Personal dotfiles for macOS and Linux, managed with dotbot.
Structure
dotfiles/
├── home/ # Config files symlinked into $HOME
│ ├── config/ # ~/.config/* (alacritty, tmux, zsh, bash, etc.)
│ ├── claude/ # Claude Code config
│ ├── bashrc
│ ├── gitconfig
│ ├── tmux.conf
│ ├── vim/
│ ├── vimrc
│ └── zshenv
├── macos/ # macOS-specific: Brewfile, Caskfiles, iTerm2 config
├── shell/ # Shell scripts (setup, platform installers, clone, ssh)
├── functions/ # Utility scripts
├── fonts/ # Fonts
├── dotbot/ # Dotbot submodule
├── dotbot.default.yaml # Main dotbot config (always applied)
├── dotbot.personal.yaml # Personal brew casks
├── dotbot.setup-once.yaml # One-time setup (macOS defaults, repo clones)
└── install # Main install script
Installation
# Default setup (symlinks + shell plugins)
./install
# First-time macOS setup (run once: Xcode tools, macOS defaults, clone repos)
./install setup-once
# Personal apps (brew cask installs from Caskfile.personal)
./install personal
How It Works
./installruns dotbot withdotbot.default.yamlplus any additional configs passed as arguments- Dotbot creates symlinks from
home/into$HOME, creates directories, and runs shell commands. Folders inhome/configare symlinked to~/.config/<folder> - Platform detection: macOS runs
shell/install_apps_macos.sh, Linux runsshell/install_apps_linux.sh - Submodules: dotbot, tpm, Vundle.vim, and several zsh/bash plugins — run
git submodule update --init --recursiveif anything is missing
Important: .local files
Files matching *.local (e.g. .zshrc.local, .gitconfig.local, .bash_profile.local) are machine-specific overrides that exist only on the local machine. They are gitignored and not part of this repo. Do not modify, reference, or suggest changes to .local files.
Adding Config for a New Tool
- Put the config file under
home/config/<tool>/or directly inhome/ - Add a
link:entry indotbot.default.yamlpointing from the repo path to the target path in$HOME - If it needs a directory created first, add it under
create:in the same file - Run
./installto apply
Key Configs
| File | Linked to |
|---|---|
home/zshenv |
~/.zshenv |
home/gitconfig |
~/.gitconfig |
home/config/alacritty/ |
~/.config/alacritty/ |
home/config/tmux/ |
~/.config/tmux/ |
home/config/vim/ |
~/.vim/ |
home/config/zsh/ |
~/.config/zsh/ |
home/config/bash/ |
~/.config/bash/ |