{"id":16880586,"url":"https://github.com/squaremo/dotfiles","last_synced_at":"2026-05-03T21:35:09.092Z","repository":{"id":66130696,"uuid":"48810644","full_name":"squaremo/dotfiles","owner":"squaremo","description":"Script and data for managing my dotfiles, emacs.d and so on.","archived":false,"fork":false,"pushed_at":"2023-03-24T11:05:37.000Z","size":25,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-03T21:35:08.746Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/squaremo.png","metadata":{"files":{"readme":"README.txt","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}},"created_at":"2015-12-30T16:56:47.000Z","updated_at":"2023-03-24T11:04:52.000Z","dependencies_parsed_at":"2025-01-11T22:50:38.481Z","dependency_job_id":"33a6d3e4-f623-4347-97a3-147801d411e3","html_url":"https://github.com/squaremo/dotfiles","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/squaremo/dotfiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/squaremo%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/squaremo%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/squaremo%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/squaremo%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/squaremo","download_url":"https://codeload.github.com/squaremo/dotfiles/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/squaremo%2Fdotfiles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32586187,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T06:36:36.687Z","status":"ssl_error","status_checked_at":"2026-05-03T06:36:09.306Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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-10-13T15:59:20.889Z","updated_at":"2026-05-03T21:35:09.077Z","avatar_url":"https://github.com/squaremo.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"These are tonyg's dotfile maintenance scripts.\n\nThe whole thing is much simpler than it seems :-)\n\n## Quickstart\n\nPut the \"dotfiles\" checkout in your home directory, ~/dotfiles.\n\nRunning \"./setup.sh\" without arguments will install symlinks and\nconfig stanzas.\n\nRunning \"./setup.sh -u\" will uninstall symlinks and config stanzas.\n\nWhen you're making changes, generally rerunning setup.sh will be incremental, but sometimes (e.g. if you move some file between directories) you will need to uninstall and reinstall the links to make sure they point in the right place.\n\nGenerally setup.sh is conservative, and won't overwrite files or\nsymlinks already present that point outside its tree.\n\n## Details\n\n./setup.sh is the main workhorse, and does all the work of installing\nand uninstalling the configuration information held in (subdirectories\nof) this directory. It is responsible for maintaining:\n\n - symbolic links in your home directory\n - symbolic links in your ~/bin directory\n - a stanza pulling config into your .emacs\n - a stanza pulling config into your .bashrc\n - a stanza pulling config into your .bash_profile, .bash_login, or .profile\n\nIt can install configuration files on a per-host, per-domainname, and\nglobal basis. You can also keep common configuration separate from\nmore sensitive or private configuration: it supports multiple parallel\nsources of configuration files, so you can use a common setup across\nall your machines, and then have different overlays for work and for\nhome, with different git repos for each.\n\nHere's how things are laid out:\n\n.\n|-- README.txt\n|-- configs\n|   |-- core\n|   |   |-- bashrc.d\n|   |   |   |-- *.sh\n|   |   |   `-- anything else\n|   |   |-- bin\n|   |   |   `-- anything with +x\n|   |   |-- domains\n|   |   |   `-- any.SOME.DOMAIN\n|   |   |       `-- (some domain-specific setup)\n|   |   |-- emacs.d\n|   |   |   `-- *.el\n|   |   |-- home\n|   |   |   `-- anything, incl hidden files/dirs\n|   |   |-- hosts\n|   |   |   |-- HOSTNAME1\n|   |   |   |   `-- (some host-specific setup)\n|   |   |   `-- HOSTNAME2\n|   |   |       `-- (some host-specific setup)\n|   |   `-- profile.d\n|   |       `-- *.sh\n|   `-- private\n|       `-- (another overlay)\n`-- setup.sh\n\nThe \"configs\" directory contains subdirectories, named anything you\nlike, that contain configuration overlays. By convention, there's\nalways one called \"core\", which is the basic stuff that should be on\nevery machine. You can also add arbitrary others, e.g. \"home\", \"work\",\ncontaining stuff that perhaps shouldn't live in the main repo with the\ncore config.\n\nEach such configuration overlay may contain subdirectories:\n\n - bashrc.d - any *.sh file within here will be executed whenever your\n   .bashrc is run, in lexicographic order of file name.\n\n - bin - any executable file in here will be symlinked into ~/bin.\n\n - domains - contains further subdirectories, named as \"any.*\", where\n   the * is to expand to a specific domain name. You can see, for a\n   given machine, which of these will be used by running\n\n      hostname -f | sed -e \"s:$(hostname -s):any:\"\n\n - emacs.d - any *.el file within here will be run whenever your\n   .emacs is run, in lexicographic order of file name.\n\n - home - any file (starting with a dot or not, subdirectory or file)\n   in here will be symlinked into your home directory.\n\n - hosts - contains further subdirectories, each named the same as the\n   short name of a particular host. You can see, for a given machine,\n   which of these will be used by running\n\n      hostname -s\n\n - profile.d - any *.sh file within here will be executed whenever\n   your .bash_profile, .bash_login or .profile (whichever of these is\n   present in your home directory at the time setup.sh was run) is\n   run, in lexicographic order of file name.\n\nEach of the domain-specific and host-specific config directories can\nin turn have bashrc.d, bin, emacs.d, home, and profile.d\nsubdirectories.\n\nOn occasion you will want some other git repository to be grafted in\nto your config. Use git submodules for this. For example, I use a git\ncheckout of clojure-mode as a submodule. The setup.sh script will\nautomatically freshen the submodule list and do the grafting for you.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsquaremo%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsquaremo%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsquaremo%2Fdotfiles/lists"}