ADC Home > Reference Library > Technical Q&As > Porting > Darwin >

X11 FAQ


General Information

Q: What is the X Window System (X11) for Mac OS X?

A: X11 for Mac OS X is an implementation of the X Window System that makes it possible to run X11-based applications in Mac OS X. See www.apple.com/macosx/features/x11 for more information.


Q: Where can I download X11 for Mac OS X?

A: X11 is included on the standard distribution of Mac OS X 10.3 client. User must do a custom install and select X11 package. For Mac OS X Server 10.3, you should download it from www.apple.com/macosx/features/x11/download.


Q: Is the X11 beta for Jaguar still available?

A: Now that we have released X11 1.0 for Panther, we have ended our highly-successful beta process. We would like to express our appreciation for all of you who helped us by participating in the X11 for Mac OS X beta process. We made a wide range of improvements to the product based on your feedback, the bulk of which have been released as Open Source and will become part of XFree86 4.4 http://developer.apple.com/darwin/projects/X11. Please observe the terms of the beta license agreement and do not redistribute private copies of that beta.


Q: I've installed X11 for Mac OS X, what should I do next?

A: After installing X11, you can activate the X11 server by launching the X11 application in the Utilities folder in the Applications folder. To find other X11 applications and toolkits, please see resources at the bottom of this F.A.Q.


Q: Launching X11 from /Applications/X11.app doesn't work. How do I make it work?

A: The X11 at /Applications/X11.app mostly likely comes from your previous version of Mac OS X and X11 Beta system. In Mac OS X 10.3, X11 has been moved to /Applications/Utilities/X11.app. Remove the version in /Applications/X11.app.


Q: Where is the source code to X11 for Mac OS X?

A: Yes, the source code for the X11 server is available from the Darwin site. To build this source, you will need the X11LibApple.pkg, which gets installed when you install the binary package. Source code is only available for the X11 server, and not for the quartz-wm window manager or X11LibApple.pkg.


Q: To which version of XFree86 does X11 for Mac OS X correspond?

A: The current release version corresponds to XFree86 4.3.


Getting Help

Q: How do I file bug reports and request features?

A: Bug reports and feature requests related to X11 for Mac OS X can and should be filed at developer.apple.com/bugreporter. You can file bugs or feature requests either on the web, or by sending email. Include as much info as possible such as detailed steps and a good system configuration like an Apple System Profiler report.


Q: Is there a mailing list?

A: Yes, you can subscribe to the x11-users@lists.apple.com mailing list at lists.apple.com/x11-users. This list's main purpose is for discussions among the X Windows community. Apple monitors the list and can help answer questions when possible, but doesn't guarantee that every bug report or feedback sent to the mailing list will be processed. Use developer.apple.com/bugreporter to make sure your input is processed.


Q: Where is the mailing list archive?

A: For access to recent messages posted to the list, visit the web archives. To access the complete archive of postings, please visit the text archives. To search the archives, use our Search Engine.


Technical Questions

Q: Where are things installed?

A: In /Applications/Utilities/X11.app, /usr/X11R6, and /usr/bin/open-x11. If you have an existing /etc/X11 it is backed up during installation and a new one is installed. Symlinks are also added at /usr/include/X11 and /usr/lib/X11.


Q: Does X11.app process my ~/.xinitrc?

You may have a previous installation of X11 or XDarwin with a pre-existing ~/.xinitrc. The first time you launch X11.app after installation, it will ask whether to back up your existing ~/.xinitrc to ~/.xinitrc.old and use the standard /etc/X11/xinit/xinitrc. If you reply no, it will use your existing~/.xinitrc. If you reply yes, it will use /etc/X11/xinit/xinitrc (the X11 default).
If neither ~/.xinitrc or /etc/X11/xinit/xinitrc are present, X11 for Mac OS X will use hard coded values that launch an xterm and the quartz-wm window manager.


Q: Does X11 work with a previously installed version of XDarwin?

A: We recommend you back up and move aside your previous installation of XDarwin and then install X11 for Mac OS X. A few people have been able to get X11 for Mac OS X and XDarwin to co-exist.


Q: I don't see /Applications/Utilities/X11.app after installing.

A: Make sure you install the X11.pkg, not just the X11SDK.pkg.


Q: I do not see an xterm startup when launching X11.app.

A: A default xterm will launch if you did a clean install and are using the standard xinitrc environment. See xinitrc related question above.


