id = "durdraw" name = "Durdraw" homepage = "https://github.com/cmang/durdraw" description = "ASCII and ANSI art text editor for the terminal" executables = ["durdraw"] platforms = ["macos", "linux"] [dotfiles] # The upstream source-install instructions install the sample user startup # configuration as ~/.durdraw/durdraw.ini; the configuration section documents # this INI file's theme and editor options. # https://github.com/cmang/durdraw#via-source-repository paths = ["~/.durdraw/durdraw.ini"] secret = [] side_effect = false [commands] format = 1 label = "Open or play ASCII art" description = "Open a .dur, ASCII or ANSI file in the editor, or play animations and exit. Themes, export and undo-size options are only partly covered." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = false, short_bundles = false } [[commands.source]] id = "help" kind = "help" url = "https://github.com/cmang/durdraw#command-line-usage" revision = "2026-10-27" evidence = """ usage: durdraw [-h] [-p PLAY [PLAY ...]] [-d DELAYEXIT] [-x TIMES] [--256color | --16color] [-b] [-W WIDTH] [-H HEIGHT] [-m] filename .dur or ascii file to load -p PLAY [PLAY ...], --play PLAY [PLAY ...] Just play .dur, .ANS or .ASC file or files, then exit -d DELAYEXIT, --delayexit DELAYEXIT Wait X seconds after playback before exiting (requires -p) -x TIMES, --times TIMES Play X number of times (requires -p) --256color Try 256 color mode --16color Try 16 color mode -b, --blackbg Use a black background color instead of terminal default -W WIDTH, --width WIDTH Set canvas width -H HEIGHT, --height HEIGHT Set canvas height -m, --max Maximum canvas size for terminal (overrides -W and -H) --nomouse Disable mouse support --cursor CURSOR Cursor mode (block, underscore, or pipe) --theme THEME Load a custom theme file """ [[commands.field]] id = "filename" label = "File to edit" description = "A .dur, ASCII or ANSI file to load into the editor. Leave empty for a blank canvas." type = "path" position = 0 path = { kind = "file", role = "input" } sources = ["help"] [[commands.field]] id = "play" label = "Play file and exit" description = "Just play this file, then exit instead of editing." type = "path" option = ["--play", "-p"] path = { kind = "file", role = "input" } sources = ["help"] [[commands.field]] id = "delay_exit" label = "Wait after playback (seconds)" description = "Requires Play file." type = "integer" option = ["--delayexit", "-d"] sources = ["help"] [[commands.field]] id = "times" label = "Play count" description = "Requires Play file." type = "integer" option = ["--times", "-x"] sources = ["help"] [[commands.field]] id = "color256" label = "256 color mode" type = "boolean" option = ["--256color"] sources = ["help"] [[commands.field]] id = "color16" label = "16 color mode" type = "boolean" option = ["--16color"] sources = ["help"] [[commands.field]] id = "blackbg" label = "Black background" type = "boolean" option = ["--blackbg", "-b"] sources = ["help"] [[commands.field]] id = "width" label = "Canvas width" type = "integer" option = ["--width", "-W"] sources = ["help"] [[commands.field]] id = "height" label = "Canvas height" type = "integer" option = ["--height", "-H"] sources = ["help"] [[commands.field]] id = "max" label = "Maximum canvas size" type = "boolean" option = ["--max", "-m"] sources = ["help"] [[commands.field]] id = "nomouse" label = "Disable mouse support" type = "boolean" option = ["--nomouse"] sources = ["help"] [[commands.field]] id = "cursor" label = "Cursor mode" type = "enum" option = ["--cursor"] choices = [{ value = "block", label = "Block" }, { value = "underscore", label = "Underscore" }, { value = "pipe", label = "Pipe" }] sources = ["help"] [[commands.field]] id = "theme" label = "Theme file" type = "path" option = ["--theme"] path = { kind = "file", role = "input" } sources = ["help"] [[commands.task]] id = "edit" label = "Edit a file" fields = ["filename", "max"] required = ["filename"] [[commands.task]] id = "play" label = "Play an animation" fields = ["play", "times", "delay_exit"] required = ["play"] [[commands.group]] id = "basic" label = "Basic" fields = ["filename", "play", "times", "delay_exit", "max"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["color256", "color16", "blackbg", "width", "height", "nomouse", "cursor", "theme"]