gaf(1)

πŸ“¦ version 1.10.2, in nixos 26.05

✨ 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 β€” stops gafrc Scheme initialisation files from being loaded. like, none of them. blocked. πŸ™ˆ
  • -h, --help β€” prints a help message. use it, bestie, it's free.
  • -V, --version β€” prints gaf version 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, because gaf export is 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 include iso_a4, na_letter, or na_d.
  • -l, --layout=(auto | landscape | portrait) β€” when you're using a paper size, this sets the orientation of the output. if auto layout 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 is auto, 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) in gschem(1) coordinate space. it's used to size the output when neither --paper nor --size are 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. if auto margins 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. HALIGN controls the horizontal alignment, VALIGN the vertical. each alignment value should be in the range 0.0 to 1.0. the auto alignment is equivalent to a value of 0.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 --scale options described above accept values using units of mm, cm, in, pc, px, or pt. if you don't provide a unit, points are assumed. n.b. that px are evaluated relative to the current --dpi setting.
πŸ’‘ also: when using the --size, --margins, or --align options with multiple values, you can use ; or as 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. πŸ–₯️✨

  • -s FILE β€” evaluate Scheme source code from FILE, and exit.
  • -c EXPR β€” evaluate the Scheme expression EXPR, and exit.
  • -- β€” stop scanning arguments; run interactively.
  • -L DIRECTORY β€” prepend DIRECTORY to the list of directories to be searched for Scheme files.
  • -l FILE β€” evaluate Scheme source code from FILE.
πŸ’‘ important bestie detail: the -s, -c and -- 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 Β© 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 ⭐

gschem(1).

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 β€” version 1.10.2.20201216. drink some water, quote your shell args, and stan --no-rcfiles. mwah πŸ’‹βœ¨
πŸ“¦ where this page comes from