From 67eaa69851f6659a1f2ff1474539c972e0a0c878 Mon Sep 17 00:00:00 2001 From: Daniel Dada Date: Wed, 4 Feb 2026 00:34:37 +0300 Subject: [PATCH] updated generator cli arg --- README.md | 58 +++++++++++++++++++++++++++++++++++++ src/cli/main.cpp | 20 +++++++++++-- src/core/common/version.hpp | 2 +- 3 files changed, 76 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a58c8d7..48188cd 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,7 @@ A theme management tool for synchronizing color schemes across multiple applicat - **CLI & GUI**: Choose between a command-line interface or a graphical editor - **Live Reload**: Define post-apply hooks (configurable per template) - **Flexible Color Formats**: Support for HEX, RGB, HSL with multi-component access (e.g., `{color.r}`, `{color.hex}`, `{color.hsl}`) +- **Color generation**: integration with `hellwal` and `matugen` ## Installation @@ -421,6 +422,8 @@ Format colors using dot notation: ### CLI +#### Basic Commands + List available themes: ```bash clrsync_cli --list-themes @@ -451,6 +454,61 @@ Use a custom config file: clrsync_cli --config /path/to/config.toml --apply ``` +#### Palette Generation + +Generate a palette from an image: +```bash +clrsync_cli --generate /path/to/image.png +``` + +Generate a palette from a color (hex): +```bash +clrsync_cli --generate-color "#B44242" --generator matugen +``` + +#### Generator Options + +**Hellwal Generator** (default): +```bash +clrsync_cli --generate image.png --generator hellwal --hellwal-neon --hellwal-dark +``` + +Available hellwal options: +- `--hellwal-neon` - Enable neon mode +- `--hellwal-dark` - Prefer dark palettes +- `--hellwal-light` - Prefer light palettes +- `--hellwal-color` - Enable color mode +- `--hellwal-invert` - Invert colors +- `--hellwal-dark-offset ` - Dark offset (default: 0.0) +- `--hellwal-bright-offset ` - Bright offset (default: 0.0) +- `--hellwal-gray-scale ` - Gray scale factor (default: 0.0) + +**Matugen Generator**: +```bash +clrsync_cli --generate image.png --generator matugen --matugen-mode dark --matugen-contrast 0.5 +``` + +Available matugen options: +- `--matugen-type ` - Color scheme type (default: "scheme-tonal-spot") +- `--matugen-mode ` - Light or dark mode (default: "dark") +- `--matugen-contrast ` - Contrast value from -1 to 1 (default: 0.0) + +#### All Options + +``` +-h, --help Show help message and exit +-v, --version Print version information and exit +-a, --apply Apply default theme +-c, --config Set config file path (default: ~/.config/clrsync/config.toml) +-l, --list-themes List available themes +-s, --show-vars Show color keys +-t, --theme Set theme to apply +-p, --path Set theme file to apply +-g, --generate Generate palette from +--generate-color Generate palette from a color (hex), used with --generator matugen +--generator Palette generator to use (default: "hellwal") +``` + ### GUI Launch the graphical editor: diff --git a/src/cli/main.cpp b/src/cli/main.cpp index 93c9396..8b9a79f 100644 --- a/src/cli/main.cpp +++ b/src/cli/main.cpp @@ -180,7 +180,7 @@ int main(int argc, char *argv[]) return handle_apply_theme(program, default_theme); } - if (program.is_used("--generate")) + if (program.is_used("--generate") || program.is_used("--generate-color")) { std::string image_path; if (program.is_used("--generate")) @@ -190,6 +190,12 @@ int main(int argc, char *argv[]) clrsync::core::palette pal; if (generator_name == "hellwal") { + if (program.is_used("--generate-color")) + { + std::cerr << "Error: --generate-color is only supported with --generator matugen" << std::endl; + return 1; + } + clrsync::core::hellwal_generator gen; clrsync::core::hellwal_generator::options opts{}; @@ -289,8 +295,16 @@ int main(int argc, char *argv[]) if (pal.name().empty()) { - std::filesystem::path p(image_path); - pal.set_name("generated:" + p.filename().string()); + if (program.is_used("--generate-color")) + { + std::string color = program.get("--generate-color"); + pal.set_name("generated:" + color); + } + else + { + std::filesystem::path p(image_path); + pal.set_name("generated:" + p.filename().string()); + } } auto dir = clrsync::core::config::instance().palettes_path(); diff --git a/src/core/common/version.hpp b/src/core/common/version.hpp index 07b038c..9248290 100644 --- a/src/core/common/version.hpp +++ b/src/core/common/version.hpp @@ -6,7 +6,7 @@ namespace clrsync::core { -const std::string GIT_SEMVER = "1.1.1+git.gb5f3507"; +const std::string GIT_SEMVER = "1.1.1+git.g6badab9"; const std::string version_string(); } // namespace clrsync::core