{"id":15707243,"url":"https://github.com/fwcd/dotpkg","last_synced_at":"2025-04-14T16:17:18.203Z","repository":{"id":40412356,"uuid":"449690102","full_name":"fwcd/dotpkg","owner":"fwcd","description":"Package manager for your dotfiles","archived":false,"fork":false,"pushed_at":"2024-05-22T15:37:26.000Z","size":196,"stargazers_count":5,"open_issues_count":12,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-05-22T15:49:31.177Z","etag":null,"topics":["dotfiles","dotfiles-automation","dotfiles-installer","dotfiles-manager","package-manager","symlinks-manager"],"latest_commit_sha":null,"homepage":"","language":"Python","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/fwcd.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":"2022-01-19T12:52:12.000Z","updated_at":"2024-07-09T16:56:03.679Z","dependencies_parsed_at":"2023-10-03T04:49:06.873Z","dependency_job_id":"6e9840bc-191b-4ec0-8b3b-d8d198188838","html_url":"https://github.com/fwcd/dotpkg","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fwcd%2Fdotpkg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fwcd%2Fdotpkg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fwcd%2Fdotpkg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fwcd%2Fdotpkg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fwcd","download_url":"https://codeload.github.com/fwcd/dotpkg/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248914117,"owners_count":21182359,"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","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":["dotfiles","dotfiles-automation","dotfiles-installer","dotfiles-manager","package-manager","symlinks-manager"],"created_at":"2024-10-03T20:38:39.707Z","updated_at":"2025-04-14T16:17:18.183Z","avatar_url":"https://github.com/fwcd.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dotpkg\n\n[![PyPI](https://img.shields.io/pypi/v/dotpkg)](https://pypi.org/project/dotpkg)\n[![Check](https://github.com/fwcd/dotpkg/actions/workflows/check.yml/badge.svg)](https://github.com/fwcd/dotpkg/actions/workflows/check.yml)\n\nA package manager for your dotfiles.\n\n## Why Dotpkg?\n\n- **Lightweight**: Pure Python 3.10 with no dependencies\n- **JSON-configurable**: Easy to write, includes a schema for code completion\n- **Cross-platform**: Runs on Linux, macOS and Windows\n- **Flexible**: Configurable target locations, ignore lists, rename rules and more\n\n## Usage\n\nFirst make sure to have Python 3.10+ installed. To create a dotfile package, set up a folder with the following layout (the top-level folder is assumed to be some folder, e.g. a Git repo, where you store all of your dotfiles):\n\n```\ndotfiles\n└─my-package\n  ├─dotpkg.json\n  ├─.some-dotfile-one\n  ├─.some-dotfile-two\n    ...\n```\n\nA minimal `dotpkg.json` is structured as follows:\n\n```json\n{\n  \"name\": \"my-package\",\n  \"description\": \"Description of my package\"\n}\n```\n\nNavigating into `dotfiles` and running `dotpkg install my-package` will then symlink `.some-dotfile-one` and `.some-dotfile-two` into your home directory.\n\n\u003e Note that when running on Windows, unprivileged users might not be able to create symlinks, a feature that `dotpkg` relies on. Enabling `Developer Mode` in your Windows Settings (from an administrator account) will permit this. Also, you may need to substitute `python3 [path/to/dotpkg]` for `dotpkg` since Windows does not support Unix-style shebangs.\n\nOptionally, you can specify keys such as `requiresOnPath` too, which will only install the package if a given binary is found on your `PATH` (useful if your config targets some application). Additionally, `targetDir` configures the search path to symlink the files into some other directory than your home (`dotpkg` will use the first directory that exists, this is useful to cross-platform packages).\n\nFor example, a package that manages configurations for Visual Studio Code could look like this:\n\n```json\n{\n  \"name\": \"vscode\",\n  \"description\": \"Visual Studio Code settings and keybindings\",\n  \"requiresOnPath\": [\"code\"],\n  \"targetDir\": [\n    \"${home}/.config/Code\",\n    \"${home}/Library/Application Support/Code\",\n    \"${home}/AppData/Roaming/Code\"\n  ]\n}\n```\n\nA full JSON schema for the `dotpkg.json` manifests can be found [here](dotpkg.schema.json).\n\n\u003e Note that you can add the schema to your VSCode settings to get autocompletion in `dotpkg.json` files by specifying `json.schemas`:\n\n```json\n{\n  \"json.schemas\": [\n    {\n      \"fileMatch\": [\"dotpkg.json\"],\n      \"url\": \"https://raw.githubusercontent.com/fwcd/dotpkg/main/dotpkg.schema.json\"\n    }\n  ]\n}\n```\n\nAlternatively, you can specify the schema individually in each `dotpkg.json`:\n\n```json\n{\n  \"$schema\": \"https://raw.githubusercontent.com/fwcd/dotpkg/main/dotpkg.schema.json\"\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffwcd%2Fdotpkg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffwcd%2Fdotpkg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffwcd%2Fdotpkg/lists"}