[PLUG] Run graphics apps from the command line, but suppress graphics.

Tim Wescott tim at wescottdesign.com
Fri Dec 12 23:43:43 UTC 2014


This is a medium-bizarre question, but an answer would be of great help
to me.  I've actually asked it on the Scilab list, but if there's not a
Scilab answer to it, I'd be happy with a Linux one:

I have some papers that I maintain on my web site, for example:
http://wescottdesign.com/articles/Sampling/sampling.pdf.

These are authored in lyx, with some figures generated with Scilab.  The
site is archived as software, and built using a makefile, including the
pdf files.  Rather than keeping the figures as generated graphics files,
I keep the Scilab files and generate the figures as needed.

To generate a figure, make runs its generating script from a shell, e.g.

scilab -nw -nb -e
"execstr(['errcatch(-1,''kill'')';'scf';'exec(''motor-PD-friction.sce'');';'quit'])"

Scilab thinks that it's an interactive environment, so when the script
makes a figure, Scilab opens the window on top of whatever is running,
draws it, then closes it.  Since I have several papers on the site (and
its growing), this means that I can't leave the make running in the
background and get work done, because I'm constantly getting windows
created in my face.

It's kind of like trying to read in the same room as a cat, except that
Scilab figures are not warm and fuzzy, and they do not purr.

Scilab does have a "don't use graphics" mode, but if you try to make a
graph in that mode it bombs.

Is there some way of running a command from a shell that gives the
command a working X environment (so that it can make the figure), but
hides that environment from me (so that I can keep designing a circuit,
answering my mail, or whatever it is that engineers do)?

Thanks in advance.

-- 

Tim Wescott
www.wescottdesign.com
Control & Communications systems, circuit & software design.
Phone: 503.631.7815
Cell:  503.349.8432




More information about the PLUG mailing list