1

Inkscape sometimes gets into a weird state on my machine where clipboard operations go hayware. After copying elements to the clipboard, it starts spawning many windows:

  • Postscript output windows, asking what level of Postscript to output and for various settings
  • Temporary display window that has tmpNNNNN.svg` as the title, and shows the contents of the clipboard
  • Script error output windows, saying there was a problem running the script: Inkscape has received additional data from the script executed. The script did not return an error, but this may indicate the results will not be as expected.. The window then contains the following traceback:

    UniConvertor failed:
    Traceback (most recent call last):
      File "/usr/bin/uniconvertor", line 13, in <module>
        uniconv_run()
      File "/usr/lib/python2.7/dist-packages/uniconvertor/__init__.py", line 83, in uniconv_run
        from app.io import load
      File "/usr/lib/python2.7/dist-packages/uniconvertor/app/__init__.py", line 69, in <module>
        from conf.configurator import Configurator
      File "/usr/lib/python2.7/dist-packages/uniconvertor/app/conf/configurator.py", line 11, in <module>
        from app.events import connector
      File "/usr/lib/python2.7/dist-packages/uniconvertor/app/__init__.py", line 69, in <module>
        from conf.configurator import Configurator
      File "/usr/lib/python2.7/distpackages/uniconvertor/app/conf/configurator.py", line 13, in <module>
        from sk1libs.utils.fs import gethome
    ImportError: No module named sk1libs.utils.fs
    

It's quite tricky to select the windows and close/cancel them. And more and more start appearing, a few seconds apart. In addition, the main window in which I was editing a file changes its title to Memory Document N. If I manage to save changes in that window, and exit, then I can restart and resume working successfully.

Once Inkscape gets into this state it seems to keep acting like this on copy, even after a restart. If I uninstall the python-uniconvertor package, I still get the above windows, but instead of the traceback I get:

You need to install the UniConvertor software.
For GNU/Linux: install the package python-uniconvertor.
For Windows: download it from https://sk1project.net/modules.php?name=Products&product=uniconvertor&op=download
and install into your Inkscape's Python location

There are various bug reports with UniConvertor - it seems unmaintained and unusable - but I'm not actually wanting to do any conversions on copy and paste, just to duplicate elements within an SVG file in Inkscape itself, and sometimes between files in Inkscape.

If I remove the extensions that use uniconvertor and sk1 in /usr/share/inkscape/extensions, the uniconvertor and script error output windows don't appear, but I still get the repeated Postscript and temporary display windows etc

How can I debug why copy is doing such strange operations?

2 Answers 2

1

Run inkscape from the commandline and suspend it when the unwelcome extra windows were displayed. Then run ps -o command and observed which extra processes are launched, for example:

/usr/bin/python gimp_xcf.py --tab="Options" --guides=false --grid=false --background=false --dpi=96 /tmp/ink_ext_XXXXXX.svgPAIY3Y
/bin/sh -c gimp -i --batch-interpreter plug-in-script-fu-eval -b - > /tmp/tmp6qiytj/junk_from_gimp.txt 2>&1
gimp -i --batch-interpreter plug-in-script-fu-eval -b -

These are other output extensions that are causing the problem. They will only run one at a time. To find all output extensions, do grep -l '<output>' *.inx in the extensions directory. Removing the .inx files for those output extensions (or moving them to a different location) will fix this error.

3
  • Of course, if these are extensions bundled with the system inkscape, then an upgrade will restore them, so you may want to script the removal so you can repeat it easily Jul 27, 2017 at 5:42
  • 1
    I am experiencing these issues, too :( Using fully updated Xubuntu 17.10. It seems it has not been fixed yet.
    – crysman
    Jan 29, 2018 at 14:46
  • Or, "locate .inx" , which seems to point to /usr/share/inkscape/extensions. cd there, sudo mkdir BAD; sudo mv *.inx BAD; then restart inkscape.
    – mcr
    Jun 10, 2019 at 14:03
0

It sounds like Inkscape internal state is messed up. You can try running Inkspace with Python debugger pdb but I don't think it will be easy. You could also try to investigate if there's something weird on the clipboard which could then trigger the problem (in which case, the problem would be the part of the process that writes to the clipboard and/or the code that reacts to corrupted clipboard content).

To debug clipboard content, I'd use xclip. The X Window system (including X.org) has three clipboards: primary (XA_PRIMARY), secondary (XA_SECONDARY) and clipboard (XA_CLIPBOARD). As far as I know, only clipboard can contain non-text data so it should be enough to investigate that only.

To find out all the variants clipboard currently has (e.g. if you know that the current clipboard content will trigger the issue), you can run

xclip -out -selection clipboard -target TARGETS

it will show keys for different variants of data related to the current contents of the clipboard. If you have inkscape content on the clipboard, the list of keys is pretty long:

TIMESTAMP
TARGETS
MULTIPLE
image/x-inkscape-svg
image/svg+xml
image/x-inkscape-svg-compressed
image/svg+xml-compressed
text/plain
application/pdf
image/x-postscript
image/x-e-postscript
image/x-emf
image/x-wmf
text/x-povray-script
text/x-javafx-script
text/x-povray-script
text/x-tex
text/xml+fxg
image/svg+xml
application/x-xsk1
text/xml+xaml
application/x-zip
application/tar
application/x-xcf
image/hpgl
text/html
image/dxf
image/dxf
image/x-plt
application/x-zip
image/sif
image/png

You can extract the binary content for any of those keys with -target argument filled with the value you want to extract. In some cases the key will contains semicolons and/or special characters and you have to encode those characters to pass it to the program correctly.

For example,

xclip -out -selection clipboard -target 'image/x-inkscape-svg'

will emit the XML encoded version of the content on the clipboard as uncompressed inkscape document.

I don't know the logic inkscape uses to select one of those formats when you press Ctrl+V to paste the contents. I would guess it prefers one of the formats with letters "inkscape" as the best option.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .