• rootiest released this 2026-05-09 05:02:23 +00:00 | 0 commits to main since this release

    Summary

    🚀 New Features

    • XDG Base Directory compliance — all install/config/runtime paths now resolve via $XDG_CONFIG_HOME, $XDG_DATA_HOME, and $XDG_RUNTIME_DIR with the conventional defaults (~/.config, ~/.local/share, /tmp) as fallbacks. BIN_DIR stays ~/.local/bin since no XDG standard covers user binaries.
    • --uninstall flag — removes the binary symlink, .desktop entry, and data directory with colored per-step output and a post-run verification pass. Prompts to remove the config directory when stdin is a TTY; skips the prompt (keeps config) in non-interactive mode.

    Enhancements

    • xclip advisory--check-deps and --install now emit a yellow warning when wl-clipboard is absent but xclip is found, explaining that xclip routes through XWayland and may be unreliable on Wayland.
    • Dependency message cleanup — normalized all clipboard messages to use package names (wl-clipboard, xclip) consistently.
    • Readable path output — added tilde_path helper that replaces the $HOME prefix with ~/ in any user-facing path string. Applied throughout --help, --install, and --uninstall output. Paths outside $HOME (e.g. custom XDG roots) are shown as full absolute paths. All actual file operations continue to use the original absolute paths.

    📝 Documentation

    • README — updated install steps, usage block, and configuration section to reference XDG variables; added xclip advisory to prerequisites; documented --uninstall.

    Tests

    • Improve Legibility — export XDG_CONFIG_HOME/XDG_DATA_HOME in the sandbox so the overridden HOME is respected (fixes a pre-existing test regression).
    • Mock Tools — add cp and ln to mocked tools.
    • New Test — add test 15 (install verifies XDG file placement).
    • New Test — add test 16 (uninstall verifies cleanup with config kept).

    Changelog

    • docs: link script directly in manual install guide (979c0b7436)
    • feat: XDG Base Directory compliance, --uninstall flag, and xclip advisory (075bb10265)
    • refactor: apply tilde_path to all user-facing path output (06dd84d3a3)
    • fix(deps): dynamic clipboard label and yellow check for xclip-only in --check-deps (ad7a1f15b3)
    • fix(tests): redirect stdin from /dev/null in uninstall test to prevent hang (1a27dbde4e)
    Downloads
  • rootiest released this 2026-05-05 01:46:34 +00:00 | 6 commits to main since this release

    Summary

    This minor release introduces a comprehensive dependency checking system and refactors the script's global state for better maintainability.

    Note

    This is a maintenance release focused on internal stability and installation reliability. If your current setup is working perfectly, there are no new user-facing features, but updating is recommended for better dependency reporting and future-proofing.

    Key Changes:

    • Dependency Check: Added --check-deps flag to produce a colorized report of all required and optional dependencies.
    • Truecolor Detection: Improved terminal swatch reliability by checking for 24-bit color support.
    • Global Refactoring: Refactored brand color logic and path management for improved maintainability.
    • Installation Improvements: Refactored --install logic into an idempotent directory loop with enhanced PATH status warnings.
    • Documentation: Updated README.md with a clearer breakdown of core vs. optional prerequisites.

    Tests

    Verified with the existing test suite (14/14 PASS).

    Changelog

    • feat: add dependency check and refactor global state (def2127ed6)
    Downloads
  • rootiest released this 2026-05-03 18:58:09 +00:00 | 8 commits to main since this release

    Summary

    This release adds support for notification color swatches and implements installation dependency warnings.

    🚀 Features

    Notification Swatch Support

    • Added ImageMagick detection logic (magick or convert).
    • Configured the script to generate a 64x64 color swatch image and attach it to the notify-send payload if swatch_mode is enabled.
    • Ensured ImageMagick usage is non-fatal; if generation fails, it falls back to a standard notification gracefully.

    Configuration

    • Make swatch = true default in the stock [desktop] configuration and internal defaults.
    • Implement a robust whitespace adjustment logic in the configuration updater to keep comments aligned when editing config.

    Dependency Verification (check_dependencies)

    • Implemented a post-installation dependency checker that validates both optional and required dependencies.
    • It detects the presence of magick / convert (ImageMagick), wl-copy / xclip (Clipboard utilities), jq and curl, and python3 and PyQt6 (essential for KDE Wayland Color Picker functionality).
    • The script checks the desktop environment directly for WAYLAND_DISPLAY and XDG_CURRENT_DESKTOP=KDE.
    • During --install, users receive clear, color-coded warnings if optional tools are missing, describing precisely what functionality will be limited.

    🩺 Fixes

    • Update the --swatch description in --help to indicate swatch support in the notifications.

    🚧 Tests

    Test Suite Enhancements

    • Added a mock test environment inside tests/run_tests.sh designed to test the --install command with a missing toolset.
    • Verified that the script correctly throws all expected missing dependency warnings without failing the installation.

    Changelog

    • docs: update README with swatch and dependency checks (867b8ccf26)
    • feat: implement notification color swatch and dependency verification (7c882bb26c)
    • fix(help): clarify --swatch applies to terminal and notifications (8333d249d9)
    • feat(config): enable swatch by default for desktop mode (8d94bc4006)
    • fix(help): clarify --swatch applies to terminal and notifications (8333d249d9)
    • feat(config): maintain comment alignment in set_config (e0967a8388)
    Downloads
  • rootiest released this 2026-05-03 03:33:50 +00:00 | 20 commits to main since this release

    Summary

    🚀 New Features

    Create new flags for interacting with the config:

    • Add --get-config to print the current configuration.
    • Add --set-config to update specific configuration keys in the TOML file.
    • Add --reset-config to restore the default configuration.
    • Refactor do_install to use the new write_default_config function.
    • Update --help text to document the new configuration management flags.

    See the configuration documentation for more detail and examples for using these new commands.

    🚧 Tests

    Implement additional tests to verify configuration interaction functionality:

    • Add 6 new tests to verify proper functionality:
      • Configuration Management
      • JSON Output
      • Swatch Output
      • Color Name Fetching
      • Invalid Color Input
      • Invalid Format Input

    📖 Documentation

    Update README to document new functionality:

    • Add config flags to Usage documentation.
    • Add descriptions and examples of new flags to the Configuration documentation.

    Changelog

    • feat: implement config management flags (456071f2da)
    • ci/test: add gitea workflow and comprehensive test coverage (9ab65a6b1f)
    • docs, test: add config management documentation and tests (616aa6f2f1)
    Downloads
  • rootiest released this 2026-04-29 02:18:34 +00:00 | 30 commits to main since this release

    Summary

    This PR adds system notifications and improved CLI feedback when the user attempts to copy a color but no clipboard utility (like wl-copy or xclip) is installed.

    Changes

    • Added notify_error function for high-visibility warning notifications.
    • Updated process_color to capture clipboard failures and trigger notifications when --notify is active.
    • Refined the warning message for missing utilities to be more informative.

    Verification

    Verified using a restricted PATH environment where wl-copy and xclip were removed, confirming that notify-send is correctly invoked with a warning payload.

    Changelog

    • fix: notify when clipboard utility is missing (5f659b90e3)
    Downloads
  • rootiest released this 2026-04-28 03:23:13 +00:00 | 33 commits to main since this release

    Summary

    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.

    Changelog

    • docs: add credit for wl-colorpicker-plasma script to readme (898d44d)
    • chore(license): add license file and headers to source files (ce410d1)
    • chore: update ignore patterns (6a88e39)
    • ci: add Gitea workflow to automate releases on PR merge (7da7664)
    • docs: add comprehensive README with installation and usage guides (24bc490)
    • feat: modernize color-tool with multiple formats, HSL support, and embedded picker (5c87e38)
    Downloads