19

I have this issue where Inkscape does not appear when my MacBook Pro is plugged to an external screen. I tried several windows management tools (like Spectable, or Stay) but these did not work for the XQuartz app.

10 Answers 10

28

It seems like the issue is that when I plug the external screen, it messes with the coordinate system of my Mac's screen, effectively shifting the origin of my screen by the resolution of the external screen.

In other words, from the point of view of XQuartz the origin of my Mac's screen changes from 0,0 to 2560,1440 (which is the resolution of my external screen).

This means that if Inkscape is somewhere near origin (0,0) but still associated with my Mac's main screen then it doesn't appear on the external screen nor in my main screen. It is basically in "limbo" between the 2 screens.

The solution is to move the Inkscape window to a new coordinate that takes into account the size of the external screen, and this is where wmctrl comes in useful:

brew install wmctrl
wmctrl -r Inkscape -e 0,2560,1440,1200,700

Of course you need to replace 2560,1440 with your own external screen's resolution and 1200,700 to suit your main screen resolution.

In order to make it more convenient I created 2 alias, to fix the coordinates for my Mac screen and for the external screen, respectively:

alias fixInkscape='wmctrl -r Inkscape -e 0,2560,1440,1200,700'
alias fixInkscapeExt='wmctrl -r Inkscape -e 0,0,0,2560,1300'

Remember that each alias only works for the screen that Inkscape is associated with, you still need to drag-and-drop the window in order to switch screens. wmctrl won't do it automatically, but it certainly helps in "fishing" it from limbo.

| improve this answer | |
  • 2
    Amazing! This worked for me, except you now install wmctrl with the command brew install wmctrl – harryscholes Feb 15 '18 at 14:32
  • 1
    Best solution I've seen. XQuartz probably won't be fixed, layered over X11 that may never support retina. Vastly better than changing screen scaling/resolution from the Display pref (major hassle on a multi-monitor system because I have to first move the desktop to a different monitor, bring up prefs, scale that monitor to so the window exposed title bar, drag window back to the original desktop, then undo monitor scaling. wmctrl can be aliased to find the window by grepping for the string in the running app names to find the match, and then moves the window to a standard location instantly. – clearlight Jan 7 at 7:58
5

This worked for me when working with Inkscape:

  • Close XQuartz (and Inkscape)
  • Change the Mission Control Preferences (unselect Display have separate spaces)
  • Log out
  • Start Inkscape
  • Change the Windows Inkscape preferences (Edit/ Preferences) to "Don't save Windows Geometry"
  • Close Inkscape end XQuartz
  • Reset the Mission Control Preferences (if you like)
  • Log out and back in.

All the credits to:

https://groups.google.com/forum/#!topic/eggbotuser/48RbZ2Pey5A

I have two monitors and OSX Sierra and Inkscape 0.92.2.

Good luck.

| improve this answer | |
  • 2
    Welcome to Ask Different! We're trying to find the best answers and those answers will provide info as to why they're the best. Explain why you think the link you provided will answer the question. Answers should be self-contained so others can find them by using the search feature. Links can change and become outdated so we prefer the answers to not just be a link. See How to Answer on how to provide a quality answer. - From Review – fsb Aug 9 '17 at 21:59
  • Sorry, I was short of time, I did some edits. – FabianUx Aug 9 '17 at 23:13
4

There is a far simpler way.

Go to the System Preferences Display panel. Then untick 'Mirror Displays'. You should see the XQuartz window(s). Move them around a bit.

Then tab back to the System Preferences window - the Arrangement may be behind a monitor dialog, but you should be able to move the monitor dialogs out of the way and then un-enable 'Mirror Displays'.

Or if you tick the 'Show Mirroring options in the toolbar' option then you can reach the Display dialog from the toolbar.

If you really wanted to take your time for other occasions - you could set up a keyboard shortcut to toggle the 'Mirror Displays' on and off.

Much easier....

| improve this answer | |
  • In the third sentence I think you mean to say "tick 'Mirror Displays'". Thanks for the answer! – Evan Oct 26 '18 at 17:40
3

I have had this issue for a few years. In my case the problem arises when I use two external displays arranged one on the left of the other. If the menu bar is on the rightmost display (System Preferences/Displays/Arrangement -> menu bar is a white stripe on one of the displays, can be moved between them) then InkScape windows get lost (to see its location you can use Mission Control with keys Ctrl/Up-Arrow, it can be seen that a dialog or windows is far left on one of the displays).

Solution: move the menu bar to the leftmost display.

System Preferences/Displays/Arrangement

| improve this answer | |
2

As mentioned by others, this issue may be caused by a totally different coordinate system of X11. When using XQuartz, I tried the following:

Open Mac System Preferences>Displays, click on Arrangement Tap. Relocate the external screen to the right of the main screen.

Problem solved! Change the settings back when you are done with XQuartz.

| improve this answer | |
0

This worked for me:

Go to System preferences - Displays and untick the box next to "Show mirroring options in the menu bar when available".

| improve this answer | |
0

I met this problem before and it's very annoying. Finally, I realized that because the size and resolution of additional monitor are different from my Mac's. Those resulted in a 'non-existing' space between monitors. Sometimes windows would locate in that space and could not be moved. Luckily, I found we can remove the 'non-existing' space by changing settings on Mac. " System Preferences->Mission Control and uncheckDisplays have separate spaces." Then re-login MAC, the problem should be gone.

| improve this answer | |
0

Quitting XQuartz (instead of quitting Inkscape first and then XQuartz) directly solved my problem. If the problem appeared again I did the same.

| improve this answer | |
0

In the XQuartz Window menu make sure the window you want to view is selected (or you can hi Command+1 etc.), then select Zoom from the Window menu. This should bring the window into the correct view.

| improve this answer | |
  • I think "Zoom" tells the window to un-minimize if it is minimised, but it doesn't sort out problems with the window being off-screen ...which is a shame – Harry Wood Apr 17 '19 at 14:25
  • @HarryWood, in my experience zoom will restore a window (make it non-maximised) if the window is maximised. I tested what it does for a minimised window and it did nothing. In any case, if I hit zoom, the restored window appeared correctly for me even if it had been lost off-screen. – jsaven May 13 '19 at 4:06
0

This worked for me. Change the Mission Control Preferences (unselect Display have separate spaces)

Basically i dont need spaces anymore since I have 2 monitors.

| improve this answer | |

You must log in to answer this question.

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