{"id":23366849,"url":"https://github.com/davidcain/dotfiles","last_synced_at":"2026-04-12T04:32:39.782Z","repository":{"id":147051678,"uuid":"132649150","full_name":"DavidCain/dotfiles","owner":"DavidCain","description":"Files used to customize my environment","archived":false,"fork":false,"pushed_at":"2025-08-19T19:54:11.000Z","size":236,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-01-03T19:31:34.883Z","etag":null,"topics":["bash","dotfiles","git","vim"],"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/DavidCain.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}},"created_at":"2018-05-08T18:30:43.000Z","updated_at":"2025-08-19T19:54:14.000Z","dependencies_parsed_at":"2024-06-28T00:24:04.166Z","dependency_job_id":"cf1c4a1d-f4e9-40cb-957b-45352ab602ae","html_url":"https://github.com/DavidCain/dotfiles","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/DavidCain/dotfiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DavidCain%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DavidCain%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DavidCain%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DavidCain%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DavidCain","download_url":"https://codeload.github.com/DavidCain/dotfiles/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DavidCain%2Fdotfiles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31704492,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-11T21:17:31.016Z","status":"online","status_checked_at":"2026-04-12T02:00:06.763Z","response_time":58,"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":["bash","dotfiles","git","vim"],"created_at":"2024-12-21T14:18:53.758Z","updated_at":"2026-04-12T04:32:39.754Z","avatar_url":"https://github.com/DavidCain.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# About\nThis repository contains all of my dotfiles. I use a lot of shortcuts/aliases\nand a small assortment of Vim plugins. To be productive on a new system, I rely\non these customizations.\n\nThis repository is dual-purposed. It version controls all of my environment\nchanges, but also contains everything I need in order to get up and running\n(immediately) on a brand new system.\n\n## Vim/Git\nI tinker with my Vim \u0026 Git settings a good deal, so the configurations for\neach are tracked as submodules:\n\n- [vimfiles](https://github.com/DavidCain/vimfiles)\n- [gitfiles](https://github.com/DavidCain/gitfiles)\n\n# Installation\n\n1. Configure Homebrew (rcfiles will later be auto-edited)\n   ```bash\n   /bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"\n   eval \"$(/opt/homebrew/bin/brew shellenv)\"\n   ```\n2. Install critical system-wide packages\n   ```bash\n   brew bundle install  # Mac, presumes Homebrew\n   sudo apt install \\\n     neovim \\   # (Or Vim)\n     tmux\n   ```\n3. Run script:\n   ```bash\n   ./install.sh\n   ```\n4. Restart shell (or start up Alacritty!)\n\n## How installation works\nThe install script will not remove any existing configuration without backing\nit up first.\n\nSpecifically, any pre-existing dotfiles (that will be replaced by the files\ntracked in this repository) will be copied to `~/dotfiles_old`. Their contents\nwill be committed to a Git repository, so that successive runs of the\ninstallation script won't miss any new modifications.\n\nAfter a file/directory has been successfully backed up, it is replaced with a\nsymlink to its equivalent file within this repository. Any changes within the\nrepository will be reflected immediately upon sourcing dotfiles. Conversely,\nediting dotfiles directly will give the opportunity to stage any changes and\nversion control them here.\n\n## Possibly absent binaries\nMy rc files are written to minimize assumptions that any given third-party tool\nis actually available on the system. For instance, `vim` is assumed to be\navailable (it's assigned to `$EDITOR`), but `node` is *not* presumed to be\ninstalled.\n\nAny lines that depend on a third-party executable are generally wrapped in a\ncheck to first make sure that the executable is present in `$PATH`. If absent,\nthe line will silently decline to execute.\n\nFor these dotfiles to work best, executables should be installed separately.\nReferenced tools include (but are not limited to):\n\n- Build tools:\n    - `cargo`\n    - `poetry`\n- Miscellaneous tools:\n    - `direnv`\n    - `fzf`\n    - `ripgrep`\n\nOther env vars only make sense if a given tool is installed. For instance\n`HOMEBREW_NO_ANALYTICS` only makes sense when `Homebrew` is installed. These\nvalues are harmless if the tool is not present (e.g. Linux systems don't care\nabout `brew`)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidcain%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavidcain%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidcain%2Fdotfiles/lists"}