{"id":13559025,"url":"https://github.com/clayrisser/dotstow","last_synced_at":"2026-03-01T14:03:44.169Z","repository":{"id":56031073,"uuid":"100542292","full_name":"clayrisser/dotstow","owner":"clayrisser","description":"Mirror of https://gitlab.com/risserlabs/community/dotstow","archived":false,"fork":false,"pushed_at":"2024-05-03T11:34:24.000Z","size":1317,"stargazers_count":99,"open_issues_count":0,"forks_count":8,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-12-25T13:45:48.488Z","etag":null,"topics":["bash","cli","dotfiles","git","github","posix"],"latest_commit_sha":null,"homepage":"https://gitlab.com/risserlabs/community/dotstow","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/clayrisser.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}},"created_at":"2017-08-16T23:49:45.000Z","updated_at":"2025-10-06T09:22:14.000Z","dependencies_parsed_at":"2023-07-14T00:11:05.168Z","dependency_job_id":"8bbe52fb-51b4-48b9-b80b-a1726bdadb49","html_url":"https://github.com/clayrisser/dotstow","commit_stats":null,"previous_names":["codejamninja/dotstow","jamrizzi/dot"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/clayrisser/dotstow","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clayrisser%2Fdotstow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clayrisser%2Fdotstow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clayrisser%2Fdotstow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clayrisser%2Fdotstow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/clayrisser","download_url":"https://codeload.github.com/clayrisser/dotstow/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clayrisser%2Fdotstow/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29970545,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T13:32:00.443Z","status":"ssl_error","status_checked_at":"2026-03-01T13:32:00.084Z","response_time":124,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["bash","cli","dotfiles","git","github","posix"],"created_at":"2024-08-01T12:05:18.003Z","updated_at":"2026-03-01T14:03:44.140Z","avatar_url":"https://github.com/clayrisser.png","language":"Shell","funding_links":[],"categories":["HarmonyOS","TypeScript","github","Shell","Archive/abandoned projects"],"sub_categories":["Windows Manager","macOS"],"readme":"# dotstow\n\n\u003e manage dotfiles with git and stow\n\n![](assets/dotstow.png)\n\n`dotstow` is a tool to manage your dotfiles using Git and Stow.\nIt allows you to keep your dotfiles in a version control system\nand easily sync them across multiple computers, even computers with\ncompletely different operating systems.\n\n![](assets/wizard.jpeg)\n\n## Install\n\nTo install dotstow, run the following command:\n\n```sh\n$(curl --version \u003e/dev/null 2\u003e/dev/null \u0026\u0026 echo curl -L || echo wget -O-) https://gitlab.com/risserlabs/community/dotstow/-/raw/main/install.sh 2\u003e/dev/null | sh\n```\n\nor\n\n```sh\ngit clone https://github.com/clayrisser/dotstow\ncd dotstow\nmake install\n```\n\n## Usage\n\n### 1. Initialize dotstow\n\nTo start using dotstow, you need to initialize it with your Git repository. Run the following command:\n\n```sh\ndotstow init \u003cREPO\u003e\n```\n\nReplace \u003cREPO\u003e with the your git repository. This will create a dotfiles folder in your home\ndirectory at `~/.local/state/dotstow/dotfiles` and clone your git repository into it.\nThis location was chosen to comply with the\n[XDG Base Directory Specification](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html).\nFor convenience, the `~/.local/state/dotstow/dotfiles` location is also symlinked to `~/.dotfiles`.\n\n\u003e You can always find the location of your dotfiles by running the command `dotstow path`.\n\n### 2. Stow a package\n\nOnce you have initialized dotstow, you can stow a package using the following command:\n\n```sh\ndotstow stow \u003cPACKAGE\u003e\n```\n\nReplace \u003cPACKAGE\u003e with the name of the package you want to stow. This will create symbolic links in\nyour home directory to the corresponding files in the package folder.\n\n### 3. Sync dotfiles\n\nTo sync your dotfiles with the git repository, use the following command:\n\n```sh\ndotstow sync\n```\n\nThis will pull any changes as well as commit and push any changes in your dotfiles\nto the git repository.\n\n\u003e You can always check the git status of your dotfiles by running the command `dotstow status`.\n\n## Organization\n\n`dotstow` searches for packages in one of three folder: _global_, _\\\u003cPLATFORM\u003e_, and _\\\u003cFLAVOR\u003e_. These folders are\ndetermined based on the operating system of your computer.\n\nOn Linux, the _\\\u003cPLATFORM\u003e_ folder is called `linux` and the _\\\u003cFLAVOR\u003e_ folder is the Linux distribution name,\nfor example `debian`, `suse`, `alpine` or `rhel`.\n\nOn macOS, dotstow sets _\\\u003cPLATFORM\u003e_ to `darwin`. The _\\\u003cFLAVOR\u003e_ folder is not supported on macOS.\n\nThe folders are searched in the following order:\n\n- _\\\u003cFLAVOR\u003e_\n- _\\\u003cPLATFORM\u003e_\n- _global_\n\nFor example, if you're on a Linux machine with the _\\\u003cFLAVOR\u003e_ set to `debian`, and you run the command `dotstow stow zsh`,\ndotstow will look for the `zsh` package in the following folders, in order:\n\n- `debian/zsh`\n- `linux/zsh`\n- `global/zsh`\n\nIf dotstow finds the `zsh` package in the `debian/zsh` folder, it will create symbolic links to the\nfiles in that folder in your home directory.\n\n## Example\n\nYou can use my dotfiles as an example, reference or even as a starting point for your dotfiles.\n\n[gitlab.com/clayrisser/dotfiles](https://gitlab.com/clayrisser/dotfiles.git)\n\n## Other Commands\n\n`dotstow` provides several other commands to manage your dotfiles. Here is a list of some of them:\n\n- `dotstow unstow \u003cPACKAGE\u003e`: Remove symbolic links to a package.\n- `dotstow wizard`: Interactive command to add and remove packages.\n- `dotstow available`: List available packages in your Git repository.\n- `dotstow stowed`: List packages that have been stowed.\n- `dotstow status`: Show the Git status of your dotfiles.\n- `dotstow reset`: Reset your dotfiles to the last commit.\n- `dotstow path`: Print the path of your dotfiles folder.\n\n\u003e Please note that `dotstow wizard` only works on debian based linux systems of its\n\u003e dependency on [debconf](https://salsa.debian.org/pkg-debconf/debconf).\n\n```\ndotstow - manage dotfiles with git and stow\n\ndotstow [options] command \u003cPACKAGE\u003e\n\noptions:\n    -h, --help            show brief help\n\ncommands:\n    init \u003cREPO\u003e            initialize dotstow\n    s, stow \u003cPACKAGE\u003e      stow a package\n    u, unstow \u003cPACKAGE\u003e    unstow a package\n    w, wizard              dotfiles wizard\n    a, available           available packages\n    stowed                 stowed packages\n    sync                   sync dotfiles\n    status                 dotfiles git status\n    reset                  reset dotfiles\n    path                   get dotfiles path\n```\n\n## Dependencies\n\n- [Git](https://git-scm.com)\n- [GNU Stow](https://www.gnu.org/software/stow)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclayrisser%2Fdotstow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclayrisser%2Fdotstow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclayrisser%2Fdotstow/lists"}