Skip to main content

Command Line Interface to manage (save, export, import) dot files in the form of profiles.

Project description

DotCtl

A CLI Tool to Manage DOT Files/Settings/Configurations.

Features

  • Save Profile: Save existing dot files/config/settings.
  • Import Profile: Import existing dot files/config/settings from a .plsv file.
  • Export Profile: Export and share existing dot files/config/settings to a .plsv file.
  • Manage multiple profiles with ease.

Installation

pip install dotctl

CLI Guide

Save Profile

dotctl save <profile_name>

Example:

dotctl save MyProfile

Options:

  • -f, --force → Overwrite already saved profiles.
  • -c <path>, --config-file <path> → Use external config file.
  • -e <env>, --env <env> → Desktop environment (e.g., KDE).
  • -p <password>, --password <password> → Sudo Password to authorize restricted data (e.g., /usr/share).
  • --include-global → Include data from the global data directory (/usr/share).
  • --include-sddm → Include SDDM data/configs (/usr/share/sddm, /etc/sddm.conf.d).
  • --sddm-only → Operate only on SDDM configurations (Note: Requires sudo password).
  • --skip-sudo → Skip all sudo operations.

Remove Profile

dotctl remove <profile_name>

Example:

dotctl remove MyProfile

List Profiles

dotctl list

Apply Profile

dotctl apply <profile_name>

Example:

dotctl apply MyProfile

Options:

  • -p <password>, --password <password> → Sudo Password for restricted data.
  • --sddm-only → Apply only SDDM configurations (Requires sudo password).
  • --skip-global → Skip data from the global directory (/usr/share).
  • --skip-sddm → Skip SDDM configurations.
  • --skip-sudo → Skip all sudo operations.

Import Profile

dotctl import <profile_path>

Example:

dotctl import MyProfile.plsv

Options:

  • -p <password>, --password <password> → Sudo Password for restricted data.
  • --config-only → Apply only dot files/configurations (~/.config).
  • --data-only → Apply only dot files/data (~/.local/share).
  • --sddm-only → Apply only SDDM configurations (Requires sudo password).
  • --skip-global → Skip global data.
  • --skip-sddm → Skip SDDM configurations.
  • --skip-sudo → Skip all sudo operations.

Export Profile

dotctl export <profile_path>

Example:

dotctl export MyProfile.plsv

Options:

  • -p <password>, --password <password> → Sudo Password for restricted data.
  • --config-only → Export only dot files/configurations.
  • --data-only → Export only dot files/data.
  • --sddm-only → Export only SDDM configurations (Requires sudo password).
  • --skip-global → Skip global data.
  • --skip-sddm → Skip SDDM configurations.
  • --skip-sudo → Skip all sudo operations.

Wipe All Profiles

dotctl wipe

Help

dotctl -h
dotctl <action> -h

Example:

dotctl import -h

Version

dotctl -v

Development & Publishing Guide

Setup Development Environment

# Create virtual environment (optional but recommended)
python -m venv venv
source venv/bin/activate  # On Linux/macOS
venv\Scripts\activate  # On Windows

# Install dependencies
pip install -r requirements.txt

Build the Package

python -m build

This will generate a dist/ directory with .tar.gz and .whl files.

Publish to TestPyPI

twine upload --repository testpypi dist/*

Publish to PyPI

twine upload --repository pypi dist/*

Who do I talk to?

  • Repo Owner/Admin: Pankaj Jackson
  • Community Support: Reach out via GitHub Issues

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

dotctl-1.0.2.tar.gz (18.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dotctl-1.0.2-py3-none-any.whl (24.8 kB view details)

Uploaded Python 3

File details

Details for the file dotctl-1.0.2.tar.gz.

File metadata

  • Download URL: dotctl-1.0.2.tar.gz
  • Upload date:
  • Size: 18.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for dotctl-1.0.2.tar.gz
Algorithm Hash digest
SHA256 5b51e3d7cf377510b8d6b0d21ca1f62888a978fdcab159cac48cc8fb2fbb4ef8
MD5 8e46e2cc71dfeec241cca634504a6875
BLAKE2b-256 f48152e0d5832b98e5a50fc1bdfc3b025052ec5c20ca84f7af931de209a645d6

See more details on using hashes here.

File details

Details for the file dotctl-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: dotctl-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 24.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for dotctl-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6125cd2a8800fd5f6e3a18122025ee1427e9e12be57f69522293522e89dd7a83
MD5 33c9c4ca8a0161f6af0a75d5e5a2e6d2
BLAKE2b-256 93b94873343ad7acd9876b7db94907b00572905ef7cdaca4034fc012f6032b7d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page