Skip to main content

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

  1. Install package:

    pip install manager-dotfiles
    
  2. Create the ~/.dotfile file:

    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

  1. Initialize all dotfiles:

    dotfiles-manager init
    
  2. Symlink a specific file:

    dotfiles-manager link files/home.link/.bashrc
    
  3. Copy a system file (requires sudo):

    dotfiles-anager --sudo copy /etc/hosts
    
  4. 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.link and system.copy commands can be require sudo.
  • The ~/.dotfile file must contain the absolute path to your repository.
  • Scripts in scripts/ must be executable (chmod +x) with shebang (#!/usr/bin/env bash or #!/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)

Source distribution for manager-dotfiles 0.3.0
File Size Uploaded Provenance
manager_dotfiles-0.3.0.tar.gz 13.6 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for manager-dotfiles 0.3.0
File Interpreter ABI Platform
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page