dotfiles manager for link/copy files, and run backup/refresh scripts
Project description
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
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file manager_dotfiles-0.1.0.tar.gz.
File metadata
- Download URL: manager_dotfiles-0.1.0.tar.gz
- Upload date:
- Size: 13.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.8.22
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f22ca67f008fed0bd49e7ce9113d4149af29cc24f867041807c1ca77d08bfe72
|
|
| MD5 |
816e17e561e4366588b6821887858da2
|
|
| BLAKE2b-256 |
e23afb90ac26136f20d3708f246508cda4c015c1b4370e6acea44d94803c6fbc
|
File details
Details for the file manager_dotfiles-0.1.0-py3-none-any.whl.
File metadata
- Download URL: manager_dotfiles-0.1.0-py3-none-any.whl
- Upload date:
- Size: 17.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.8.22
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7e1d3a75015948a0125add9ab09c717a7b226271098e6b441aa044a2eebf4aa3
|
|
| MD5 |
1de17ab4977b4cf20f530ede78e9175f
|
|
| BLAKE2b-256 |
0642ce989a9a77db21a371aadb070f8865caef3213ff170766637fa42cbaf94d
|