TOGEOMVIEW(1gv)

πŸ’– TOGEOMVIEW πŸ’–

ok so this is the togeomview page from section 1gv of the manual, bestie. it's the little pipe goblin that yeets your commands and your geometry straight into geomview's lap. let's get into it 🫢


✨ NAME ✨

togeomview β€” send commands or OOGL objects to geomview

like. that's the whole job. that's her whole thing. πŸ’…


🌸 SYNOPSIS 🌸

togeomview [-c] [-g]  [pipename  [program args ...]]

πŸ¦‹ DESCRIPTION πŸ¦‹

ok so picture this: togeomview sends a whole stream of geomview commands, or OOGL-format geometric data, to a cooperating copy of geomview. and if geomview isn't even running?? she just starts it for you. iconic behaviour, no cap. ✨

but bestie, heads up: geomview has to be on the $PATH of the user running togeomview for that little auto-start trick to work. no $PATH, no party. πŸ’€

Typical usage is literally this:

someprogram | togeomview    (to send commands) or
someprogram-generating-OOGL-data | togeomview -g  (to send geometry)

so like, a program pipes geometric data into togeomview, and then the data gets displayed by a copy of geomview that's running with the -M option and a name that matches the one you gave to togeomview. matchy matchy. πŸŽ€

Togeomview talks to geomview through a named pipe that lives in the directory /tmp/geomview. if you don't specify a name, the pipe's default name is "OOGL". and when you're sending geometry (that's the -g case, bestie), a geomview object with the same name as the pipe shows up in geomview's object browser. main character entrance, honestly. πŸ‘‘

By default, when there's no suitable copy of geomview running, togeomview invokes "geomview" with arguments that specify the appropriate named pipe. but you can specify a different command, like this:

togeomview  OOGL  gv -wpos 300x300 -c my_startup_script

which communicates through a pipe named OOGL, and (if necessary) invokes the given gv command. 🌈

⚠️ and here's the rule: the pipe name is required if a command is specified. don't skip it, she needs it fr fr.

Once togeomview has created that named pipe, you can just write to it like an ordinary file. for example, you could use:

togeomview pipename < /dev/null

to invoke a listening copy of geomview, and then run a program that simply wrote to /tmp/geomview/pipename. easy. slay. πŸ“


πŸŽ€ FILES πŸŽ€

  • /tmp/geomview β€” the directory where all the pipe drama goes down

πŸ’€ BUGS πŸ’€

ok so the whole pipe-based communications scheme comes with some restrictions. it's giving "we're doing our best." 😭

  • If no copy of geomview is reading from the pipe, or if geomview gets far enough behind, a program writing data to togeomview will be forced to block after sending a few kilobytes. yes, blocked. just sitting there. waiting. πŸ™ˆ
  • Because of the buffering in the pipe, the sender may be substantially ahead of the geomview display. she's running ahead of the vibes.
  • If geomview exits, the sending program receives a write-on-broken-pipe (SIGPIPE) signal, which will kill it unless measures are taken to catch or ignore that signal. so like. catch it. or ignore it. or perish. πŸ’…
  • Only one copy of geomview can read from a given pipe at a time. if a second copy attempts to read from it, both will probably fail. it's fine to have multiple copies of geomview reading from different pipes though β€” that's totally chill. 🌸
  • Note that togeomview will invoke geomview if no extant copy is listening to the relevant pipe; it can't connect to an existing copy of geomview started by other means. she makes her own friends, she doesn't crash other people's parties. no cap.

πŸ‘‘ SEE ALSO πŸ‘‘


ok that's the whole page, bestie!! πŸ₯° this one's from the Geometry Center, dated 21 May 1993 β€” vintage icon behaviour, honestly. go pipe something into something. you got this. πŸ’–βœ¨