{"id":15712322,"url":"https://github.com/ivanvc/dotfiles","last_synced_at":"2025-10-18T02:23:23.244Z","repository":{"id":3673686,"uuid":"4743016","full_name":"ivanvc/dotfiles","owner":"ivanvc","description":"My ~/.","archived":false,"fork":false,"pushed_at":"2025-07-03T20:15:14.000Z","size":7370,"stargazers_count":2,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-03T20:37:21.708Z","etag":null,"topics":["dot-files","dotfiles","dotfiles-linux"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":false,"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/ivanvc.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":"2012-06-21T18:50:40.000Z","updated_at":"2025-07-03T20:15:17.000Z","dependencies_parsed_at":"2023-12-02T01:39:34.312Z","dependency_job_id":"c2fb9072-4ec7-440c-a46d-ad4a6d250ada","html_url":"https://github.com/ivanvc/dotfiles","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ivanvc/dotfiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivanvc%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivanvc%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivanvc%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivanvc%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ivanvc","download_url":"https://codeload.github.com/ivanvc/dotfiles/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivanvc%2Fdotfiles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274417428,"owners_count":25281108,"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-09-10T02:00:12.551Z","response_time":83,"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":["dot-files","dotfiles","dotfiles-linux"],"created_at":"2024-10-03T21:15:36.128Z","updated_at":"2025-10-18T02:23:18.192Z","avatar_url":"https://github.com/ivanvc.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ~/.\n\nDotfiles à la Ivan.\n\n## Irrelevant background\n\n\u003e As I was setting up a new computer again, I just noticed how bloated my\ndotfiles were. I had two branches, the main one for MacOS (which I don't use\nanymore) and a Linux one. I based my directory structure on Zach Holman's,\nhaving them by topic. Then, I wrote a bash script to symlink the files. I\nrecently just realized that GNU Stow can do this step. So, this time I'm\nstarting from scratch. Deleting all the old files and managing them using a\nMakefile and Stow.\n\nAfter 10+ years of using Zsh as my shell, I returned ye good old Bash. The only\nthing I miss is an excellent shared history across sessions. I never used Oh My\nZsh or any other frameworks, so my usage was pretty basic.\n\n### Iteration 3.5\n\nI still like the thematic directories, and I still don't like the hidden\nfile in this repository. So, it was time for a new iteration on the previous\niteration as I started splitting directories into multiple directories to avoid\nhidden files. Long story short, keep reading on.\n\n## Requirements\n\n1. `make`\n2. `stow`\n\n## Project directory layout\n\nThere are four different types of directories in the root of the repository:\n\n1. Directories that have a `.config` suffix (i.e., `beets.config`): These\n   directories will be symlinked at\n   `~/.config/\u003cdirectory name without .config suffix\u003e`.\n2. Directories that have a `.bin` suffix (i.e., `something.bin`): These\n   directories will be symlinked at `~/.local/bin`, which is at the front of\n   `$PATH`.\n3. Directories that have a `.profile.d` suffix (i.e., `aws.profile.d`): These\n   directories contain files that will be symlinked at `~/.config/profile.d`,\n   which will be source by `~/.bashrc`.\n4. Directories with no suffix. These can have:\n    1. A `bin` directory, these files will be symlinked at `~/.local/bin`.\n    2. A `config` directory, this directory will be symlinked at\n       `~/.config/\u003cdirectory name\u003e`, i.e. `~/.config/nvim` for `nvim/config`.\n    3. A `profile.d` directory, the files in this directory will be symlinked at\n       `~/.config/profile.d`.\n    4. Files and directories that start with a underscore (`_`), will be\n       symlinked at the `$HOME` level replacing the first `_` with a `.`, i.e.,\n       `_bashrc` will be symlinked at `~/.bashrc`\n\n## How to use\n\n1. Run `make`, which will symlink all directories [^1]\n2. There's no step 2 [^2]\n\n### Bonus: unversioned local file\n\nIf `~/.localrc` exists, Bash will source the file at the end of loading the rest\nof the files. So, this is a good place for overrides for a specific computer.\nAlso, this file is not versioned, so it's also an ideal place to store secrets.\n\n## License\n\nNot sure why someone would license their dotfiles, so I guess the best license\nto fit here would be [WTFPL](http://www.wtfpl.net/txt/copying/).\n\n[^1]: Unless you want to symlink a single repository, in that case run\n      `make \u003cdirectory\u003e`\n[^2]: Unless you want to uninstall, in that case just run `make uninstall`, or\n      `STOW_COMMAND=-D make \u003cdirectory\u003e` to unstow a single directory\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivanvc%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fivanvc%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivanvc%2Fdotfiles/lists"}