Xming

Trouble with Xming?

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).

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\Fonts
Note: 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 PuTTY
Xdefaults is supplied containing...
#ifdef COLOR
*customization: -color
#endif
xhost.bat is supplied containing...
@echo off
xhost
pause
Xmingrc 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:localhost
The 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 the [WWW]X Keyboard Configuration Database Project.
The 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 unknown
so 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 fr
this is equivalent to starting Xming
>Xming -multiwindow -clipboard -xkblayout ch -xkbvariant fr
I 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 monitor
Following on from the original [WWW]patch for multiple monitors it appears that FullScreen DirectDraw can only draw on the 'Windows Primary Display' irrespective of the use of SM_CXVIRTUALSCREEN etc in the code.

Network

Failure reports

any of these indicate network failure with the X protocol. Maybe due to the presence of firewalls, or high latency.

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 failed
Most 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 -clipboard
When 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=1
on 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 under [WWW]WoW64 on 64-bit Windows.

Windows 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. Use [WWW]coLinux or [WWW]XDMCP mode if you want a full Linux/Unix graphical environment on the Windows desktop.

Some 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.

Table of Contents

  1. Access control
    1. X-Forwarding
    2. xhost program
    3. Xn.hosts files
    4. xauth program
  2. Environment Variables
  3. Files and Locations
  4. Keyboards
    1. NumLock
    2. AIX
  5. Mouse
  6. Multiplemonitors
  7. Network
    1. Failure reports
    2. IPv6
    3. Performance
  8. OpenGL with WGL (Experimental AIGLX)
  9. Windows versions supported
  10. Windows performance
  11. Extensions, pseudocolor and bell
  12. XDMCP
Creative Commons License
The [WWW]Xming website, documentation and images are licensed under a
[WWW]Creative Commons Attribution-NonCommercial-ShareAlike 2.0 UK: England & Wales License.
Copyright © 2005-2010 Colin Harrison Some rights reserved