{"id":20140049,"url":"https://github.com/jeremy-code/dotfiles","last_synced_at":"2026-06-08T11:03:19.410Z","repository":{"id":242315998,"uuid":"808086894","full_name":"jeremy-code/dotfiles","owner":"jeremy-code","description":"My dotfiles using Chezmoi, Homebrew, and Oh My Zsh","archived":false,"fork":false,"pushed_at":"2026-04-04T09:35:56.000Z","size":138,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-19T16:56:22.425Z","etag":null,"topics":[],"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/jeremy-code.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2024-05-30T11:02:45.000Z","updated_at":"2026-04-04T09:36:01.000Z","dependencies_parsed_at":"2025-04-05T03:32:58.591Z","dependency_job_id":null,"html_url":"https://github.com/jeremy-code/dotfiles","commit_stats":null,"previous_names":["jeremy-code/dotfiles"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jeremy-code/dotfiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeremy-code%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeremy-code%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeremy-code%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeremy-code%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jeremy-code","download_url":"https://codeload.github.com/jeremy-code/dotfiles/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeremy-code%2Fdotfiles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34059157,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-08T02:00:07.615Z","response_time":111,"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":[],"created_at":"2024-11-13T21:48:55.804Z","updated_at":"2026-06-08T11:03:19.394Z","avatar_url":"https://github.com/jeremy-code.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- Link references --\u003e\n\n[license-badge]: https://img.shields.io/github/license/jeremy-code/dotfiles?logo=data:image/svg+xml;base64,PHN2ZyByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAzMiAzMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+Q2VydGlmaWNhdGU8L3RpdGxlPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik00IDZ2MTRhMiAyIDAgMCAwIDIgMmgxMnY2bDMtMiAzIDJ2LTZoNGEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJabTIgMGg4djJINlptMCA0aDZ2Mkg2Wm0wIDRoOHYySDZabTEwIDZINnYtMmgxMFptOC02djRsLTMtMi0zIDJ2LTRsLTQtMiA0LTJWNmwzIDIgMy0ydjQuMmw0IDEuOFoiLz48L3N2Zz4K\u0026color=%23ff1423\n[last-commit-badge]: https://img.shields.io/github/last-commit/jeremy-code/dotfiles?logo=git\u0026logoColor=white\u0026color=f05033\n\n# jeremy-code/dotfiles\n\n[![License][license-badge]](LICENSE) [![Last Commit][last-commit-badge]](https://github.com/jeremy-code/dotfiles/commit/main)\n\nThis is my dotfiles repository. There are [many](https://dotfiles.github.io) like it, but this one is mine.\n\nIntended to be a mainly [macOS](https://www.apple.com/macos) (but also [GNU](https://www.gnu.org)/[Linux](https://www.linux.org)-compatible) development environment for coding in [JavaScript](https://ecma-international.org/publications-and-standards/standards/ecma-262/), [TypeScript](https://www.typescriptlang.org), [Python](https://www.python.org/), and other languages with various other tools, configurations, and plugins for convenience and productivity.\n\n## Features\n\n- [chezmoi](https://www.chezmoi.io) - Dotfiles manager\n- [Homebrew](https://brew.sh) - Package manager\n  - [`brew bundle`](https://docs.brew.sh/Brew-Bundle-and-Brewfile) - Bundler for Homebrew, Homebrew Cask, [Mac App Store](https://www.apple.com/app-store/) and Visual Studio Code\n- [iTerm2](https://iterm2.com) - Terminal emulator\n- [Oh My Zsh](https://ohmyz.sh) - `zsh` configuration framework\n  - [colored-man-pages](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/colored-man-pages) - Adds colors to man pages\n  - [git](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/git) - Many git aliases and a few useful functions\n  - [zsh-users/zsh-autosuggestions](https://github.com/zsh-users/zsh-autosuggestions) - Fish-like fast/unobtrusive autosuggestions for `zsh`\n  - [zsh-users/zsh-history-substring-search](https://github.com/zsh-users/zsh-history-substring-search) - ZSHH port of Fish history search (up arrow)\n  - [zsh-users/zsh-syntax-highlighting](https://github.com/zsh-users/zsh-syntax-highlighting) - Fish shell-like syntax highlighting for Zsh\n- [Visual Studio Code](https://code.visualstudio.com) - Source-code editor\n- [Z Shell (zsh)](https://zsh.sourceforge.io) - Unix shell\n\n## Installation\n\nUsing a chezmoi-first approach:\n\n```shell\n/bin/sh -c \"$(curl -fsLS get.chezmoi.io)\" -- -b $HOME/.local/bin init --apply jeremy-code\nbrew install chezmoi --adopt\n```\n\nOr with a Homebrew-first approach (see [`run_once_install_00-homebrew.sh`](home/.chezmoiscripts/run_once_00-install_homebrew.sh.tmpl) for more details):\n\n```shell\n# Install Homebrew with either the signed-.pkg file at Homebrew's GitHub\n# releases https://github.com/Homebrew/brew/releases/latest or run the script\n# from https://github.com/Homebrew/install using:\n/bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"\n\nbrew install chezmoi\nchezmoi init jeremy-code --apply\n```\n\nIdeally, inspect either shell script before running them to ensure they are safe to run. This will be the easiest attack vector since afterwards, packages installed in [`homebrew-core`](https://github.com/Homebrew/homebrew-core) will be verified using cryptographic attestations of build provenance since `$HOMEBREW_VERIFY_ATTESTATIONS` is enabled in [`home/dot_config/homebrew/brew.env.tmpl`](home/dot_config/homebrew/brew.env.tmpl) (see [Homebrew](#homebrew) for more details).\n\n## Configuration\n\n### chezmoi\n\n[chezmoi](https://www.chezmoi.io) is used to manage the dotfiles in this repository. The source directory is the [`$HOME/.local/share/chezmoi/home`](home) directory (declared in [`.chezmoiroot`](.chezmoiroot)) and the destination directory is correspondingly the user's home directory or `$HOME`. The other configuration files are stored in the source directory, such as [`home/.chezmoiexternal.toml`](home/.chezmoiexternal.toml).\n\nAdditional root scripts are located in the [`home/.chezmoiscripts`](home/.chezmoiscripts) directory. These scripts are intended to be indempotent (can be run multiple times without altering the whole system). Since chezmoi runs scripts in ASCII-defined order, the scripts are prefixed with a two-digit number `XX-` to define the order in which they are run if it is relevant, a convention used commonly in Debian-based systems using [`run-parts`](https://manpages.debian.org/testing/debianutils/run-parts.8.html) or those inspired by Unix System V's `init` design (see [Debian/sysvinit](https://salsa.debian.org/debian/sysvinit/-/blob/master/debian/src/sysv-rc/doc/README.runlevels)).\n\n- [`run_once_00-install_homebrew.sh`](home/.chezmoiscripts/run_once_00-install_homebrew.sh.tmpl) - Installs Homebrew for the first time either by (1) installing the signed-`.pkg` file on macOS or (2) running a Bash installation shell script on Linux\n- [`run_once_40-mac.sh.tmpl`](home/.chezmoiscripts/run_once_40-mac.sh.tmpl) - Configures some macOS settings that must be done imperatively (namely using the `defaults` to configure `.plist` files). Some assets needed for this script are located in the directory [`$HOME/.local/share/chezmoi/assets`](assets)\n- [`run_once_dato.sh.tmpl`](home/.chezmoiscripts/run_once_dato.sh.tmpl) - Configures some settings for the [Dato](https://sindresorhus.com/dato) app, which must be a `.tmpl` file due to containing some JSON data stored in the [`home/.chezmoidata/dato.json`](home/.chezmoidata/dato.json) file\n- [`run_once_latex.sh`](home/.chezmoiscripts/run_once_latex.sh) - Self-updates [`tlmgr`](https://www.tug.org/texlive/tlmgr.html) and installs the LaTeX packages defined in the array `PACKAGES`\n- [`run_once_update_gpg.sh.tmpl`](home/.chezmoiscripts/run_once_update_gpg.sh.tmpl) - Updates the GPG key expiration date to 1 year from the current date if the key is set to expire within 6 months\n\n### Homebrew\n\n[Homebrew](https://brew.sh) is used to install Homebrew formulae and casks, Mac App Store apps, and Visual Studio Code extensions. Configuration is stored in the [`home/dot_config/homebrew`](home/dot_config/homebrew) directory.\n\n- The `brew bundle` dependencies are defined in the [`Brewfile`](home/dot_config/homebrew/Brewfile) file\n- When the aforementioned file is updated, `brew bundle install` is automatically ran with the script [`run_once_after_Brewfile.sh.tmpl`](home/dot_config/homebrew/run_once_after_Brewfile.sh.tmpl)\n- The [`brew.env.tmpl`](home/dot_config/homebrew/brew.env.tmpl) file defines additional Homebrew environment variables (`$HOMEBREW_*`)\n\n### iTerm2\n\nThe configuration of [iTerm2](https://iterm2.com) is defined mainly in [`home/Library/Application Support/iTerm2`](\u003chome/Library/Application Support/iTerm2\u003e). The dynamic profile [`DynamicProfiles/profiles.json`](\u003chome/Library/Application Support/iTerm2/DynamicProfiles/profiles.json\u003e) has custom color schemes, theming, and other settings. The directory also contains the [`Scripts`](\u003chome/Library/Application Support/iTerm2/Scripts\u003e) directory for custom scripts to be used in iTerm2, such as [`Scripts/AutoLaunch/change_default_profile.py`](\u003chome/Library/Application Support/iTerm2/Scripts/AutoLaunch/change_default_profile.py\u003e) which sets the default profile to the aforementioned dynamic profile on launch.\n\nSome additional configuration is installed in [`home/.chezmoiscripts/run_once_40-mac.sh.tmpl`](home/.chezmoiscripts/run_once_40-mac.sh.tmpl#L125-L153) to set non-profile settings.\n\n### Visual Studio Code\n\nThe configuration files of [Visual Studio Code](https://code.visualstudio.com) are stored in [`home/Library/Application Support/Code`](\u003chome/Library/Application Support/Code\u003e) and contains custom settings [`User/settings.json`](\u003chome/Library/Application Support/Code/User/settings.json\u003e), keybindings [`User/keybindings.json`](\u003chome/Library/Application Support/Code/User/keybindings.json\u003e), and code snippets [`User/snippets/*.json`](\u003chome/Library/Application Support/Code/User/snippets\u003e). It uses the [One Dark Pro Darker](https://marketplace.visualstudio.com/items?itemName=zhuangtongfa.Material-theme) theme, [Fira Code](https://github.com/tonsky/FiraCode) font, and [Material Icon Theme](https://marketplace.visualstudio.com/items?itemName=PKief.material-icon-theme). It also sets up various extensions for programming languages or library tooling ([Prettier](https://prettier.io) and [ESLint](https://eslint.org), etc.) in addition to miscellaneous utilities such as [Git Blame](https://marketplace.visualstudio.com/items?itemName=waderyan.gitblame), [carbon-now-sh](https://marketplace.visualstudio.com/items?itemName=ericadamski.carbon-now-sh), etc.\n\n### `zsh` and Oh My Zsh\n\nThe default shell is [`zsh`](https://www.zsh.org) using the framework [Oh My Zsh](https://ohmyz.sh). The base `zsh` configuration files [`home/dot_zshrc`](home/dot_zshrc) and [`home/dot_zprofile`](home/dot_zprofile) configure Oh My Zsh and set up some necessary startup environment variables respectively. Shell scripts attempt to follow the [Google Shell Style Guide](https://google.github.io/styleguide/shellguide.html) as closely as possible.\n\nAdditional `.sh` shell scripts are stored in [`home/dot_config/oh-my-zsh`](home/dot_config/oh-my-zsh) directory (the `$ZSH_CUSTOM` directory) which contains:\n\n- [`aliases.zsh`](home/dot_config/oh-my-zsh/aliases.zsh) - Enables custom command aliases, suffix aliases (`.zip`, `.git`), and named directories (`~github` and `~dotfiles`)\n- [`constants.zsh`](home/dot_config/oh-my-zsh/constants.zsh) - Sets custom constants for the shell environment\n- [`telemetry.zsh`](home/dot_config/oh-my-zsh/telemetry.zsh) - Sets environment variables to disable telemetry and analytics for various applications\n\nFurthermore, this directory contains a [functions](home/dot_config/oh-my-zsh/functions) directory for additional functions for `zsh` that are [autoloaded](https://zsh.sourceforge.io/Doc/Release/Functions.html#index-autoloading-functions) in the aforementioned `home/dot_zprofile.tmpl` file.\n\nThe plugins [git](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/git) and [colored-man-pages](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/colored-man-pages) are bundled with Oh My Zsh and are enabled in the `.zshrc` file. Additionally, the external plugins [zsh-users/zsh-autosuggestions](https://github.com/zsh-users/zsh-autosuggestions), [zsh-users/zsh-history-substring-search](https://github.com/zsh-users/zsh-history-substring-search), [zsh-users/zsh-syntax-highlighting](https://github.com/zsh-users/zsh-syntax-highlighting) are installed to the corresponding `$ZSH_CUSTOM/plugins` directory. These external plugins along Oh My Zsh are defined in [`home/.chezmoiexternal.toml`](home/.chezmoiexternal.toml) as external Git repositories to be installed by chezmoi.\n\n## License\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeremy-code%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjeremy-code%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeremy-code%2Fdotfiles/lists"}