Recovering Missing Inkscape Windows

I am evaluating Inkscape (http://inkscape.org) as a replacement for Adobe Illustrator. Inkscape is an open-source, X-Windows-based illustration tool. The interface is nowhere near as nice as that in Illlustrator, but even with steep educational discounts, the Adobe suite costs me roughly $240 per year if I want to have it on my office iMac and my six-year-old Macbook Pro. So far, I have been able to import most of the illustrations that I made with Illustrator into Inkscape, with the exception of some files in which I used some nonstandard fonts. So, I plan to see how it goes without an Illustrator license.

I have two monitors connected to my office iMac, and when I load a file into Inkscape, the main window moves out of view (offscreen). Inkscape is running and the window exists, it just off the screen. You can see it, and even select it, using Mission Control (ctrl-up-arrow), you just can’t do anything with the file. Spending your time finding a recently launched program’s windows is not a good start for any software, but we are talking about an interesting tool, so a work around may be worth a little effort in work-arounds.

What appears to happen when you have two screens, is the main-screen origin is shifted and the standard Inkscape window is positioned outside of the visible coordinate range of the main screen.  Fortunately others have solved this problem using command line tools that manipulate the xwindows. Here is the fix. First, if necessary, install the wmctrl package using brew.

brew install wmctrl

Then you can use the Terminal and command-line wmctrl to reposition the Inkscape window (the -e arguments are x0, y0, width, height).

wmctrl -r Inkscape -e 0,1920,100,1200,700)

You might have to adjust the origin to shift the window past your external screen (mine has a resolution of 1920×1080. Explore values that are related to the resolution of the external monitor. Once you have the numbers the way you want them, create an alias to make it easier to remember how to fix the issue (add it to you bash profile file or .cshrc file). In the t-shell the command is

alias fixinkscape wmctrl -r Inkscape -e 0,1920,100,1200,700)

In bash, I think it would be something like

alias fixinkscape='wmctrl -r Inkscape -e 0,1920,100,1200,700)'

I execute this command each time I import a file into Inkscape. This is annoying, but not that much trouble since I almost always have a terminal window open for other reasons.

One important addition to the process. I need to have the main Inkscape window visible when I open a file and use this fix. If all I see is the open dialog, I close that, the new-document window appears and then I open the file I want…