xorg-server icon indicating copy to clipboard operation
xorg-server copied to clipboard

Use LaunchServices to start main app from stub

Open gaelicWizard opened this issue 2 years ago • 0 comments

There are four possible execution relationships between Xquartz and X11 binaries in the current version: A Xquartz is parent of X11: e.g. everything is started by a client connecting to launchd socket, which runs startx -> xinit -> Xquartz -> X11 -> X11.sh -> X11.bin. B. X11 is parent of Xquartz: e.g. user double-clicks the app bundle and the launchd job is disabled: X11 -> X11.sh -> X11.bin -> startx -> xinit -> Xquartz. C. Unrelated: e.g., user double-clicks the app bundle and the launchd job is enabled: X11 -> X11.sh -> X11 connects to launchd socket, and then launchd runs startx -> xinit -> Xquartz. D. None: e.g., the X11 binary is run directly as a traditional X server might be: ./X11.bin :0.


This patch:

  • fixes A in favor of C by using LaunchServices to launch the app bundle;
  • moves the "notification" to xinit to after the launchd socket handoff, which is more accurate than before but not perfect.

gaelicWizard avatar Nov 03 '22 04:11 gaelicWizard