gaf(1)
β¨ gaf(1) β the gEDA/gaf Command-Line Utility, bestie edition β¨
okay so real talk: this is the gaf(1) manual page from version 1.10.2.20201216, and it's genuinely one of my fave little tools. let's get into it π
πΈ NAME πΈ
gaf β the gEDA/gaf Command-Line Utility. yes that's it. that's the name. iconic behavior tbh.
π¦ SYNOPSIS π¦
gaf [OPTION ...] COMMAND [ARGS ...]
π DESCRIPTION π
so gaf is part of the gEDA (GPL Electronic Design Automation) toolset β think of it as the little squad of command-line utilities that handle schematic and symbol files. it's literally designed for batch processing of designs you made in the schematic editor gschem(1). π
it currently has three built-in COMMANDs, and here's the rundown:
gaf exportβ makes SVG, PDF, PNG, PS and EPS files out of schematic and symbol files, so you can print them or embed them in other documents. slay.gaf configβ reads and writes settings in the gEDA project, user and system configuration stores. the settings whisperer fr fr.gaf shellβ gives you a Scheme REPL for command-line batch processing of schematic data. main character energy.
β GENERAL OPTIONS β
--no-rcfilesβ stopsgafrcScheme initialisation files from being loaded. like, none of them. blocked. π-h,--helpβ prints a help message. use it, bestie, it's free.-V,--versionβ printsgafversion info. flex the version number.
π₯ EXPORTING IMAGE FILES π₯
gaf export [OPTION ...] -o OUTPUT [--] FILE ...
gaf export can export schematic and symbol files in a whole variety of image formats β for printing or for further processing. right now it supports single-page PNG, SVG and EPS output, plus multi-page PS and PDF output. and it takes a bunch of options for controlling exactly how the output is formatted. let's go:
-o,--output=FILEβ output the generated image data to FILE. this is where the art goes. πΌοΈ-f,--format=(png | pdf | svg | ps | eps)β specify an output format. usually you don't even need this one, becausegaf exportis smart enough to infer the correct format from the file extension of the output file. she just knows. π-p,--paper=NAMEβ size the output for a particular paper size. NAME should be a PWG 5101.1-2002 paper name. for example, valid values includeiso_a4,na_letter, orna_d.-l,--layout=(auto | landscape | portrait)β when you're using a paper size, this sets the orientation of the output. ifautolayout is used, it picks whichever orientation best fits the drawing. she chooses for you. π§-s,--size=(auto | WIDTH:HEIGHT)β size the output with specific dimensions. if the size isauto, it selects the size that best fits the drawing.-k,--scale=FACTORβ set the output scale FACTOR. this is a distance identical with 100 points (1 default grid spacing) ingschem(1)coordinate space. it's used to size the output when neither--papernor--sizeare given, and it defaults to 100 mil. (100 mil is the default, no cap.)-m,--margins=(auto | TOP[:LEFT[:BOTTOM[:RIGHT]]])β set the widths of the margins. ifautomargins are specified, a sensible default value gets chosen for you. you can provide up to four margin widths. here's the lore:- if one is provided, it's used on all four sides.
- if two are provided, the first is used for the top/bottom and the second for the left/right.
- if three are provided, the first is used for the top, the second for left/right, and the third for the bottom.
-a,--align=(auto | HALIGN:VALIGN)β set how the drawing is aligned within the page.HALIGNcontrols the horizontal alignment,VALIGNthe vertical. each alignment value should be in the range0.0to1.0. theautoalignment is equivalent to a value of0.5:0.5, i.e. centered. balanced. centered. as all things should be. βοΈ-d,--dpi=DPIβ set the number of pixels per inch used when generating PNG output.-c,--colorβ enable colour output. π--no-colorβ disable color output. (yes, one says "colour" and one says "color", and no, we're not fixing it, it's part of the charm.)-F,--font=FONT-FAMILYβ set the font used for drawing text.--β treat all remaining arguments as schematic or symbol filenames. use this if you have a schematic or symbol filename which begins with-. lifesaver fr.
π‘ heads up bestie: the--size,--margins, or--scaleoptions described above accept values using units ofmm,cm,in,pc,px, orpt. if you don't provide a unit, points are assumed. n.b. thatpxare evaluated relative to the current--dpisetting.
π‘ also: when using the--size,--margins, or--alignoptions with multiple values, you can use;oras a separator between them instead of:. in that case though, remember to properly quote your arguments so your shell doesn't go and interpret them on you. π shells are nosy like that.
π ACCESSING CONFIGURATION π
gaf config [OPTION] [GROUP KEY [VALUE]]
gaf config is a basic utility for inspecting and modifying gEDA/gaf configuration stores. lowkey essential.
here's how it works: if a GROUP and KEY are specified, it retrieves the value of that configuration parameter. if a VALUE is specified, it sets the value of that parameter. the -p, -u and -s options select which configuration store gets affected (by default, the project configuration store for the current working directory). and if no GROUP and KEY are provided, it outputs the filename of the selected configuration store. neat. β¨
-p,--project[=PATH]β select the project configuration store of the project located in PATH. if no PATH is provided, it selects the project in the current working directory.-u,--userβ select the user configuration store.-s,--systemβ select the system configuration store. depending on your user permissions, the system configuration store may be read-only. so don't come for her if the write doesn't go through. π
π§ SCHEME PROCESSING π§
gaf shell [OPTION ...]
gaf shell gives you a Scheme Read-Eval-Print Loop (REPL) for automating processing of schematic and symbol files. it's designed to be used with the gEDA Scheme API. this is the part where you feel like a hacker in a movie. π₯οΈβ¨
-sFILE β evaluate Scheme source code from FILE, and exit.-cEXPR β evaluate the Scheme expression EXPR, and exit.--β stop scanning arguments; run interactively.-LDIRECTORY β prepend DIRECTORY to the list of directories to be searched for Scheme files.-lFILE β evaluate Scheme source code from FILE.
π‘ important bestie detail: the-s,-cand--switches stop argument processing and pass all the remaining arguments as the value of(command-line).
π ENVIRONMENT π
GEDADATAβ specifies the search directory for Scheme and rc files. the default is${prefix}/share/gEDA.GEDADATARCβ specifies the search directory for rc files. the default is$GEDADATA.GEDALOGβ specifies the directory to which to write log files. the default is~/.gEDA/logs.
π AUTHORS π
see the AUTHORS file included with this program. the whole squad is credited there. π«Ά
π COPYRIGHT π
Copyright Β© 2012-2020 gEDA Contributors. License GPLv2+: GNU GPL version 2 or later. please see the COPYING file included with this program for full details.
this is free software: you are free to change and redistribute it. there is NO WARRANTY, to the extent permitted by law. (say it louder for the people in the back β no warranty, bestie. π)
β SEE ALSO β
for more information on the Scheme API, see the geda-scheme Texinfo manual. if the info program is properly installed at your site, the command
info geda-scheme
should give you access to the complete manual. go read it, it's giving lore drop. ππ«
π and that's the whole page, bestie! brought to you by the gEDA Project β December 16, 2020 β version1.10.2.20201216. drink some water, quote your shell args, and stan--no-rcfiles. mwah πβ¨
π¦ where this page comes from
- nixos 26.05: geda 1.10.2
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms