XDARWIN(1)

NAME
XDarwin - X window system server for Darwin operating system

SYNOPSIS
XDarwin [ options ] ...

DESCRIPTION
#ifdef DARWIN_WITH_QUARTZ XDarwin is the X window server for Mac OS X and the Darwin operating system provided by the X.Org Foundation. XDarwin can run in three different modes. On Mac OS X, XDarwin runs in parallel with Aqua in full screen or rootless modes. These modes are called Quartz modes, named after the Quartz 2D compositing engine used by Aqua. XDarwin can also be run from the Darwin text console in IOKit mode.

When running from the console, XDarwin acts as the window server and uses IOKit services to access the display framebuffer, mouse and keyboard and to provide a layer of hardware abstraction. In console mode, XDarwin will normally be started by the xdm(1) display manager or by a script that runs the program xinit(1).

When running with the Mac OS X Aqua GUI, XDarwin will normally be started by launching from the Finder, but it may also be started from the command line with the -quartz, -fullscreen, or -rootless options. Note that the defaults for various command line options are set by the XDarwin application preferences in the Quartz modes.

In full screen Quartz mode, when the X Window System is active, it takes over the entire screen. CoreGraphics is used to capture and draw to the screen. The XDarwin application allows easy switching between the Mac OS X and X window desktops. More information is available in the Help menu of the XDarwin application.

In rootless mode, the X window system and Aqua share your display. The root window of the X11 display is the size of the screen and contains all the other windows. The X11 root window is not displayed in rootless mode as Aqua handles the desktop background. #else XDarwin is the X window server for Mac OS X and the Darwin operating system provided by the X.Org Foundation. This version of XDarwin can only be started from the Darwin text console. The Mac OS X Aqua GUI, if present, must be shut down. XDarwin uses IOKit services to access the display framebuffer, mouse and keyboard and to provide a layer of hardware abstraction. XDarwin will normally be started by the xdm(1) display manager or by a script that runs the program xinit(1). #endif

OPTIONS

In addition to the normal server options described in the Xserver(1) manual page, XDarwin accepts the following command line switches:

-fakebuttons
    Emulates a 3 button mouse using modifier keys. By default, the Command modifier is used to emulate button 2 and Option is used for button 3. Thus, clicking the first mouse button while holding down Command will act like clicking button 2. Holding down Option will simulate button 3.

-nofakebuttons
    Do not emulate a 3 button mouse. This is the default.

-fakemouse2 modifiers
    Change the modifier keys used to emulate the second mouse button. By default, Command is used to emulate the second button. Any combination of the following modifier names may be used: Shift, Option, Control, Command, Fn. For example, -fakemouse2 "Option,Shift" will set holding Option, Shift and clicking on button one as equivalent to clicking the second mouse button.

-fakemouse3 modifiers
    Change the modifier keys used to emulate the third mouse button. By default, Option is used to emulate the third button. Any combination of the following modifier names may be used: Shift, Option, Control, Command, Fn. For example, -fakemouse3 "Control,Shift" will set holding Control, Shift and clicking on button one as equivalent to clicking the third mouse button.

-keymap file
    On startup XDarwin translates a Darwin keymapping into an X keymap. The default is to read this keymapping from USA.keymapping. With this option the keymapping will be read from file instead. If the file's path is not specified, it will be searched for in Library/Keyboards/ underneath the following directories (in order): ~, /, /Network, /System.

-nokeymap
    On startup XDarwin translates a Darwin keymapping into an X keymap. With this option XDarwin queries the kernel for the current keymapping instead of reading it from a file. This will often fail on newer kernels. #ifdef DARWIN_WITH_QUARTZ

-size width height
    Sets the screen resolution for the X server to use. Ignored in rootless mode.

-depth depth
    Specifies the color bit depth to use. Currently only 8, 15, and 24 color bits per pixel are supported. Ignored in rootless mode.

-refresh rate
    Gives the refresh rate to use in Hz. For LCD displays this should be 0. Ignored in rootless mode.

-fullscreen
    Run full screen in parallel with Mac OS X Aqua GUI.

-rootless
    Run rootless inside Mac OS X Aqua GUI.

-quartz
    Run in parallel with the Mac OS X Aqua GUI using the default mode. #else

-size width height
    Sets the screen resolution for the X server to use.

-depth depth
    Specifies the color bit depth to use. Currently only 8, 15, and 24 color bits per pixel are supported.

-refresh rate
    Gives the refresh rate to use in Hz. For LCD displays this should be 0. #endif

-showconfig
    Print out the server version and patchlevel.

-version
    Same as -showconfig.

SEE ALSO

X(__miscmansuffix__), Xorg(1), Xserver(1), xdm(1), xinit(1)

BUGS
XDarwin and this man page still have many limitations. Some of the more obvious ones are:
- The display mode cannot be changed once the X server has started.
- A screen saver is not supported.

AUTHORS
XFree86 was originally ported to Mac OS X Server by John Carmack. Dave Zarzycki used this as the basis of his port of XFree86 4.0 to Darwin 1.0. Torrey T. Lyons improved and integrated this code into the XFree86 Project's mainline for the 4.0.2 release.

The following members of the XonX Team contributed to the following releases (in alphabetical order):

XFree86 4.1.0:
    Rob Braun - Darwin x86 support
    Torrey T. Lyons - Project Lead
    Andreas Monitzer - Cocoa version of XDarwin front end
    Gregory Robert Parker - Original Quartz implementation
    Christoph Pfisterer - Dynamic shared X libraries
    Toshimitsu Tanaka - Japanese localization

XFree86 4.2.0:
    Rob Braun - Darwin x86 support
    Pablo Di Noto - Spanish localization
    Paul Edens - Dutch localization
    Kyunghwan Kim - Korean localization
    Mario Klebsch - Non-US keyboard support
    Torrey T. Lyons - Project Lead
    Andreas Monitzer - German localization
    Patrik Montgomery - Swedish localization
    Greg Parker - Rootless support
    Toshimitsu Tanaka - Japanese localization
    Olivier Verdier - French localization