Dotfiles Manager
Centralized management of your dotfiles, backups, symlinks, and scripts on Linux.
This project allows you to easily manage your configuration files (dotfiles) by linking or copying them from a central repository to your system. It also supports running utility scripts to automate common tasks (backup, install, updates, etc.).
📦 Project Structure
| Path | Description |
|---|---|
~/.dotfile |
File containing the path to your dotfiles repository |
$DOTFILES_BASE/files/ |
Directory containing files to link/copy |
files/home.link/ |
Files to symlink in $HOME |
files/home.copy/ |
Files to copy in $HOME |
files/system.link/ |
Files to symlink in / (requires sudo) |
files/system.copy/ |
Files to copy in / (requires sudo) |
$DOTFILES_BASE/scripts/ |
Utility scripts executable via dotfiles-manager run |
🛠 Installation
-
Install package:
pip install manager-dotfiles
-
Create the
~/.dotfilefile:echo "/path/to/your/dotfiles" > ~/.dotfile
Example:
echo "~/.config/dotfiles" > ~/.dotfile
🚀 Usage
Main Commands
| Command | Description |
|---|---|
dotfiles-manager init |
Symlink/copy all dotfiles |
dotfiles-manager init-link |
Symlink all dotfiles |
dotfiles-manager init-copy |
Copy all dotfiles |
dotfiles-manager link <file> |
Symlink a specific file |
dotfiles-manager unlink <file> |
Remove a symlink |
dotfiles-manager copy <file> |
Copy a specific file |
dotfiles-manager run <script> [args...] |
Run a utility script |
cli can be invoked by dotfiles-manager or dm, with previous command:
dm init
dm init-link
dm init-copy
dm link ~/.bashrc
dm unkink ~/.bashrc
dm copy /etc/host
dm run backup.sh
Global Options
| Option | Description |
|---|---|
-y |
Assume "yes" to all prompts |
-n |
Assume "no" to all prompts |
-v |
Verbose mode |
--sudo |
Run all commands with sudo |
-c |
Disable colored output |
Examples
-
Initialize all dotfiles:
dotfiles-manager init -
Symlink a specific file:
dotfiles-manager link files/home.link/.bashrc
-
Copy a system file (requires sudo):
dotfiles-anager --sudo copy /etc/hosts
-
Run a utility script:
dotfiles-manager run backup
📂 Structure
~/.dotfile → /path/to/dotfiles
/path/to/dotfiles/
├── files/
│ ├── home.link/
│ │ ├── .bashrc
│ │ ├── .vimrc
│ │ └── ...
│ ├── home.copy/
│ │ ├── .config/...
│ │ └── ...
│ ├── system.link/
│ │ └── etc/...
│ └── system.copy/
│ └── etc/...
└── scripts/
├── backup.sh
├── install-docker.sh
├── pin.py
└── ...
📝 Notes
system.linkandsystem.copycommands can be requiresudo.- The
~/.dotfilefile must contain the absolute path to your repository. - Scripts in
scripts/must be executable (chmod +x) with shebang (#!/usr/bin/env bashor#!/usr/bin/env python3).
🤝 Contributing
Contributions are welcome! Open an issue or a pull request.
📄 License
MIT
Metadata
Release files for manager-dotfiles 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| manager_dotfiles-0.3.0.tar.gz | 13.6 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| manager_dotfiles-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 31.1 kB
Release files / manager_dotfiles-0.3.0.tar.gz
| Download URL | manager_dotfiles-0.3.0.tar.gz |
|---|---|
| Size | 13.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d5b8e9da2dae4854f92e2f45470ca5f7f70fc0169a9863a2f3c562429712f0e7
|
|
BLAKE2b-256 checksum How to use checksums |
674634e17847a64d1e9c1c75bb5c462660061bf2900018c38d095cdfa544b198
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.13 {"installer":{"name":"uv","version":"0.11.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / manager_dotfiles-0.3.0-py3-none-any.whl
| Download URL | manager_dotfiles-0.3.0-py3-none-any.whl |
|---|---|
| Size | 17.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
89b120f771fcfc1b0a89b5b9f88c604cb2898ac13af23daa9564bc4508cdbffe
|
|
BLAKE2b-256 checksum How to use checksums |
5f9d6ac771f43e119e41cb2a6e7f7925b146fe33dc4e8310bdac9cb7761843c3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.13 {"installer":{"name":"uv","version":"0.11.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for manager-dotfiles 0.3.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.