Q: How do I copy and paste using X11 for Mac OS X?

A: X11 for Mac OS X allows cut and paste between X11 and native applications using PRIMARY and PASTEBOARD selections.
You can cut text from X11 applications by selecting the text, performing a cmd-c or copy operation. You can paste in native Mac OS X applications as usual using Cmd-V.
Because there is no standard for pasting in X11 applications (some use middle mouse button, some use control-v, etc.), cmd-v doesn't work for pasting in X11 applications by design. As a result, the "Paste" menu item will be grayed out when X11 applications are in focus. You should use the control-v or the middle mouse button instead for pasting (See X11 Preferences for emulating a middle mouse button).
The "Paste" menu option will be active when non-X windows are active within X11.app (e.g., when entering text in the "Customize Applications" menu item).
A common request has been to make cmd-v work across all X11 applications. This isn't possible without re-writing all X11 applications to standardize on a single approach, which is outside the domain of X11 for Mac OS X.


Q: Can I run another window manager instead of quartz-wm?

A: Yes, you can. Add a ~/.xinitrc which runs your favorite window manager instead of quartz-wm.


Q: How do I make copy and paste work with other window managers?

A: Running quartz-wm --only-proxy will activate the selection proxying features, but none of the window management code.


Q: Is there an option for no-click-to-focus for X11 applications?

A: Yes there is a hidden option. From an xterm or terminal execute : defaults write com.apple.x11 wm_ffm true


Q: How do I run X applications from a Terminal window?

A: You can use the /usr/bin/open-x11 script to launch X applications from Terminal.


Q: How do I forward remote X displays to my Mac?

A: The best (and safest) way is to simply ssh -X user@remotehost from the initial xterm. X forwarding and your DISPLAY environment variable on the remote host will automatically be set. Remote host must have X Forwarding enabled in ssh_config file. MacOSX does not enable this by default.


Q: How do I set environment for all processes launched by a specific user?

A: See Technical Q&A QA1067.


Q: Why do I need to add full paths to the "X11 Application Menu"?

A: When you use the Applications menu, the environment variables are the ones that X11.app has inherited from where it was started. So if you launch X11 from the Finder or Dock, very likely your environment will be limited. See previous question to set the PATH environment for all applications include X11.app.


Q: How can I use international keyboards with X11 for Mac OS X?

A: You can set the keyboard mapping using the "Input" tab in the preferences panel.


Q: Why can't I connect to the X Server after a network config change? It requires a restart of the X server.

A: This is expected behavior in the Xauthority authentication mechanism which X11 for Mac OS X uses by default. The problem is that Xauth uses two keys, the ip address and hostname of the system running the X server. But these keys don't get updated if you change the network configuration. You can disable authentication from the "Security" tab of X11.app's preferences. Be aware that doing so may create a security hole.


Q: Do I need a multi-button mouse to use X11 for Mac OS X?

A: No, you can emulate a three button mouse by using single button mouse in combination with the keyboard. Multi button mice are supported by default. See the X11.app Preferences (Input tab) to enable three button mouse emulation.


Q: Why can't I build my application against X11?

A: Make sure you install the X11 SDK from the Developer CD.


Q: Why doesn't X11 and xscreensaver build "out of the box"?

A: The workaround is to add -no-cpp-precomp to your CFLAGS when configuring or building.


Changes in X11 1.0:

  • GM "1.0" version, tested with and supported on Panther.
  • Bundled, optional install from the third Mac OS X 10.3 CD.
  • XFree86 4.3, latest enhancements from the Open Source community.
  • Full screen mode, show X11 root and app windows on their own screen.
  • X11 Dock Menu, activate X11 applications or windows directly from the Dock icon.
  • Double-click applications, launch X11 applications directly in the Finder.
  • App Menu Command-Keys, specify keystrokes for launching X11 applications.

