id = "gowall" name = "Gowall" homepage = "https://achno.github.io/gowall-docs/" description = "Tool to convert a Wallpaper's color scheme / palette" executables = ["gowall"] [dotfiles] # https://achno.github.io/gowall-docs/configYML/ documents the user config at # ~/.config/gowall/config.yml; the project follows XDG_CONFIG_HOME for this # location, so configHome is the appropriate portable root. paths = ["[configHome]/gowall/config.yml"] secret = [] [commands] format = 1 label = "Gowall" description = "Gowall image tools. Only the convert sub-command is offered here; other sub-commands such as resize, pixelate and OCR are left out." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = false, short_bundles = false } [[commands.subcommand]] path = ["convert"] label = "Convert image colours or format" description = "Recolour an image to a theme, replace one colour, or change the image format. Theme and replace cannot be combined." [[commands.subcommand.source]] id = "src" kind = "help" url = "https://github.com/Achno/gowall/blob/main/cmd/convert.go" revision = "main 2026-10-27" evidence = ''' Use: "convert [INPUT]", Short: "Convert an img's color scheme", Long: `Convert an img's color scheme or its format ie from webp to png etc`, "Usage : --theme [ThemeName] or [PATH to Json file containing theme]" "Usage : --format [image format] png,webp,jpg,jpeg" "Usage: --replace #FromColor,#ToColor" "Usage: --batch file1.png,file2.png... Batch process individual files" "Usage --dir [/path/to/dir] Batch process an entire directory" "Usage: --output ~/Folder (works on --dir and --batch also) or --output ~/NewDir/img.png" "Usage: --preview true/false enables or disables image previewing (overrides config)" // WithYes adds the --yes flag to auto-accept confirmation prompts. "Automatically answer yes to confirmation prompts" cannot use both the --theme and --replace flags together ''' [[commands.subcommand.field]] id = "input" label = "Input image" description = "Leave empty when using Batch files or Directory." type = "path" position = 0 path = { kind = "file", role = "input", must_exist = true } sources = ["src"] [[commands.subcommand.field]] id = "theme" label = "Theme" description = "A theme name from gowall list, or a path to a JSON theme file." type = "string" option = ["--theme"] sources = ["src"] [[commands.subcommand.field]] id = "format" label = "Output image format" type = "string" option = ["--format"] suggestions = [{ value = "png", label = "PNG" }, { value = "webp", label = "WebP" }, { value = "jpg", label = "JPG" }, { value = "jpeg", label = "JPEG" }] sources = ["src"] [[commands.subcommand.field]] id = "replace" label = "Replace colour" description = "From and to colours, comma separated, for example #FF0000,#00FF00." type = "string" option = ["--replace"] sources = ["src"] [[commands.subcommand.field]] id = "dir" label = "Directory to process" type = "path" option = ["--dir"] path = { kind = "directory", role = "input", must_exist = true } sources = ["src"] [[commands.subcommand.field]] id = "batch" label = "Batch files" description = "Comma-separated list of image files." type = "string" option = ["--batch"] sources = ["src"] [[commands.subcommand.field]] id = "output" label = "Output file or folder" type = "path" option = ["--output"] path = { kind = "any", role = "output", must_exist = false } effect = "overwrite" sources = ["src"] [[commands.subcommand.field]] id = "preview" label = "Preview in terminal" type = "enum" option = ["--preview"] choices = [{ value = "true", label = "On" }, { value = "false", label = "Off" }] sources = ["src"] [[commands.subcommand.field]] id = "yes" label = "Answer yes to prompts" type = "boolean" option = ["--yes"] sources = ["src"] [[commands.subcommand.task]] id = "theme" label = "Apply a theme to an image" fields = ["input", "theme", "output"] required = ["input", "theme"] [[commands.subcommand.task]] id = "format" label = "Change image format" fields = ["input", "format", "output"] required = ["input", "format"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["input", "theme", "format", "replace", "output"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["dir", "batch", "preview", "yes"]