How do I prevent X11 opening an xterm when it starts?
When I start the X11.app then it launches an xterm automatically. I've long since switched from the "ordinary" xterm to rxvt-unicode so the initial xterm just hangs around like a wallflower never being used. Whilst it's not particularly bad, it spoils the look of the place so I'd like to stop it launching. How do I do it?
Solution 1:
defaults write org.macosforge.xquartz.X11 app_to_run /usr/bin/true
in a Terminal. However, note that it normally shouldn't be necessary to ever start XQuartz.app (or X11.app; see the comments) manually. It will start automatically when you run an X11 client, and then it will not start its defaults startup application.
Solution 2:
Since I'm not at my OSX computer right now, I'll give you the fail-proof answer for this. 'true' does nothing and exits successfully, so I set that to run at startup.
Apple's old X11:defaults write org.x.X11 app_to_run $(which true)
and for XQuartz:defaults write org.macosforge.xquartz.X11 app_to_run $(which true)
and for MacPorts X11.app:defaults write org.macports.X11 app_to_run $(which true)
In case you are wondering, $(which true)
will make a line read, for example,defaults write org.x.X11 app_to_run /bin/true
.
I write it as $(which true)
because I am not at my mac and do not remember if it is in /bin/true or some other location.
I have additionally read that you can set these to ''
(that's two single quotes, so nothing at all), and it will do the same thing. I have not tried it, though.
(Source: https://xquartz.macosforge.org/trac/wiki/X11-UsersFAQ)
(edited because I forgot the all important 'app_to_run' in my examples)
Solution 3:
It appears that starting with xquartz 2.8 you would do: defaults write org.xquartz.X11 app_to_run APP