{"id":13479270,"url":"https://github.com/codfish/dotfiles","last_synced_at":"2025-03-17T16:30:48.123Z","repository":{"id":13091484,"uuid":"15772763","full_name":"codfish/dotfiles","owner":"codfish","description":"My macOS dotfiles: Oh My Zsh, git, brew, node, mac settings, mac apps, and more.","archived":false,"fork":false,"pushed_at":"2024-02-07T21:31:16.000Z","size":18656,"stargazers_count":8,"open_issues_count":1,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-02-27T21:31:22.031Z","etag":null,"topics":["dotfiles","homebrew","macos","node","oh-my-zsh"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/codfish.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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}},"created_at":"2014-01-09T16:51:33.000Z","updated_at":"2024-04-14T18:32:36.314Z","dependencies_parsed_at":"2024-02-07T22:45:03.217Z","dependency_job_id":null,"html_url":"https://github.com/codfish/dotfiles","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codfish%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codfish%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codfish%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codfish%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codfish","download_url":"https://codeload.github.com/codfish/dotfiles/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243871357,"owners_count":20361338,"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","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","homebrew","macos","node","oh-my-zsh"],"created_at":"2024-07-31T16:02:12.524Z","updated_at":"2025-03-17T16:30:48.105Z","avatar_url":"https://github.com/codfish.png","language":"Shell","funding_links":[],"categories":["Shell"],"sub_categories":[],"readme":"# Dotfiles\n\n\u003e My macOS dotfiles for Zsh.\n\n## Features\n\n**Note:** Installation of `Oh My Zsh` is not optional. Everything else listed\nbelow can be opted-out of.\n\n- Installs Oh My Zsh with custom [exports](oh-my-zsh-custom/02-exports.zsh), [aliases](oh-my-zsh-custom/03-aliases.zsh), and [paths](oh-my-zsh-custom/01-paths.zsh).\n- Loads a [selection of omz plugins](dotfiles/zshrc#L66) and [custom functions](functions).\n- Installs custom \"dotfiles\":\n  - [`.curlrc`](dotfiles/curlrc)\n  - [`.gemrc`](dotfiles/gemrc)\n  - [`.gitattributes`](dotfiles/gitattributes)\n  - [`.gitconfig`](dotfiles/gitconfig)\n  - [`.gitignore`](dotfiles/gitignore)\n  - [`.zshrc`](dotfiles/zshrc)\n- Installs Homebrew, volta \u0026 latest version of node, composer \u0026 latest version of php\n- Installs selection of brew formulae \u0026 node packages\n- Runs `brew update`, `brew upgrade` and `brew cleanup`\n- Sets custom [macOS defaults](bin/macosdefaults)\n- Installs Applications via `brew cask`\n\n## Installation\n\nThe installation step requires the [XCode Command Line\nTools](https://developer.apple.com/downloads) and may overwrite existing\ndotfiles in your HOME and `.vim` directories.\n\n```sh\n/bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/codfish/dotfiles/main/install.sh)\"\n```\n\nIf you wish to fork this project and maintain your own dotfiles, fork it and\nrun the following:\n\n```sh\nDOTFILES_REPO=yourhandle/dotfiles /bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/yourhandle/dotfiles/main/install.sh)\"\n```\n\n## Usage\n\nRun the dotfiles command:\n\n```sh\ndotfiles\n```\n\nYou should run the update when:\n\n- You make a change to `~/.dotfiles/git/gitconfig` (the only file that is\n  copied rather than symlinked).\n- You want to pull changes from the remote repository.\n- You want to update Homebrew formulae and Node packages.\n\nOptions:\n\n\u003ctable\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003e-h\u003c/code\u003e, \u003ccode\u003e--help\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eHelp\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003e-l\u003c/code\u003e, \u003ccode\u003e--list\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eList of additional applications to install\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003e--no-packages\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eSkip package (brew/node/etc) updates\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003e--no-sync\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eSkip pulling from the remote repository\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003e--no-macos\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eSkip macOS settings update\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003e--with-apps\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eOpt-in to install mac apps via brew cask (won't install/update if it's already present)\u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\n## Oh My Zsh\n\nThese dotfiles essentially wrap [Oh My Zsh](https://ohmyz.sh/). When you install the dotfiles, Oh My Zsh will also get installed for you directly into the `~/.dotfiles` directory.\n\n- `$ZSH` will be `~/.dotfiles/oh-my-zsh`\n- `$ZSH_CUSTOM` will be `~/.dotfiles/oh-my-zsh-custom`\n- Opinionated set of plugins are loaded\n- Everything is configurable if you want to change things\n\n### Oh My Zsh Plugins\n\n- aws\n- git\n- iterm2\n- history-substring-search\n- z\n\n## Homebrew formulae\n\n- GNU core utilities\n- [ack](http://betterthangrep.com/)\n- awscli\n- coreutils\n- deno\n- [git](http://git-scm.com/)\n- go\n- [heroku](https://devcenter.heroku.com/articles/heroku-cli)\n- [jq](https://stedolan.github.io/jq/)\n- MongoDB\n- MySQL\n- [nginx](https://www.nginx.com/)\n- [nvm](https://github.com/creationix/nvm)\n- [php](https://formulae.brew.sh/formula/php)\n- python\n- [rbenv](https://github.com/rbenv/rbenv) (and [ruby-build](https://github.com/rbenv/ruby-build))\n- [rsync](https://rsync.samba.org/) (latest version, rather than the out-dated macOS installation)\n- [tmux](https://github.com/tmux/tmux/wiki)\n- [wget](http://www.gnu.org/software/wget/)\n\n## Mac Applications Installed via Homebrew cask\n\n- Alfred 4\n- AppCleaner\n- Brave Browser\n- CloudApp\n- Docker Desktop\n- Express VPN\n- Google Chrome\n- Google Drive\n- iTerm2\n- Notion\n- Postman\n- Slack\n- Spotify\n- Visual Studio Code\n- zoom.us\n\n## Node packages\n\n- [vercel](https://vercel.com/)\n- [renamer](https://github.com/75lb/renamer)\n- [npm-check](https://github.com/dylang/npm-check)\n\n## Custom macOS defaults\n\nCustom macOS settings can be applied during the `dotfiles` process. You'll be prompted before this happens so you can say no.\n\nThey can also be applied independently by running the following command:\n\n```sh\nmacosdefaults\n```\n\n## Local/private\n\nAny private and custom Bash commands and configuration should be placed in a\n`~/.zshrc.before` or `~/.zshrc.after` file. These files will not be under\nversion control or committed to a public repository. If either or both exists,\nthey will be sourced for inclusion in `.zshrc`.\n\n- `~/.zshrc.before`: Sourced **before** `oh-my-zsh.sh` is loaded, therefore allowing you to effect what happens when `oh-my-zsh.sh` runs, without changing any tracked files. Some examples would be the `ZSH_THEME` or specific Oh My Zsh plugin configurations.\n- `~/.zshrc.after`: Sourced **after**  `oh-my-zsh.sh` is loaded. You can override anything that was set by `oh-my-zsh.sh`.\n\nHere is an example `~/.zshrc.before`:\n\n```sh\n# PATH exports\nPATH=$PATH:~/.gem/ruby/1.8/bin\nexport PATH\n\n# Git credentials\n# Not under version control to prevent people from\n# accidentally committing with your details\nGIT_AUTHOR_NAME=\"Chris O'Donnell\"\nGIT_AUTHOR_EMAIL=\"chris@example.com\"\n\n# Set the credentials (modifies ~/.gitconfig)\ngit config --global user.name \"$GIT_AUTHOR_NAME\"\ngit config --global user.email \"$GIT_AUTHOR_EMAIL\"\n\n# Work Machine Aliases\nalias web=\"cd ~/Sites/company/web\"\n\nZSH_THEME=\"amuse\"\n```\n\nHere is an example `~/.zshrc.after`:\n\n```sh\n# override something\nalias ll=\"ls -aGlFh\"\n```\n\n**Note:** Because the `dotfiles/gitconfig` file is copied to `~/.gitconfig`, any private\ngit configuration specified in `~/.zshrc.before` or `~/.zshrc.after` will not be committed to\nyour dotfiles repository.\n\n## Acknowledgements\n\nInspiration and code was taken from many sources, including:\n\n- [@necolas](https://github.com/necolas) (Nicolas Gallagher)\n  [https://github.com/tejr/dotfiles] (https://github.com/necolas/dotfiles)\n- [@mathiasbynens](https://github.com/mathiasbynens) (Mathias Bynens)\n  [https://github.com/mathiasbynens/dotfiles](https://github.com/mathiasbynens/dotfiles)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodfish%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodfish%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodfish%2Fdotfiles/lists"}