{"id":17085360,"url":"https://github.com/mdavis1982/dotfiles","last_synced_at":"2026-04-13T03:02:28.756Z","repository":{"id":189971284,"uuid":"681171967","full_name":"mdavis1982/dotfiles","owner":"mdavis1982","description":"Because `~` is where the ❤️ is.","archived":false,"fork":false,"pushed_at":"2025-10-07T21:46:36.000Z","size":64,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-13T10:17:45.276Z","etag":null,"topics":["dotfiles","dotfiles-installer","dotfiles-macos","dotfiles-setup"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mdavis1982.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-08-21T12:30:09.000Z","updated_at":"2025-10-07T21:46:40.000Z","dependencies_parsed_at":"2023-11-08T23:35:37.303Z","dependency_job_id":"e7f79f9f-c053-4300-9da4-5340113f2c94","html_url":"https://github.com/mdavis1982/dotfiles","commit_stats":null,"previous_names":["mdavis1982/dotfiles"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mdavis1982/dotfiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdavis1982%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdavis1982%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdavis1982%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdavis1982%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mdavis1982","download_url":"https://codeload.github.com/mdavis1982/dotfiles/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdavis1982%2Fdotfiles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279014680,"owners_count":26085554,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dotfiles","dotfiles-installer","dotfiles-macos","dotfiles-setup"],"created_at":"2024-10-14T13:24:16.289Z","updated_at":"2026-04-13T03:02:28.751Z","avatar_url":"https://github.com/mdavis1982.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dotfiles\nBecause `~` is where the ❤️ is.\n\nA single command to go from a fresh Mac to a fully configured development machine - with modular app bundles, an opinionated shell, and a complete [Claude Code](https://docs.anthropic.com/en/docs/claude-code) setup including a custom statusline and skills.\n\n\u003c!-- screenshot: Terminal with the Lick prompt in one of the bundled themes --\u003e\n![Terminal](screenshots/terminal.png)\n\n---\n\n## Highlights\n- **One command install** - interactive, idempotent, and safe to re-run\n- **Modular Brewfiles** - pick only what you need: dev tools, audio production, video editing, electronics, 3D printing, or games\n- **Custom ZSH theme** - the [Lick](#lick-theme) prompt with git status at a glance\n- **Claude Code configuration** - settings, a [custom statusline](#statusline), [MCP servers](#mcp-servers) with secret management, and skills.\n- **Three Terminal themes** - Carbon, Palenight, and Tokyo Night. Choose your favourite.\n- **Hardware-aware** - optional installs for Elgato, Logitech, and Røde gear\n\n---\n\n## What's Inside\n```\ndotfiles/\n├── install.sh                      # Entry point - runs everything below\n├── bootstrap/\n│   └── Terminal/                    # macOS Terminal.app themes\n│       ├── Carbon.terminal\n│       ├── Palenight.terminal\n│       └── Tokyo Night.terminal\n├── installers/\n│   ├── command-line-tools/          # Validates Xcode Command Line Tools\n│   ├── filesystem/                  # Creates ~/* directories\n│   ├── git/                         # .gitconfig + global .gitignore\n│   ├── oh-my-zsh/                   # Shell config, theme \u0026 aliases\n│   │   └── data/custom/\n│   │       ├── git.zsh              # Git aliases\n│   │       ├── homebrew.zsh         # Homebrew shell setup\n│   │       ├── laravel.zsh          # Laravel aliases\n│   │       ├── path.zsh             # PATH setup\n│   │       └── themes/\n│   │           └── lick.zsh-theme   # Custom prompt\n│   ├── homebrew/                    # Modular Brewfile system\n│   │   └── data/\n│   │       ├── Brewfile.core\n│   │       ├── Brewfile.development\n│   │       ├── Brewfile.audio\n│   │       ├── Brewfile.video\n│   │       ├── Brewfile.electronics\n│   │       ├── Brewfile.3dprinting\n│   │       └── Brewfile.games\n│   └── claude-code/                 # Claude Code config \u0026 skills\n│       └── data/global/\n│           ├── CLAUDE.md\n│           ├── settings.json\n│           ├── statusline.sh\n│           ├── mcp.json\n│           └── skills/\n│               └── \u003cvarious skills\u003e\n```\n\n---\n\n## Quick Start\n```bash\ngit clone https://github.com/your-username/dotfiles.git ~/Developer/Other/dotfiles\ncd ~/Developer/Other/dotfiles\n./install.sh\n```\n\nThe installer walks you through each step interactively. Nothing runs without your say-so - every major section asks before proceeding. It's safe to run multiple times; it checks for existing installations and won't re-install things that are already there.\n\nThe installer will:\n\n1. Verify Xcode Command Line Tools are present\n2. Create the filesystem directory structures\n3. Configure Git\n4. Install and configure Oh My ZSH!\n5. Bootstrap apps via Homebrew (you choose which modules)\n6. Configure Claude Code (settings, statusline, skills, MCP servers)\n\n---\n\n## Modules\nThe Homebrew step uses a modular Brewfile system. The core module always installs; the rest are opt-in.\n\n### Core\nInstalled on every machine.\n\n| Type | Apps |\n|------|------|\n| Communication | ChatGPT, Discord, Slack, Telegram, Zoom |\n| Productivity | Dropbox, Google Chrome, Rocket |\n| Office | Keynote, Numbers, Pages |\n\n### Development\n| Type | Apps |\n|------|------|\n| Editor \u0026 IDE | Claude Code, VS Code, PHPStorm |\n| Fonts | JetBrains Mono |\n| CLI | jq, uv |\n| Database | TablePlus |\n| Design | Figma, SF Symbols |\n| PHP | Herd, Tinkerwell |\n| Other | Godot, Xcode |\n\n### Audio\n| Type | Apps |\n|------|------|\n| CLI | FFmpeg, SOX, yt-dlp |\n| DAW | Logic Pro, MainStage |\n| Plugins | iK Product Manager |\n| Live | QLab |\n\n### Video\n| Type | Apps |\n|------|------|\n| Editor | Final Cut Pro |\n\n### Electronics\n| Type | Apps |\n|------|------|\n| PCB Design | KiCad |\n| Microcontrollers | Arduino IDE |\n\n### 3D Printing\n| Type | Apps |\n|------|------|\n| CAD | Autodesk Fusion |\n| Slicer | Bambu Studio |\n\n### Games\n| Type | Apps |\n|------|------|\n| Games | Minecraft |\n\n### Hardware\nOptional per-device installs, prompted individually:\n\n- **Logi Options+** - Logitech peripherals\n- **Stream Deck** - Elgato Stream Deck\n- **Elgato Control Center** - Elgato lights \u0026 accessories\n- **Røde Central** - Røde audio interfaces \u0026 microphones\n\n---\n\n## Shell\n\n### Lick Theme\nA clean, informative ZSH prompt:\n\n\u003c!-- screenshot: The Lick prompt in action --\u003e\n![Lick Theme](screenshots/lick-theme.png)\n\nShows your username, machine name, current directory, and git branch with a dirty/clean indicator (red ✖︎ / green ●). Supports custom machine names via `~/.machine-name`.\n\n### Git Aliases\n```bash\nnah     # Discard all uncommitted changes and untracked files\nprune   # Remove local references to deleted remote branches\nwip     # Quick work-in-progress commit of all changes\n```\n\n### Laravel Aliases\n```bash\npa      # php artisan\ntinker  # php artisan tinker\nllog    # Tail the Laravel log with highlighted timestamps and exceptions\n```\n\n### PATH\nSets up PATH for Homebrew, Composer, Node, local binaries (`~/.local/bin`), and project-local `vendor/bin` and `node_modules/.bin` - so project tools always take priority.\n\n---\n\n## Git Configuration\nAn opinionated `.gitconfig` with sensible defaults:\n\n- **Aliases** - `br`, `co`, `st` for branch, checkout, status\n- **Whitespace** - aggressive detection and auto-fix on apply\n- **Branches** - sorted by most recently committed\n- **Diff** - detects copies as well as renames\n- **Fetch** - auto-prunes deleted remote branches\n- **Push** - auto-follows annotated tags\n- **Help** - prompts to correct mistyped commands\n- **Performance** - untracked file caching, safe rebase on macOS\n\nThe global `.gitignore` covers macOS system files (`.DS_Store`, `.AppleDouble`), IDE files (`.idea`), environment files (`.env`), and Claude Code local settings.\n\n---\n\n## Claude Code\nThis repo ships a full Claude Code configuration - not just settings, but a custom statusline, skills, and MCP server management with interactive secret injection.\n\n### Statusline\nA custom statusline that replaces the default Claude Code status bar with a live dashboard:\n\n\u003c!-- screenshot: The statusline in Claude Code --\u003e\n![Statusline](screenshots/statusline.png)\n\nShows repository name with git dirty/clean status, token usage with SI notation, context window usage with colour-coded warnings (green → yellow → red as you approach limits), session duration, and Claude version.\n\n### Skills\nShips with custom skills in `~/.claude/skills/` that extend Claude's capabilities. Add your own by dropping `.md` files into the skills directory.\n\n### MCP Servers\nThe installer manages MCP server configuration with a clever secret injection system. Server definitions live in `mcp.json` with `${PLACEHOLDER}` values for secrets. During installation, the script:\n\n1. Detects which environment variables need values\n2. Checks if they're already set in `~/.claude.json`\n3. Prompts for missing values (with masked input)\n4. Merges the configuration non-destructively using `jq`\n\nAdd your own servers by editing `mcp.json`.\n\n---\n\n## Terminal Themes\nThree themes for macOS Terminal.app, bundled in `bootstrap/Terminal/`:\n\n| Theme | Description |\n|-------|-------------|\n| Carbon | Dark with warm tones |\n| Palenight | Material Design inspired |\n| Tokyo Night | Cool blue palette |\n\nImport them via Terminal → Settings → Profiles → Import.\n\n---\n\n## Filesystem\nThe installer creates a tidy project structure:\n\n```\n~/Developer/\n├── Apps/\n├── Games/\n├── Packages/\n├── Sites/\n└── Other/\n```\n\n---\n\n## Contributing\nThis is a personal configuration, but if you spot something useful and want to adapt it - go for it. Fork it, strip out the bits you don't need, and make it yours.\n\n## License\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmdavis1982%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmdavis1982%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmdavis1982%2Fdotfiles/lists"}