Described below are several methods of starting up the Cygwin/X X Server with a startup utility that optionally starts initial clients (for example, a terminal, a window manager, or a desktop environment) and performs X server configuration (for example, loading a keyboard map).
The custom XWin startup utility startxwin  starts the X server in multiwindow mode.
startxwin is included in the xinit package (installed by following the instructions in the Section called Installing Cygwin/X in Chapter 2).
Run startxwin by: 
using the "XWin Server" shortcut under "Cygwin-X" on the Start Menu
Starting /usr/bin/startxwin in a Cygwin shell:
You can then start X clients from the right-click menu of the notification area
icon, or (after setting
DISPLAY appropriately) from the Cygwin
You may create a ~/.startxwinrc script to customize the client programs started, rather than using the default /etc/X11/xinit/startxwinrc script.
Full documentation for startxwin can be read with man startxwin .
Several of these are packaged for Cygwin.
MATE Desktop Environment: install the mate-session-manager package
Openbox window manager: install the openbox package
WindowMaker window manager: install the WindowMaker package
Xfce Desktop Environment: install the xfce4-session package
and use the provided Start Menu shortcut. 
Packages for several other desktop environments (e.g. GNOME, KDE, LXDE, ROX, Sugar) and window managers (e.g. Blackbox, dwm, Enlightenment, Fluxbox) are available in cygwinports.
XLaunch is a GUI wizard for starting the Cygwin/X X server and a local or remote X client. These sessions can be saved and shared as .xlaunch files.
XLaunch is included in the xlaunch package (installed by following the instructions in the Section called Installing Cygwin/X in Chapter 2).
Run xlaunch using the "XLaunch" shortcut under "Cygwin-X" on the Start Menu.
Documentation for xlaunch is available at http://x.cygwin.com/docs/xlaunch/ and as online help within the program.
Use the standard X Window System startx command and its associated ~/.xinitrc configuration file.
Run startx in a Cygwin shell:
Full documentation for startx can be read with man startx .
You may create a ~/.xinitrc from the template in /etc/X11/xinit/xinitrc and then customize ~/.xinitrc to start client programs and configure your X server.
$ cp /etc/X11/xinit/xinitrc ~/.xinitrc [edit ~/.xinitrc as desired]
Note: startx waits until ~/.xinitrc exits (which is often waiting for a window manager started by it to exit) and then kills X, so the last client started by should be started with exec and without &.
Alternatively, if you just want to start a single client program (perhaps a window manager), you don't need to use a ~/.xinitrc, and can start the client directly from startx, e.g. 
$ startx /usr/bin/fvwm2
Note: The client name supplied to startx must begin with / or ., otherwise it is treated as an option to the default xterm client.
Advanced users may wish to start the X server by invoking XWin directly, for example, to start XDMCP sessions (See the Section called Remote sessions via XDMCP).
If you want to have a Start Menu shortcut which runs startxwin with custom options, you should use a copy of the Start Menu shortcut installed by xinit, so that your changes are not overwritten when the xinit package is updated.
The MS-DOS batch file startxwin.bat and bash shell script startxwin.sh previously used to start the X server are no longer provided. This implementation made it difficult to reliably wait until the the X server had started before starting any clients. Use startxwin instead.
The executable startxwin.exe previously used to start the X server has been retired and replaced with a shell script startxwin.
startxwin is a specialized version of startx with a few differences appropriate to running in multiwindow mode, rather than windowed mode.
It's not recommended to start startxwin from a MS-DOS shell or by double-clicking it in Windows Explorer. To do so means that the X server is not started from a login shell, and programs started from the notification area icon menu will not inherit the environment of a login shell. This may lead to unexpected behaviour, for example, if you have customizations to your login shell start-up scripts which set environment variables.
Alternatively, these sessions can be started from the command line, e.g.
Note that startxwin and startx use the special option -- to mark the end of client options and the beginning of server options, So, for example, if you wish to also start the X server with the options -emulate3buttons and -noclipboard, as described in the Section called Command line parameters in Chapter 3, use the following command: