Access control
Only use Xming option -ac or 'xhost +' on trusted networks, never on public ones i.e. be careful as they grant access to everyone. The X protocol network traffic is only encrypted if using X-Forwarding with SSH and this is therefore the recommended method for access control, all others method are potentially unsafe (e.g. using xhost or xauth and especially working via the defunct telnet protocol).X-Forwarding
If you use X-Forwarding: you don't need to directly use xhost/xauth or set a DISPLAY variable. Use PuTTY with SSH and X-Forwarding and enable it in the sshd server (sshd_config file) on the remote machineX11Forwarding yes X11DisplayOffset 10 X11UseLocalhost yes
My typical PuTTY settings

Use PuTTY to get a remote terminal on your Windows desktop and from that run the X clients you need, or run X clients via plink using a stored session or a user@hostname command. On that remote terminal, DISPLAY is automatically set to point at display 10 or above when X-forwarding$ echo $DISPLAY localhost:10.0
Both XLaunch and Xmingrc make starting an X Client via Xming's plink easy.If a program displays from a PuTTY console but not from plink then the default user PATH may need configuring/changing for the remote sshd server so that ssh can find it (e.g. either build '--with-default-path=etc:etc' or use environment files in '~/.ssh').
If you are connecting to an Ubuntu Server Edition: you need package xauth installed for X-Forwarding to work. Also use pam_xauth to automatically forward xauth cookies between users when using su.
Remote X clients will not display, via PuTTY or plink, without a correct localhost entry in /etc/hosts on the remote machine.
xhost program
To use the X server access control program, xhost (host-based), from Command Processor e.g. on Windows machine 192.168.0.2, with remote machine 192.168.0.3, using display-number 0...>set DISPLAY=192.168.0.2:0 >Xming -multiwindow -clipboard >xeyes or whatever locally, will display on the Windows desktop >xhost +192.168.0.3 and then on the remote machine $ export DISPLAY=192.168.0.2:0 $ xeyes or whatever remotely, will display on the Windows desktop
Running xhost without any arguments shows the current hosts allowed to access the server. xhost can be used to give (or deny) systems access to the server interactively, overriding the contents of Xn.hosts files.Xn.hosts files
An X server uses a host-based access control list for deciding whether or not to accept connections from clients on a particular machine. This list initially consists of the host on which the X server is running as well as any remote machines listed in the file Xn.hosts, where n is the display-number of the X server. Each line of the file should contain a [family:]hostname with no leading or trailing spaces and the file should reside in the Xming install directory. For Xming there are only three families: inet (for IPv4 and the default when no [family:] is mentioned), inet6 (for IPv6) or si (for Server Interpreted); note that there is no local family listening.The Xming installer provides an X0.hosts file containing...
localhost inet6:localhost
xauth program
The Xming magic cookie program, xauth (user-based), uses an Xauthority file (not the traditional .Xauthority file) in the %HOME% directory. To use xauth from Command Processor e.g. on Windows machine 192.168.0.2 with user colin...>set DISPLAY=192.168.0.2:0 >set HOME=%USERPROFILE% >Xming -multiwindow -clipboard >xeyes or whatever locally, will display on the Windows desktop >xauth generate %DISPLAY% . xauth: file C:\Documents and Settings\colin/Xauthority does not exist (example output) >xauth list 192.168.0.2:0 MIT-MAGIC-COOKIE-1 7aa7cd57c47f90cec40e6c534537a075 (example output) restart the Xming X server with this cookie authorization >Xming -auth "%HOME%/Xauthority" -multiwindow -clipboard then copy the newly created Xauthority file to /tmp/ on the remote machine and then on the remote machine $ xauth merge /tmp/Xauthority $ export DISPLAY=192.168.0.2:0 $ xeyes or whatever remotely, will display on the Windows desktop
Environment Variables
The following Windows environment variables are created or used by the server| Variable | Description |
| DISNO | The display-number (an Xming specific convenience environment variable). |
| DISPLAY | The [Host IP address]:display-number[.screen]. The -display option can be used by most clients to override this variable. |
| HOME | Defaults to %USERPROFILE% and can be changed, for example, to /home/'username' when using Xming with cygwin bash. |
| LANG | Automatically set from the Windows locale, if not already set by the User, and then used to set the program locale. |
| XERRORDB | Defaults to the 'path-to-Xming.exe'\XErrorDB file. |
| XFT | The hostname of the font server, set only when using an external font server. |
| XHOSTPREFIX | Defaults to the 'path-to-Xming.exe'\X and used as the file prefix for Xn.hosts files (an Xming specific convenience environment variable). |
| XKEYSYMDB | Defaults to the 'path-to-Xming.exe'\XKeysymDB file (the file is no longer required, but a custom one can still be used). |
| XLOCALEDIR | Defaults to the 'path-to-Xming.exe'\locale directory. |
Where 'path-to-Xming.exe' is the location of the Xming executable, typically C:\Program Files\Xming.
If you run keychain for key management with SSH: you additionally get variables SSH_AUTH_SOCK and SSH_AGENT_PID. If the latter is detected by XLaunch (Run Remote/Use SSH), it runs without a Command Processor console as an interactive password entry should not be needed.
Files and Locations
The following files and locations are used by Xming, often in a way different from X on Linux/Unix. They are in the Xming install directory unless stated otherwise and, if customisable, are not deleted by the uninstaller.| File or Directory | Description |
| app-defaults %LANG%\app-defaults |
The directory for X client resource files. These can be language specific i.e. directory %LANG%\app-defaults is searched before app-defaults. |
| bitmaps | The directory for standard bitmap files. |
| font-dirs | A file containing a comma-separated list of directories to add to the default font path. |
| locale | The directory for locale files. This is the latest list of locales. |
| protocol.txt | The registry of protocol names used by the X Server. |
| twmrc | Tom's [sic] window manager control file, renamed from .twmrc. |
| Xauthority | The .Xauthority file renamed and in the %HOME% directory. |
| Xcms.txt | The sample colour name database file. |
| Xdefaults Xdefaults-<hostname> |
The .Xdefaults file renamed and in the %HOME% directory. These files resources are loaded before app-defaults. Xdefaults can be relocated using the XENVIRONMENT variable e.g. 'set XENVIRONMENT=C:\test\Xdefaults' or just 'set XENVIRONMENT=Xdefaults' (the latter is useful if running Xming portable, when Xdefaults can be moved onto the portable device). |
| XErrorDB | The X error message database file. |
| xkb | The directory for xkb database files. This is the latest list of keyboard models, layouts and variants. |
| XLaunch.xsd | The XLaunch XML Schema Definition file. |
| Xmingrc | The Xming server resource configuration file(s). |
font-dirs is supplied containing...
# font-dirs # comma-separated list of directories to add to the default font path # defaults are misc, TTF, 75dpi, 100dpi # also allows entries on individual lines C:\Program Files\Xming\fonts\dejavu,C:\Program Files\Xming\fonts\cyrillic C:\Windows\FontsNote: font-dirs contents are matched to the actual paths found during installation (using font-dirs.exe); if an existing file does not exist.
putty.conf (the configuration file for Xming-portablePuTTY) is supplied containing...
;Xming putty.conf sshk&sess=%APPDATA%\Portable PuTTYXdefaults is supplied containing...
#ifdef COLOR *customization: -color #endifxhost.bat is supplied containing...
@echo off xhost pauseXmingrc is supplied as a system-wide default containing...
# Xming Server Default Resource File
Menu apps {
"&View the log" viewlog
"&Reload Xmingrc" reload
&Usage execd "Xming :999 -help"
"&Command Processor" execd cmd.exe
"Access Control &Status" execd "xhost.bat"
"Host &Finder" finder
separator
}
RootMenu apps
SilentExit
Debug "Using the default Xmingrc configuration file."
X0.hosts is supplied containing...
localhost inet6:localhostThe following files, when they exist, are located in directories other than the Xming install directory...
| File | Directory |
| fonts.dir fonts.scale |
Windows System fonts directory (i.e. %WINDIR%\Fonts). |
| Xauthority | %HOME% |
| Xdefaults Xdefaults-<hostname> |
%HOME% |
| xkb temporary files e.g. xkb_a00560 server-0.xkm |
%TMP% or %TEMP% or %USERPROFILE% or 'The Windows Directory'. First path found is used. |
| Xming.n.log | %TMP% or %TEMP% or %USERPROFILE% or 'The Windows Directory'. First path found is used. Note: you may also just get an Xming.log file, in the Xming install directory, from a total failure early in server startup. |
| Xmingrc | %HOME% (per-user) as well as one in the Xming install directory (system-wide). |
Keyboards
Xming keyboard data originates from theThe current list of keyboard models, layouts and variants is here.
If the keyboard doesn't work for your locale please email the part of the Xming log that looks something like
(--) winConfigKeyboard - Layout: "00000424" (00000424) (EE) Keyboardlayout "Slovenian" (00000424) is unknownso that the entry can be added to the known keyboard layouts.
Also try using setxkbmap, when Xming is running, if you have the wrong language variant
>setxkbmap ch -variant frthis is equivalent to starting Xming
>Xming -multiwindow -clipboard -xkblayout ch -xkbvariant frI use -xkbvariant extd to get United Kingdom extended keys to work with a -xkblayout gb Microsoft keyboard.
Only on release 6.9.0.31: use the Finnish keyboard instead of the faulty Swedish one
>Xming -multiwindow -clipboard -xkbmodel pc104 -xkblayout fi
NumLock
Some Unix flavours cannot have NumLock enabled when running Xming. Disable NumLock with remote AIX, SUN Solaris and HPUX, if keys or mouse buttons are not working, using numlockoff. The numlockoff zip file contains the code and executable to check the state of the NumLock key and synthesize a keydown/keyup sequence of the NumLock key if it's down.AIX
AIX logs in using /usr/dt/config/Xsetup (used only if using dtlogin as the XDMCP client) and /usr/dt/bin/Xsession (used when logging in to CDE). These contain a call to xmodmap (for IBM keyboards) which makes the Xming keyboard go wrong. Commenting out these two calls allows you to use Xming on AIX.Note that the XKB extension is now always enabled in the X.Org xserver and that the AIX X server has the XKB extension, but it is disabled by default in favour of xmodmap methods.
Mouse
If you use the Logitech Mouse Drivers: uncheck the option 'Disable Acceleration In Games' or your mouse will be slow in Xming.Logitech web-cam drivers can also cause 'Can't open display' problems.
Zone Alarm can cause Xming to freeze right after startup.
Multiplemonitors
Screens cannot be positioned on anything other than the first monitor with FullScreen Shadow DirectDraw (-engine 2), but are OK in Shadow GDI (-engine 1)...Xming -screen 0 @2 -fullscreen -multiplemonitors renders incorrectly on the first monitor Xming -screen 0 @2 -multiplemonitors renders correctly on the second monitor Xming -screen 0 @2 -fullscreen -multiplemonitors -engine 1 renders correctly on the second monitorFollowing on from the original
Network
Failure reports
- winClipboardIOErrorHandler!
- winClipboardProc - setjmp returned: X exiting
- winClipboardProc - setjmp returned for IO Error Handler.
- winMultiWindowXMsgProcIOErrorHandler!
- winInitMultiWindowXMsgProc - setjmp returned: X. Exiting.
- winInitMultiWindowXMsgProc - Caught IO Error. Exiting.
- winMultiWindowWMIOErrorHandler!
- winInitMultiWindowWM - setjmp returned: X. Exiting.
- winInitMultiWindowWM - Caught IO Error. Exiting.
IPv6
IPv6 support is now built into Xming. Users of IPv4 should not be affected and can ignore log messages like..._XSERVTransSocketOpenCOTSServer: Unable to open socket for inet6 _XSERVTransOpen: transport open failed for inet6/etc _XSERVTransMakeAllCOTSServerListeners: failed to open listener for inet6 XDMCP warning: INET6 UDP socket creation failedMost tools, except the XDMCP interface matcher in DefineSelf(), should work with both protocols.
You can turn off IPv6 in Xming by starting it with option
-nolisten inet6 this is the default when using XLaunch
Performance
SSH compression may be of some help on slower networks, but will slow things down on fast networks.The encoding of network traffic used by the X protocol is optimised for LANs, where the time spent encoding and decoding the data is more important than minimizing the amount of data transmitted. While this is fine for an Ethernet, it becomes a problem for very slow networks like serial lines. X.Org have abandoned LBX, their own built-in compression system, in favour of using SSH compression on slow networks.
Operation via a personal firewall, VPN or any software that modifies the TCP/IP stack, will increase latency and make the X server appear unresponsive. Especially Webwasher, Symantec Antivirus and Zone Alarm. Disabling these products isn't sufficient, uninstall them to restore network performance with the X protocol. Some badly designed virus scanners aggressively interfere with all network traffic and can cause a serious processing overhead for X.
OpenGL with WGL (Experimental AIGLX)
If Xming's native Windows WGL interface for accelerated OpenGL (-wgl option from 7.5.0.8) doesn't work with a program then you can switch on various diagnostic output. Start Xming with special environment variables set| Variable | Description |
| GLWIN_ENABLE_DEBUG=1 | Enable debugging output. |
| GLWIN_ENABLE_TRACE=1 | Enable trace output. |
| GLWIN_DUMP_PFD=1 | Output information on the requested visual and pixelformat. |
| GLWIN_DUMP_HWND=1 | Output the window handles used in some operations. |
| GLWIN_DUMP_DC=1 | Output the device context handle used in some operations. |
| GLWIN_ENABLE_GLCALL_TRACE=1 | Output GL function call trace. |
| GLWIN_ENABLE_WGLCALL_TRACE=1 | Output WGL function call trace. |
| GLWIN_DEBUG_ALL=1 | Enable all of the above. |
For example
>set GLWIN_ENABLE_DEBUG=1 >set GLWIN_DUMP_PFD=1 >Xming -wgl -multiwindow -clipboardWhen testing with remote Linux clients it seems that Mesa's libGL prefers to use client-side swrast and transfer the image to the server using Xlib. To force the use of GLX so rendering is indirect (takes place on the server), and thus can be accelerated, set the environment variable...
export LIBGL_ALWAYS_INDIRECT=1on the remote machine. Accelerated indirect GL will not occur with local clients.
Note: This option is still under development and user feedback is required. Xming releases (7.5 series), used without option -wgl, render with the most upstream Mesa library (OpenGL 2.1, GLX 1.4, Mesa 7.9-devel) and usually display even the most difficult clients.
Windows versions supported
Xming code, installers and executables are tested, by me, only on 32-bit Windows XP, 2003 Server and 64-bit Windows 7. Xming is compiled 32-bit but works underWindows versions prior to XP are not supported.
Windows performance
If you insist on running the whole of KDE or Gnome in -multiwindow or -fullscreen mode: don't expect blistering performance. UseSome people find running Xming with +bs -wm (the backing store) improves the performance of image updates, e.g. with Firefox, but I haven't tested this.
Extensions, pseudocolor and bell
Xming doesn't support the MIT-SHM, ScreenSaver, XFree86-Bigfont or XVideo extensions. MIT-SHM only applies to local X clients anyway so adding it would not improve network performance.Xming also does not yet have a working -pseudocolor mode, for 8-bit colour use -fullscreen -depth 8 in one window mode which enables DirectDraw (-engine 2).
The bell (feep) is not controllable by -f or 'xset b' options. Xming just uses the Windows MessageBeep() function for the bell.
XDMCP
First read the notes in XLaunch for XDMCP remote settings.- If you have a multiple interfaced (i.e. multihomed) Windows machine: you may need to use the -from option to set the correct source address (in IP address dotted format). This should not be necessary in recent versions.
- For security, Xming XDMCP mode is constrained to work only on local networks and it is not recommended to attempt to use it through routers or firewalls. You can use Xnest running XDMCP through X-Forwarding to get a secure connection to the Xming server. e.g. from a X-Forwarding PuTTY terminal...
$ Xnest :1 -query localhost -geometry 1024x768+50+25 -fp tcp/localhost:7100
but don't expect Xnest to be as fast as a direct XDMCP session. - Some distributions default X Display Manager config files start X with the -nolisten tcp option, or similar, which prevents remote connections.
- If you connect via XDMCP to a system that uses gdm and have a problem with the clipboard:
you should add (or modify) this section in the gdm.conf file (or /etc/gdm/custom.conf)
[daemon] KillInitClients=false
and then restart gdm with gdm-restart. Also some X Display Managers do not work well anyway with the Xming clipboard. So just try using standard xdm as an alternative. - If you get 100% CPU use with Xming.exe: the chances are that the XDMCP protocol cannot establish a socket connection with the remote machine.
Table of Contents
- Access control
- Environment Variables
- Files and Locations
- Keyboards
- Mouse
- Multiplemonitors
- Network
- OpenGL with WGL (Experimental AIGLX)
- Windows versions supported
- Windows performance
- Extensions, pseudocolor and bell
- XDMCP

The
Copyright © 2005-2010 Colin Harrison Some rights reserved