Changes in Beta 3:

  • Added Pseudocolor (8-bit) visual plane support so applications requiring 8 bit support should find the visuals by default. You can also add "-depth 8" (see Xquartz man page) when starting the X Server if you want to run it only in 8 bit mode, which is unrecommended as OpenGL support is not available in 8 bit mode.
  • Added an option to quit X11 without presenting warning dialog : "defaults write com.apple.x11 no_quit_alert true". See man page for Xquartz for more details.
  • Added Command-Q keyboard shortcut to quit X11. Can be disabled from preferences.
  • Added Command-, to bring up preferences dialog. Can be disabled from preferences.
  • Added customization of fake buttons while emulating mouse. See man page for Xquartz for more details.
  • Fixed problems with dead keys on certain keyboard mappings.
  • OpenGL: Fixed problem with linking against libGL resulting in multiple definitions of glGetColorTableEXT.
  • Fixed problem where non-admin users could not start X11 because lock files were being left behind in /tmp.
  • Fixed problem where quartz-wm lost ConfigureNotify events.
  • Fixed problem so that windows can be resized by user to any size and not be limited by the Dock's height.
  • Fixed window focus problem when un-minimizing X11 windows from the Dock.
  • Fixed a crash that could occur when dragging remotely hosted windows.
  • Dialog windows can now be resized.
  • Fixed a problem with hardware accelerated scrolling in 16 bit mode.
  • Fixed a bug where emulated middle-button-raise fails when Alt/option is not Mode_Switch.
  • Fixed a bug where cursor would jump on multiple monitor systems if application tried to manage the cursor's position.
  • Fixed a bug that crashes the X Server if application tried to retrieve data back from the framebuffer using XGetImage.
  • Fixed a bug when quitting from the Dock that would result in the Quit Dialog being presented behind the current application.
  • Fixed a bug where windows are created offscreen if (0,0) maps to an offscreen location.
  • Fixed a bug with undecorated and modal windows having a titlebar because the window manager hints were not being interpreted correctly.

Changes in v0.2:

  • Added support for Gnome, KDE hints - so all windows will not have window decoration.
  • Focused windows were not being checked in the "Window" menu.
  • Application windows will now cascade instead of piling on top of each if they do not have an explicit placement policy.
  • Added /usr/include/X11 and /usr/lib/X11 symlinks.
  • Added: X11's menu in the Dock now shows a list of X11 windows.
  • Added support for Copy & Paste working with other window managers. Running "quartz-wm --only-proxy" will activate the selection proxying features, but none of the window management code.
  • Added an option for no-click-to-focus : "defaults write com.apple.x11 wm_ffm true"
  • Added support for move window events from CodeTek's VirtualDesktop.
  • Added support to respect the Mac OS X's International keyboard mapping. This is the default.
  • Added support for keymappings from /System/Library/Keyboards. This can be activated using : "defaults write com.apple.x11 keymap_file Francais.keymapping"
  • Added support for -iconic. E.g. xterm -iconic now puts the xterm into the Dock on launch.
  • Added new preference options to control xauth usage.
  • Fixed problem where menubar can obscure windows from other window managers besides quartz-wm.
  • Fixed problem where iconified windows get de-iconified when traversing with cmd-backtick.
  • Fixed problems with "Hide" and "Show" menus not working with X11 windows.
  • Fixed problem where minimized windows did not appear correctly in the Dock or the genie effect did not work.
  • Fixed problem where minimized windows continue to stay in the Dock after quitting X11.
  • Fixed problem where quartz-wm ignored PPosition window positions.
  • Fixed crash when launching xnest.
  • Fixed crash of window server when moving a large xeyes window.
  • Fixed problem where cmd-Q was passed to underlying X11 windows.
  • Fixed crash in fbBlt when clicking on any X window.
  • Fixed crash in fbPolySegment16 when in Thousands of color Mode.
  • Fixed problem where quartz-wm looses ConfigureNotifyevents.
  • Fixed problem where cmd-q while Dock cmd-TAB is highlighting X11.app kills it.
  • Fixed wrong install_names for X libs. You may have to recompile your existing applications.
  • Fixed locale mechanism so that XIM works.
  • OpenGL: Fixed garbage when resizing GLX applications such as glxgears.
  • OpenGL: Disabled vbl syncing for GL applications. Framerates should no longer be pegged to display frequency.
  • OpenGL: Fixed crash in hash_table_lookup when launching OpenGL applications.

Some known issues:

  • X11 clients do not appear as separate applications in the dock and when using Command-Tab to move through applications.
  • Cmd-V doesn't work in X11 applications by design - use the paste paradigm specific to the X11 application. e.g. use middle mouse button or control-v instead.
  • OpenGL : off screen rendering is currently not supported.
  • OpenGL : XInputExtension is not yet implemented. Maya and some GLUT applications require this extension.
  • OpenGL : Cannot launch OpenGL applications unless the user is root or the current logged in user in Mac OS X.

Some Apple and external resources (contributed by users on x11-users@list.apple.com):


[Nov 17, 2003]


Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.