id = "grace" name = "Grace" homepage = "https://plasma-gate.weizmann.ac.il/Grace/" description = "WYSIWYG 2D plotting tool for X11" executables = ["xmgrace", "gracebat", "grconvert"] platforms = ["macos", "linux"] [dotfiles] # https://github.com/fxcoudert/xmgrace/blob/master/gracerc.user — the official # source's fallback comment identifies ~/.grace/gracerc.user as the user's # startup resource file (alongside project-local ./gracerc.user variants). paths = ["~/.grace/gracerc.user"] secret = [] side_effect = false [commands] format = 1 label = "Plot data with Grace" description = "Load a data file into Grace and either open the GUI (xmgrace) or print straight to a file without a session (gracebat, or xmgrace with Hardcopy). Only common plotting options are offered." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = false, short_attached = false, short_bundles = false } [[commands.source]] id = "man" kind = "manual" url = "https://manpages.debian.org/testing/grace/xmgrace.1.en.html" revision = "testing 2026-10-27" evidence = ''' grace [ option | filename ]... xmgrace [ option | filename ]... gracebat [ option | filename ]... -hardcopy No interactive session, just print and quit -hdevice device_name Set default hardcopy device. See xmgrace -version for a list of supported devices. -log x|y|xy Set the axis scaling of the current graph to logarithmic -noask Assume the answer is yes to all requests, if the operation would overwrite a file, grace will do so without prompting -nxy file Assume data file is in X Y1 Y2 Y3 ... format -printfile file Save print output to file -param file Load parameters from file to the current graph -graphtype xy|chart|fixed|polar|pie Set the type of the current graph ''' [[commands.field]] id = "nxy" label = "Data file (X Y1 Y2 ... columns)" type = "path" option = ["-nxy"] path = { kind = "file", role = "input", must_exist = true } sources = ["man"] [[commands.field]] id = "param" label = "Parameter file" type = "path" option = ["-param"] path = { kind = "file", role = "input", must_exist = true } sources = ["man"] [[commands.field]] id = "graphtype" label = "Graph type" type = "enum" option = ["-graphtype"] choices = [{ value = "xy", label = "XY" }, { value = "chart", label = "Chart" }, { value = "fixed", label = "Fixed" }, { value = "polar", label = "Polar" }, { value = "pie", label = "Pie" }] sources = ["man"] [[commands.field]] id = "log" label = "Logarithmic axes" type = "enum" option = ["-log"] choices = [{ value = "x", label = "X" }, { value = "y", label = "Y" }, { value = "xy", label = "X and Y" }] sources = ["man"] [[commands.field]] id = "hardcopy" label = "Print and quit (no GUI)" type = "boolean" option = ["-hardcopy"] sources = ["man"] [[commands.field]] id = "hdevice" label = "Hardcopy device" description = "Device name such as PNG, EPS or PostScript; run xmgrace -version for the list." type = "string" option = ["-hdevice"] sources = ["man"] [[commands.field]] id = "printfile" label = "Save print output to" type = "path" option = ["-printfile"] path = { kind = "file", role = "output", must_exist = false } effect = "overwrite" sources = ["man"] [[commands.field]] id = "noask" label = "Overwrite without asking" type = "boolean" option = ["-noask"] effect = "overwrite" sources = ["man"] [[commands.task]] id = "plot-gui" label = "Open data in the GUI" fields = ["nxy", "param", "graphtype", "log"] required = ["nxy"] [[commands.task]] id = "render" label = "Render data to an image" set = { hardcopy = [true] } lock = ["hardcopy"] fields = ["nxy", "param", "graphtype", "log", "hdevice", "printfile", "noask"] required = ["nxy", "printfile"] [[commands.group]] id = "basic" label = "Basic" fields = ["nxy", "param", "graphtype", "log"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["hardcopy", "hdevice", "printfile", "noask"]