This PR modernizes color-tool with a suite of new features, improved architecture, and automated release workflows.
🚀 Key Features
Multiple Format Support: Now supports hex, hexa, rgb, rgba, hsl, and hsla output formats.
Flexible Output: Use the new --output flag to specify one or more formats (e.g., --output hex,hsl).
Visual Swatches: Added a --swatch flag to display a colored block in the terminal next to the values.
Intelligent Parsing: Improved color input parsing that handles various CSS-style color strings.
Modern CLI Interface: Added support for --no- flags (e.g., --no-copy, --no-pick) for fine-grained control.
Embedded Picker Support: The KDE Plasma color picker logic is now more robustly managed and can be automatically generated if missing.
🛠 Architectural Improvements
Robust Configuration: Refactored the config loader to support a clear priority hierarchy: CLI Flags > Desktop Config > Default Config.
Simplified Distribution: Removed the hard dependency on an external .py file by embedding the picker helper script generation.
Installation Enhancements: The --install process now handles .desktop file generation, symlinking, and sample configuration seeding more reliably.
📦 CI/CD & Documentation
Automated Releases: Added a Gitea Action to automatically create a versioned release and upload the color-tool binary whenever a PR is merged into main.
Comprehensive Docs: Added a new README.md with detailed installation, usage, and configuration guides.
Licensing: The project is now explicitly licensed under GPLv3 with appropriate headers and a LICENSE file.
🤝 Credits
Integration for the KDE Plasma color picker is based on the work by SASUPERNOVA.
This PR modernizes `color-tool` with a suite of new features, improved architecture, and automated release workflows.
### 🚀 Key Features
* **Multiple Format Support**: Now supports `hex`, `hexa`, `rgb`, `rgba`, `hsl`, and `hsla` output formats.
* **Flexible Output**: Use the new `--output` flag to specify one or more formats (e.g., `--output hex,hsl`).
* **Visual Swatches**: Added a `--swatch` flag to display a colored block in the terminal next to the values.
* **Intelligent Parsing**: Improved color input parsing that handles various CSS-style color strings.
* **Modern CLI Interface**: Added support for `--no-` flags (e.g., `--no-copy`, `--no-pick`) for fine-grained control.
* **Embedded Picker Support**: The KDE Plasma color picker logic is now more robustly managed and can be automatically generated if missing.
### 🛠 Architectural Improvements
* **Robust Configuration**: Refactored the config loader to support a clear priority hierarchy: **CLI Flags > Desktop Config > Default Config**.
* **Simplified Distribution**: Removed the hard dependency on an external `.py` file by embedding the picker helper script generation.
* **Installation Enhancements**: The `--install` process now handles `.desktop` file generation, symlinking, and sample configuration seeding more reliably.
### 📦 CI/CD & Documentation
* **Automated Releases**: Added a Gitea Action to automatically create a versioned release and upload the `color-tool` binary whenever a PR is merged into `main`.
* **Comprehensive Docs**: Added a new `README.md` with detailed installation, usage, and configuration guides.
* **Licensing**: The project is now explicitly licensed under **GPLv3** with appropriate headers and a `LICENSE` file.
### 🤝 Credits
Integration for the KDE Plasma color picker is based on the work by [SASUPERNOVA](https://github.com/SASUPERNOVA/wl-colorpicker-plasma).
- Added --output flag supporting hex, rgb, hsl, rgba, hsla, hexa, and 'all' formats
- Implemented HSL/HSLA conversion using internal Python logic
- Added --[no-] prefix support for all toggleable flags (json, name, swatch, copy, notify, pick)
- Embedded KDE Plasma color picker Python script within the main bash script for portability
- Refactored argument parsing to implement a robust priority system (CLI > Desktop Config > Default Config)
- Improved validation to catch invalid output formats before triggering the color picker
- Updated installation logic to generate all necessary components and sample configuration
- Fixed swatch formatting when outputting JSON
- Refined desktop mode behavior and configurability
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
This PR modernizes
color-toolwith a suite of new features, improved architecture, and automated release workflows.🚀 Key Features
hex,hexa,rgb,rgba,hsl, andhslaoutput formats.--outputflag to specify one or more formats (e.g.,--output hex,hsl).--swatchflag to display a colored block in the terminal next to the values.--no-flags (e.g.,--no-copy,--no-pick) for fine-grained control.🛠 Architectural Improvements
.pyfile by embedding the picker helper script generation.--installprocess now handles.desktopfile generation, symlinking, and sample configuration seeding more reliably.📦 CI/CD & Documentation
color-toolbinary whenever a PR is merged intomain.README.mdwith detailed installation, usage, and configuration guides.LICENSEfile.🤝 Credits
Integration for the KDE Plasma color picker is based on the work by SASUPERNOVA.