I usually work with SVG as text files, so would like the viewer to automatically refresh the display as soon as the file got saved (and its contents got changed) - this should be applicable to 'pipable' situations, I think (i.e. with named pipes).
Note that, for default Gnome apps:
evince currently works like this for PDFs, but seemingly it cannot read SVG (for me it generates "
Unable to open document - Error opening file: Permission denied" when I tried to load SVG files)
eog (Eye Of Gnome) - the latest versions - can also detect if a file changed on this, and then offer a 'Reload' button; but apparently, you'd still have to click on 'Reload' each time (I cannot see a way to cause automatic reload always on file change in
evince behaves with PDFs) - and also, at least on my Ubuntu 10.04,
eog SVG support is somewhat broken (zoom in results with blurry lines)
display not only does not automatically refresh when the file changes on disk - and even when you press 'refresh' in
display, you still do not get the latest version of the file (meaning, you have to restart
display to show the latest version :( ).
Here are some more notes I found so far:
- Squiggle, the SVG Browser The SVG browser that is part of the Batik toolkit. - Download Batik batik-1.7.zip; unpack it; run
java -jar batik-squiggle.jar and there it is; does not refresh the image automatically if the svg file changed on disk
- SVG Image Viewer? - Ubuntu Forums recommendations:
- In post #8 - "I wrote a little python script ... You just run it as: svg_compare.py and it opens up an svg and displays it using an svg library and using gtk's raster library. You can zoom with the mouse..."
xsvg (from http://cairographics.org) - I installed libsvg1_0.1.4-1_i386.deb, libsvg-cairo1_0.1.6-5_i386.deb and xsvg_0.2.1-3_i386.deb in that order; those versions are from 2005, and so
xsvg is extremely simple - no zoom, nothing.. And needless to say, it does not react to saved file changes automatically...
- through that, I found
rsvg-view, which I think is a part of
sudo apt-get install librsvg2-bin. Its small, nice, supports stdin - however, also
rsvg-view cannot detect a file change, and automatically refresh on it..
Yup - well, I hope this helps...
EDIT (Dec 24 '10): well, here is also my contribution: svg_refreshview.py - which is basically a rework of
svg_compare.py mentioned above, that simply shows an SVG file, and reloads the file and refreshes the display if the file has been modified. (it can't really work with stdin - but there are other scripts in my repo that parse stdin in python, maybe they'll help).
EDIT2 (May 20 '12): Also, came up with a Perl-Tk script example, which is very crude (no mouse interaction, no nothing), but uses ImageMagick Perl API, and so can render SVG (as bitmap on a canvas), please see answer #10670039 - ImageMagick API for command-line GUI application interface to
display - Stack Overflow.