Modernize color-tool: Multi-format support, HSL, and Automated Releases #1

Merged
rootiest merged 6 commits from feat/color-tool into main 2026-04-28 03:23:01 +00:00
Owner

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).
rootiest added 6 commits 2026-04-28 03:19:55 +00:00
- 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
Include AI Agent documents.
docs: add credit for wl-colorpicker-plasma script to readme
Release on Merge / release (pull_request) Successful in 11s
898d44dd17
rootiest merged commit 8a70c79602 into main 2026-04-28 03:23:01 +00:00
Sign in to join this conversation.