Skip to main content

Project: License

Package: PyPI - Python Version PyPI - Version PyPI - Downloads

Development: uv ruff ty pytest CI Code Coverage GitHub commit activity

Contents

Overview

dbrownell_Dotter is a declarative dotfile management tool that helps you install, synchronize, and manage configuration files across your system. It supports:

  • File installation via copying, symlinking, or template rendering
  • Jinja2 templating for dynamic configuration files
  • Variable substitution from command-line arguments or environment variables
  • Regex-based substitutions for modifying existing files in-place
  • Reverse synchronization to push manual changes back to source files

Configuration is defined in YAML or JSON5 files, making it easy to version control and share your dotfile setup. See davidbrownell/dotfiles for an example of such a configuration.

How to use dbrownell_Dotter

Basic Commands

Install dotfiles:

uvx dbrownell_Dotter Install <config_file(s)> [OPTIONS]

Reverse sync changes back to source:

uvx dbrownell_Dotter ReverseSync <config_file(s)> [OPTIONS]

Common options:

  • --var key=value - Pass template variables (can be used multiple times)
  • --dry-run - Preview changes without modifying files
  • --verbose - Show verbose output
  • --debug - Show debug information

Variables

Variables can be used in configuration files and jinja templates.

Variable Type Format
Environment Variable ${VAR_NAME}
Command Line Variable {{ VAR_NAME }}

Configuration File Format

variable_definitions:
  username: "Your username (ex: `john`)"
  email: "Your email address (ex: `john@example.com`)"

entries:
  # Simple file copy/link
  - source: my_config.txt
    dest: ~/.config/myapp/config.txt

  # Jinja2 template (auto-detected by .jinja, .jinja2, or .j2 extension)
  - source: bashrc.jinja
    dest: ~/.bashrc

  # Regex substitution on existing file
  - dest: /etc/myapp/config.conf
    substitutions:
      - pattern: "^EMAIL=.*$"
        replacement: "EMAIL={{ email }}"

Examples

Install with variables:

uvx dbrownell_Dotter Install config.yaml --var username=john --var email=john@example.com

Preview changes before installing:

uvx dbrownell_Dotter Install config.yaml --dry-run

Sync manual edits back to source files:

uvx dbrownell_Dotter ReverseSync config.yaml --var username=john

Installation

Note that these steps are not required when invoking dbrownell_Dotter via uvx.

Installation Method Command
Via uv uv add dbrownell_Dotter
Via pip pip install dbrownell_Dotter

Verifying Signed Artifacts

Artifacts are signed and verified using py-minisign and the public key in the file ./minisign_key.pub.

To verify that an artifact is valid, visit the latest release and download the .minisign signature file that corresponds to the artifact, then run the following command, replacing <filename> with the name of the artifact to be verified:

uv run --with py-minisign python -c "import minisign; minisign.PublicKey.from_file('minisign_key.pub').verify_file('<filename>'); print('The file has been verified.')"

Development

Please visit Contributing and Development for information on contributing to this project.

Additional Information

Additional information can be found at these locations.

Title Document Description
Code of Conduct CODE_OF_CONDUCT.md Information about the norms, rules, and responsibilities we adhere to when participating in this open source community.
Contributing CONTRIBUTING.md Information about contributing to this project.
Development DEVELOPMENT.md Information about development activities involved in making changes to this project.
Governance GOVERNANCE.md Information about how this project is governed.
Maintainers MAINTAINERS.md Information about individuals who maintain this project.
Security SECURITY.md Information about how to privately report security issues associated with this project.

License

dbrownell_Dotter is licensed under the MIT license.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dbrownell_dotter-0.7.5.tar.gz (11.7 kB view details)

Uploaded Source

Built Distribution

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

dbrownell_dotter-0.7.5-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

File details

Details for the file dbrownell_dotter-0.7.5.tar.gz.

File metadata

  • Download URL: dbrownell_dotter-0.7.5.tar.gz
  • Upload date:
  • Size: 11.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.6 {"installer":{"name":"uv","version":"0.12.6","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}

File hashes

Hashes for dbrownell_dotter-0.7.5.tar.gz
Algorithm Hash digest
SHA256 b1ef76b5e3408cc521ca6f4ebbc588eaabb165cddcf3bda832b5c684d87d5f9f
MD5 65b66793cecca2ff8f0f69b6d4f1bafb
BLAKE2b-256 202f56f38ff5ec923a2d5f0f2e66cae04cb0ae372c72c47eafa4f969940eb36a

See more details on using hashes here.

File details

Details for the file dbrownell_dotter-0.7.5-py3-none-any.whl.

File metadata

  • Download URL: dbrownell_dotter-0.7.5-py3-none-any.whl
  • Upload date:
  • Size: 12.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.6 {"installer":{"name":"uv","version":"0.12.6","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}

File hashes

Hashes for dbrownell_dotter-0.7.5-py3-none-any.whl
Algorithm Hash digest
SHA256 0b521969076b1cb5e856f34af913e4b8c1577a15067fd244887e443bf34f49aa
MD5 1aa0e3118806a0ebae99717662105c77
BLAKE2b-256 c65fb4ce50209adc649234588c03348f5f9392105a23cc5d61d37272bf9a1c92

See more details on using hashes here.

Release history Release notifications | RSS feed

0.10.1

2 files

0.9.0

2 files

0.8.0

2 files

This release

0.7.5 This release

2 files

0.7.4

2 files

0.7.3

2 files

0.7.2

2 files

0.7.1

2 files

0.7.0

2 files

0.6.6

2 files

0.6.5

2 files

0.6.4

2 files

0.6.3

2 files

0.6.2

2 files

0.6.1

2 files

0.6.0

2 files

0.5.0

2 files

0.4.6

2 files

0.4.5

2 files

0.4.4

2 files

0.4.3

2 files

0.4.2

2 files

0.4.1

2 files

0.4.0

2 files

0.3.0

2 files

0.2.1

2 files

0.2.0

2 files

0.1.0

2 files

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