# dotz
[](https://badge.fury.io/py/dotz)
[](https://pypi.org/project/dotz/)
[](https://opensource.org/licenses/GPL-3.0)
[](https://github.com/tTrmc/dotz/actions)
[](https://github.com/tTrmc/dotz/actions)
[](https://github.com/psf/black)
[](https://github.com/tTrmc/dotz/pulls)
[](https://github.com/tTrmc/dotz/issues)
> A fully featured **dotfiles** manager for Linux, backed by Git.
**dotz** provides comprehensive tracking, versioning, and synchronization of your configuration files across machines. An open source project welcoming community contributions.
## Table of Contents
* [Features](#features)
* [Installation](#installation)
* [Quick Start](#quick-start)
* [Usage](#usage)
* [Project Structure](#project-structure)
* [Configuration](#configuration)
* [Testing](#testing)
* [Contributing](#contributing)
* [Support](#support)
* [Acknowledgments](#acknowledgments)
* [License](#license)
## Features
* **Complete dotfile management**: Full-featured repository initialization with local and remote support
* **Git-powered versioning**: Comprehensive version history, branching, and remote synchronization
* **Advanced file management**: Add, remove, and restore dotfiles with automatic symlinking and conflict resolution
* **Intelligent directory handling**: Recursive directory support with smart pattern matching
* **Dynamic file watching**: Automatic detection and addition of new configuration files in tracked directories
* **Flexible pattern system**: Comprehensive include/exclude patterns with customizable file type filtering
* **Rich status reporting**: Detailed overview of untracked, modified, and staged files with progress indicators
* **Complete configuration management**: Built-in commands to manage file patterns, search settings, and repository behavior
* **GUI interface**: Modern Qt6-based graphical interface with tabbed workflow management
* **Advanced diagnostics**: Comprehensive `diagnose` command with detailed troubleshooting and repair capabilities
* **Full shell integration**: Tab-completion for all commands, options, and file paths
* **Cross-platform foundation**: Portable architecture requiring only Python 3.9+ and Git
## Installation
### For End Users (Recommended)
**From PyPI:**
```bash
# Core functionality
pip install dotz
# With GUI support
pip install dotz[gui]
```
**Using pipx (isolated environment):**
```bash
# Install pipx if needed
sudo apt install pipx # Debian/Ubuntu
# or
sudo pacman -S python-pipx # Arch Linux
# Install dotz with GUI support
pipx install dotz[gui]
```
### For Developers
**Quick setup:**
```bash
git clone https://github.com/tTrmc/dotz.git
cd dotz
./setup-dev.sh # Sets up virtual environment and installs dependencies
```
**Manual setup:**
```bash
git clone https://github.com/tTrmc/dotz.git
cd dotz
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev,test]"
```
### Verify Installation
```bash
dotz --help
```
**Requirements:**
* Python 3.9 or newer
* Git
>[!CAUTION]
>**NEVER use public Git repositories with dotz.** Your dotfiles often contain:
>
>* SSH keys and certificates
>* API tokens and passwords
>* Personal file paths and system information
>* Application configurations with sensitive data
>
>**Always use private repositories** or consider excluding sensitive files with dotz's pattern configuration.
## Quick Start
### Initialize your dotz repository
```bash
# Local repository only
dotz init
# With private remote repository (recommended)
dotz init --remote git@github.com:yourusername/dotfiles-private.git
```
### Add your first dotfile
```bash
# Add a single file
dotz add .bashrc
# Add all dotfiles in a directory
dotz add .config
# Add and push to remote
dotz add .vimrc --push
# Or use the graphical interface
dotz gui
```
### Sync across machines
```bash
# Pull latest changes
dotz pull
# Push your changes
dotz push
```
## Usage
### Repository Management
**Initialize:**
```bash
dotz init # Local only
dotz init --remote git@github.com:user/dotfiles-private.git # With remote
```
**Sync:**
```bash
dotz pull # Fetch and merge changes
dotz push # Push local commits
```
### File Management
**Add files:**
```bash
dotz add .bashrc # Single file
dotz add .config # Directory (recursive by default)
dotz add .config --no-recursive # Top-level files only
dotz add .vimrc --push # Add and push
```
**Remove files:**
```bash
dotz delete .vimrc # Remove file
dotz delete .vimrc --push # Remove and push
```
**Restore files:**
```bash
dotz restore .vimrc # Restore single file
dotz restore .config # Restore directory
```
### Information Commands
```bash
dotz status # Show repository status
dotz list-files # List tracked files
dotz diagnose # Troubleshoot issues
dotz version # Show version
```
### Graphical Interface
**Launch GUI:**
```bash
dotz gui # Open the Qt6-based graphical interface
```
The GUI provides:
* **Dashboard**: Repository status and quick actions
* **File Management**: Visual file browser with add/remove capabilities
* **Settings**: Configuration management with pattern editor
* **Repository Setup**: Interactive initialization wizard
### Advanced Features
**File watching:**
```bash
dotz watch # Automatically add new dotfiles in tracked directories
```
**Shell completion:**
```bash
dotz --install-completion # Enable tab completion
```
### Configuration Management
Manage file patterns and search settings:
```bash
dotz config show # Show current configuration
dotz config list-patterns # List file patterns
dotz config add-pattern "*.py" # Include Python files
dotz config add-pattern "*.log" --type exclude # Exclude log files
dotz config remove-pattern "*.py" # Remove pattern
dotz config set search_settings.recursive false # Disable recursion
dotz config reset # Reset to defaults
dotz config help # Show detailed help
```
## Project Structure
```text
dotz/
├── src/
│ └── dotz/
│ ├── __init__.py
│ ├── cli.py # Typer-based CLI entry point
│ ├── core.py # Core logic for dotfile management
│ ├── watcher.py # Watchdog-based directory watcher
│ └── gui/ # Qt6-based graphical interface
│ ├── __init__.py
│ ├── main.py # Main GUI application window
│ └── widgets/ # Individual GUI components
│ ├── dashboard.py # Status and quick actions
│ ├── files.py # File management interface
│ ├── settings.py # Configuration editor
│ └── init.py # Repository setup wizard
├── tests/
│ ├── conftest.py # Shared pytest fixtures
│ ├── test_cli.py # CLI command tests
│ ├── test_cli_config.py # Configuration command tests
│ ├── test_core.py # Core functionality tests
│ └── test_watcher.py # File watching tests
├── pyproject.toml # Project metadata and dependencies
├── README.md # Project documentation
├── LICENSE # GPL-3.0-or-later license
├── CONTRIBUTING.md # Contribution guidelines
└── .gitignore # Files and directories to exclude
```
The `.git` folder is created inside `~/.dotz/repo` once you initialize dotz.
## Configuration
dotz uses configurable file patterns to determine which files to track. The configuration is stored in `~/.dotz/config.json`.
### Default File Patterns
**Include patterns** (files that will be tracked):
* `.*` - All dotfiles (files starting with `.`)
* `*.conf`, `*.config`, `*.cfg`, `*.ini` - Configuration files
* `*.toml`, `*.yaml`, `*.yml`, `*.json` - Structured config files
**Exclude patterns** (files that will be ignored):
* `.DS_Store`, `.Trash*` - System files
* `.cache`, `.git`, `.svn` - Cache and VCS directories
* `*.log`, `*.tmp` - Temporary files
### Search Settings
* `recursive`: Search subdirectories recursively (default: `true`)
* `case_sensitive`: Case-sensitive pattern matching (default: `false`)
* `follow_symlinks`: Follow symbolic links during search (default: `false`)
### Customizing Configuration
Use the `dotz config` commands to customize which files are tracked:
```bash
# Add Python files to tracking
dotz config add-pattern "*.py"
# Exclude compiled Python files
dotz config add-pattern "*.pyc" --type exclude
# Disable recursive search
dotz config set search_settings.recursive false
```
## Testing
dotz has a comprehensive test suite to ensure reliability and catch regressions. Contributors are encouraged to run tests before submitting changes.
### Running Tests
**Quick test run:**
```bash
pip install pytest
pytest
```
**With coverage:**
```bash
pytest --cov=dotz
```
### Test Categories
The project includes **161 passing tests** covering:
* **CLI commands**: All dotz commands and options including GUI integration
* **Core functionality**: File management, Git operations, configuration
* **Configuration management**: Pattern matching, settings, validation
* **File watching**: Automatic detection and tracking of new files
* **Error handling**: Graceful handling of edge cases and failures
* **Environment isolation**: Tests run in isolated temporary environments
### Development Testing
For development, install with test dependencies:
```bash
pip install -e ".[dev,test]" # Install with all dependencies
pytest -v # Run tests with verbose output
pytest --cov=dotz # Run tests with coverage report
make test-cov # Run tests with HTML coverage report
```
### Development Workflow
```bash
make help # Show all available commands
make test # Run tests
make lint # Run code quality checks
make format # Auto-format code
make build # Build distribution packages
```
### Writing Tests
When contributing new features:
* Add tests to the appropriate test file in `tests/`
* Follow existing test patterns and naming conventions
* Ensure tests are isolated and don't depend on external state
* Test both success and failure scenarios
* Update test documentation if needed
All tests run in isolated temporary environments to prevent interference with your actual dotz configuration.
## Contributing
Contributions are welcome!
### Ways to Contribute
* **Report bugs**: Found an issue? [Open a bug report](https://github.com/tTrmc/dotz/issues/new?labels=bug&template=bug_report.md)
* **Request features**: Have an idea? [Submit a feature request](https://github.com/tTrmc/dotz/issues/new?labels=enhancement&template=feature_request.md)
* **Improve documentation**: Help make the docs clearer and more comprehensive
* **Submit code**: Fix bugs or implement new features with a pull request
* **Review PRs**: Help review and test pull requests from other contributors
* **Share feedback**: Let me know how dotz works for you and what could be better
### Getting Started
1. **Fork the repository** and clone it locally
2. **Set up development environment**:
```bash
git clone https://github.com/yourusername/dotz.git
cd dotz
./setup-dev.sh # Sets up virtual environment and installs dependencies
```
3. **Make your changes** and add tests if applicable
4. **Run the test suite** to ensure everything works:
```bash
make test # Run all tests
make lint # Check code quality
make format # Auto-format code
```
5. **Submit a pull request** with a clear description of your changes
### Development Guidelines
* Follow the existing code style and conventions
* Write tests for new features and bug fixes
* Update documentation when adding new functionality
* Keep commits focused and write clear commit messages
### Need Help?
* Check out [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines
* Browse [existing issues](https://github.com/tTrmc/dotz/issues) to see what needs work
* Join discussions in [pull requests](https://github.com/tTrmc/dotz/pulls)
* Feel free to ask questions in issues or discussions
## Support
### Getting Help
* **Documentation**: Check this README and the built-in help (`dotz --help`)
* **Issues**: [Search existing issues](https://github.com/tTrmc/dotz/issues) or create a new one
* **Troubleshooting**: Use `dotz diagnose` for common problems
### Reporting Issues
When reporting bugs, please include:
* Your operating system and Python version
* dotz version (`dotz version`)
* Steps to reproduce the issue
* Expected vs. actual behavior
* Any error messages or logs
## Acknowledgments
This project has benefited from the contributions and support of the following people:
### Contributors
[](https://github.com/tTrmc/dotz/graphs/contributors)
## License
This project is distributed under the **GPL-3.0-or-later** license. See the [LICENSE](LICENSE) file for details.
By contributing to dotz, you agree that your contributions will be licensed under the same license.
Raw data
{
"_id": null,
"home_page": null,
"name": "dotz",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "dotfiles, git, configuration, linux, symlink, backup, dotz",
"author": null,
"author_email": "Moustafa Salem <salemmoustafa442@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/5c/72/9c2561f1b983386c1cc4990fcf86a52d7eeb17f8e880a902098e17bd1af5/dotz-0.4.0.tar.gz",
"platform": null,
"description": "# dotz\n\n[](https://badge.fury.io/py/dotz)\n[](https://pypi.org/project/dotz/)\n[](https://opensource.org/licenses/GPL-3.0)\n[](https://github.com/tTrmc/dotz/actions)\n[](https://github.com/tTrmc/dotz/actions)\n[](https://github.com/psf/black)\n[](https://github.com/tTrmc/dotz/pulls)\n[](https://github.com/tTrmc/dotz/issues)\n\n> A fully featured **dotfiles** manager for Linux, backed by Git.\n\n**dotz** provides comprehensive tracking, versioning, and synchronization of your configuration files across machines. An open source project welcoming community contributions.\n\n## Table of Contents\n\n* [Features](#features)\n* [Installation](#installation)\n* [Quick Start](#quick-start)\n* [Usage](#usage)\n* [Project Structure](#project-structure)\n* [Configuration](#configuration)\n* [Testing](#testing)\n* [Contributing](#contributing)\n* [Support](#support)\n* [Acknowledgments](#acknowledgments)\n* [License](#license)\n\n## Features\n\n* **Complete dotfile management**: Full-featured repository initialization with local and remote support\n* **Git-powered versioning**: Comprehensive version history, branching, and remote synchronization\n* **Advanced file management**: Add, remove, and restore dotfiles with automatic symlinking and conflict resolution\n* **Intelligent directory handling**: Recursive directory support with smart pattern matching\n* **Dynamic file watching**: Automatic detection and addition of new configuration files in tracked directories\n* **Flexible pattern system**: Comprehensive include/exclude patterns with customizable file type filtering\n* **Rich status reporting**: Detailed overview of untracked, modified, and staged files with progress indicators\n* **Complete configuration management**: Built-in commands to manage file patterns, search settings, and repository behavior\n* **GUI interface**: Modern Qt6-based graphical interface with tabbed workflow management\n* **Advanced diagnostics**: Comprehensive `diagnose` command with detailed troubleshooting and repair capabilities\n* **Full shell integration**: Tab-completion for all commands, options, and file paths\n* **Cross-platform foundation**: Portable architecture requiring only Python 3.9+ and Git\n\n## Installation\n\n### For End Users (Recommended)\n\n**From PyPI:**\n\n```bash\n# Core functionality\npip install dotz\n\n# With GUI support\npip install dotz[gui]\n```\n\n**Using pipx (isolated environment):**\n\n```bash\n# Install pipx if needed\nsudo apt install pipx # Debian/Ubuntu\n# or\nsudo pacman -S python-pipx # Arch Linux\n\n# Install dotz with GUI support\npipx install dotz[gui]\n```\n\n### For Developers\n\n**Quick setup:**\n\n```bash\ngit clone https://github.com/tTrmc/dotz.git\ncd dotz\n./setup-dev.sh # Sets up virtual environment and installs dependencies\n```\n\n**Manual setup:**\n\n```bash\ngit clone https://github.com/tTrmc/dotz.git\ncd dotz\npython -m venv .venv\nsource .venv/bin/activate\npip install -e \".[dev,test]\"\n```\n\n### Verify Installation\n\n```bash\ndotz --help\n```\n\n**Requirements:**\n\n* Python 3.9 or newer\n* Git\n\n>[!CAUTION]\n>**NEVER use public Git repositories with dotz.** Your dotfiles often contain:\n>\n>* SSH keys and certificates\n>* API tokens and passwords\n>* Personal file paths and system information\n>* Application configurations with sensitive data\n>\n>**Always use private repositories** or consider excluding sensitive files with dotz's pattern configuration.\n\n## Quick Start\n\n### Initialize your dotz repository\n\n```bash\n# Local repository only\ndotz init\n\n# With private remote repository (recommended)\ndotz init --remote git@github.com:yourusername/dotfiles-private.git\n```\n\n### Add your first dotfile\n\n```bash\n# Add a single file\ndotz add .bashrc\n\n# Add all dotfiles in a directory\ndotz add .config\n\n# Add and push to remote\ndotz add .vimrc --push\n\n# Or use the graphical interface\ndotz gui\n```\n\n### Sync across machines\n\n```bash\n# Pull latest changes\ndotz pull\n\n# Push your changes\ndotz push\n```\n\n## Usage\n\n### Repository Management\n\n**Initialize:**\n\n```bash\ndotz init # Local only\ndotz init --remote git@github.com:user/dotfiles-private.git # With remote\n```\n\n**Sync:**\n\n```bash\ndotz pull # Fetch and merge changes\ndotz push # Push local commits\n```\n\n### File Management\n\n**Add files:**\n\n```bash\ndotz add .bashrc # Single file\ndotz add .config # Directory (recursive by default)\ndotz add .config --no-recursive # Top-level files only\ndotz add .vimrc --push # Add and push\n```\n\n**Remove files:**\n\n```bash\ndotz delete .vimrc # Remove file\ndotz delete .vimrc --push # Remove and push\n```\n\n**Restore files:**\n\n```bash\ndotz restore .vimrc # Restore single file\ndotz restore .config # Restore directory\n```\n\n### Information Commands\n\n```bash\ndotz status # Show repository status\ndotz list-files # List tracked files\ndotz diagnose # Troubleshoot issues\ndotz version # Show version\n```\n\n### Graphical Interface\n\n**Launch GUI:**\n\n```bash\ndotz gui # Open the Qt6-based graphical interface\n```\n\nThe GUI provides:\n\n* **Dashboard**: Repository status and quick actions\n* **File Management**: Visual file browser with add/remove capabilities\n* **Settings**: Configuration management with pattern editor\n* **Repository Setup**: Interactive initialization wizard\n\n### Advanced Features\n\n**File watching:**\n\n```bash\ndotz watch # Automatically add new dotfiles in tracked directories\n```\n\n**Shell completion:**\n\n```bash\ndotz --install-completion # Enable tab completion\n```\n\n### Configuration Management\n\nManage file patterns and search settings:\n\n```bash\ndotz config show # Show current configuration\ndotz config list-patterns # List file patterns\ndotz config add-pattern \"*.py\" # Include Python files\ndotz config add-pattern \"*.log\" --type exclude # Exclude log files\ndotz config remove-pattern \"*.py\" # Remove pattern\ndotz config set search_settings.recursive false # Disable recursion\ndotz config reset # Reset to defaults\ndotz config help # Show detailed help\n```\n\n## Project Structure\n\n```text\ndotz/\n\u251c\u2500\u2500 src/\n\u2502 \u2514\u2500\u2500 dotz/\n\u2502 \u251c\u2500\u2500 __init__.py\n\u2502 \u251c\u2500\u2500 cli.py # Typer-based CLI entry point\n\u2502 \u251c\u2500\u2500 core.py # Core logic for dotfile management\n\u2502 \u251c\u2500\u2500 watcher.py # Watchdog-based directory watcher\n\u2502 \u2514\u2500\u2500 gui/ # Qt6-based graphical interface\n\u2502 \u251c\u2500\u2500 __init__.py\n\u2502 \u251c\u2500\u2500 main.py # Main GUI application window\n\u2502 \u2514\u2500\u2500 widgets/ # Individual GUI components\n\u2502 \u251c\u2500\u2500 dashboard.py # Status and quick actions\n\u2502 \u251c\u2500\u2500 files.py # File management interface\n\u2502 \u251c\u2500\u2500 settings.py # Configuration editor\n\u2502 \u2514\u2500\u2500 init.py # Repository setup wizard\n\u251c\u2500\u2500 tests/\n\u2502 \u251c\u2500\u2500 conftest.py # Shared pytest fixtures\n\u2502 \u251c\u2500\u2500 test_cli.py # CLI command tests\n\u2502 \u251c\u2500\u2500 test_cli_config.py # Configuration command tests\n\u2502 \u251c\u2500\u2500 test_core.py # Core functionality tests\n\u2502 \u2514\u2500\u2500 test_watcher.py # File watching tests\n\u251c\u2500\u2500 pyproject.toml # Project metadata and dependencies\n\u251c\u2500\u2500 README.md # Project documentation\n\u251c\u2500\u2500 LICENSE # GPL-3.0-or-later license\n\u251c\u2500\u2500 CONTRIBUTING.md # Contribution guidelines\n\u2514\u2500\u2500 .gitignore # Files and directories to exclude\n```\n\nThe `.git` folder is created inside `~/.dotz/repo` once you initialize dotz.\n\n## Configuration\n\ndotz uses configurable file patterns to determine which files to track. The configuration is stored in `~/.dotz/config.json`.\n\n### Default File Patterns\n\n**Include patterns** (files that will be tracked):\n\n* `.*` - All dotfiles (files starting with `.`)\n* `*.conf`, `*.config`, `*.cfg`, `*.ini` - Configuration files\n* `*.toml`, `*.yaml`, `*.yml`, `*.json` - Structured config files\n\n**Exclude patterns** (files that will be ignored):\n\n* `.DS_Store`, `.Trash*` - System files\n* `.cache`, `.git`, `.svn` - Cache and VCS directories\n* `*.log`, `*.tmp` - Temporary files\n\n### Search Settings\n\n* `recursive`: Search subdirectories recursively (default: `true`)\n* `case_sensitive`: Case-sensitive pattern matching (default: `false`)\n* `follow_symlinks`: Follow symbolic links during search (default: `false`)\n\n### Customizing Configuration\n\nUse the `dotz config` commands to customize which files are tracked:\n\n```bash\n# Add Python files to tracking\ndotz config add-pattern \"*.py\"\n\n# Exclude compiled Python files\ndotz config add-pattern \"*.pyc\" --type exclude\n\n# Disable recursive search\ndotz config set search_settings.recursive false\n```\n\n## Testing\n\ndotz has a comprehensive test suite to ensure reliability and catch regressions. Contributors are encouraged to run tests before submitting changes.\n\n### Running Tests\n\n**Quick test run:**\n\n```bash\npip install pytest\npytest\n```\n\n**With coverage:**\n\n```bash\npytest --cov=dotz\n```\n\n### Test Categories\n\nThe project includes **161 passing tests** covering:\n\n* **CLI commands**: All dotz commands and options including GUI integration\n* **Core functionality**: File management, Git operations, configuration\n* **Configuration management**: Pattern matching, settings, validation\n* **File watching**: Automatic detection and tracking of new files\n* **Error handling**: Graceful handling of edge cases and failures\n* **Environment isolation**: Tests run in isolated temporary environments\n\n### Development Testing\n\nFor development, install with test dependencies:\n\n```bash\npip install -e \".[dev,test]\" # Install with all dependencies\npytest -v # Run tests with verbose output\npytest --cov=dotz # Run tests with coverage report\nmake test-cov # Run tests with HTML coverage report\n```\n\n### Development Workflow\n\n```bash\nmake help # Show all available commands\nmake test # Run tests\nmake lint # Run code quality checks\nmake format # Auto-format code\nmake build # Build distribution packages\n```\n\n### Writing Tests\n\nWhen contributing new features:\n\n* Add tests to the appropriate test file in `tests/`\n* Follow existing test patterns and naming conventions\n* Ensure tests are isolated and don't depend on external state\n* Test both success and failure scenarios\n* Update test documentation if needed\n\nAll tests run in isolated temporary environments to prevent interference with your actual dotz configuration.\n\n\n\n## Contributing\n\nContributions are welcome!\n\n### Ways to Contribute\n\n* **Report bugs**: Found an issue? [Open a bug report](https://github.com/tTrmc/dotz/issues/new?labels=bug&template=bug_report.md)\n* **Request features**: Have an idea? [Submit a feature request](https://github.com/tTrmc/dotz/issues/new?labels=enhancement&template=feature_request.md)\n* **Improve documentation**: Help make the docs clearer and more comprehensive\n* **Submit code**: Fix bugs or implement new features with a pull request\n* **Review PRs**: Help review and test pull requests from other contributors\n* **Share feedback**: Let me know how dotz works for you and what could be better\n\n### Getting Started\n\n1. **Fork the repository** and clone it locally\n2. **Set up development environment**:\n\n ```bash\n git clone https://github.com/yourusername/dotz.git\n cd dotz\n ./setup-dev.sh # Sets up virtual environment and installs dependencies\n ```\n\n3. **Make your changes** and add tests if applicable\n4. **Run the test suite** to ensure everything works:\n\n ```bash\n make test # Run all tests\n make lint # Check code quality\n make format # Auto-format code\n ```\n\n5. **Submit a pull request** with a clear description of your changes\n\n### Development Guidelines\n\n* Follow the existing code style and conventions\n* Write tests for new features and bug fixes\n* Update documentation when adding new functionality\n* Keep commits focused and write clear commit messages\n\n### Need Help?\n\n* Check out [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines\n* Browse [existing issues](https://github.com/tTrmc/dotz/issues) to see what needs work\n* Join discussions in [pull requests](https://github.com/tTrmc/dotz/pulls)\n* Feel free to ask questions in issues or discussions\n\n## Support\n\n### Getting Help\n\n* **Documentation**: Check this README and the built-in help (`dotz --help`)\n* **Issues**: [Search existing issues](https://github.com/tTrmc/dotz/issues) or create a new one\n* **Troubleshooting**: Use `dotz diagnose` for common problems\n\n### Reporting Issues\n\nWhen reporting bugs, please include:\n\n* Your operating system and Python version\n* dotz version (`dotz version`)\n* Steps to reproduce the issue\n* Expected vs. actual behavior\n* Any error messages or logs\n\n## Acknowledgments\n\nThis project has benefited from the contributions and support of the following people:\n\n### Contributors\n\n[](https://github.com/tTrmc/dotz/graphs/contributors)\n\n## License\n\nThis project is distributed under the **GPL-3.0-or-later** license. See the [LICENSE](LICENSE) file for details.\n\nBy contributing to dotz, you agree that your contributions will be licensed under the same license.\n",
"bugtrack_url": null,
"license": null,
"summary": "A fully featured, Git-backed dotfiles manager for Linux",
"version": "0.4.0",
"project_urls": {
"Changelog": "https://github.com/tTrmc/dotz/releases",
"Documentation": "https://github.com/tTrmc/dotz#readme",
"Homepage": "https://github.com/tTrmc/dotz",
"Issues": "https://github.com/tTrmc/dotz/issues",
"Repository": "https://github.com/tTrmc/dotz"
},
"split_keywords": [
"dotfiles",
" git",
" configuration",
" linux",
" symlink",
" backup",
" dotz"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "3829bde2cf33d925a6a03d6b00832d516f2605278a9b6f439a149a4934129924",
"md5": "d35b55fd70bf029e553000ed5c82d0de",
"sha256": "f74fa24a574d1a8b9798f41f108f365bd558c5710b3ed24ecde67b5708adfd15"
},
"downloads": -1,
"filename": "dotz-0.4.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d35b55fd70bf029e553000ed5c82d0de",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 53168,
"upload_time": "2025-07-12T08:40:35",
"upload_time_iso_8601": "2025-07-12T08:40:35.646338Z",
"url": "https://files.pythonhosted.org/packages/38/29/bde2cf33d925a6a03d6b00832d516f2605278a9b6f439a149a4934129924/dotz-0.4.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "5c729c2561f1b983386c1cc4990fcf86a52d7eeb17f8e880a902098e17bd1af5",
"md5": "7d60ba47b329b2c80d0e4b7eee641bad",
"sha256": "0a1ab0eae87aed8dd625117e538bcc2b25bff7d291b2d12bb42937f206a64782"
},
"downloads": -1,
"filename": "dotz-0.4.0.tar.gz",
"has_sig": false,
"md5_digest": "7d60ba47b329b2c80d0e4b7eee641bad",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 78076,
"upload_time": "2025-07-12T08:40:37",
"upload_time_iso_8601": "2025-07-12T08:40:37.956434Z",
"url": "https://files.pythonhosted.org/packages/5c/72/9c2561f1b983386c1cc4990fcf86a52d7eeb17f8e880a902098e17bd1af5/dotz-0.4.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-12 08:40:37",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "tTrmc",
"github_project": "dotz",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "dotz"
}