Table of Contents

Installing and configuring an X server

This detailed and easy-to-understand page will help you set up things correctly on your own, and help you understand what you are doing

Or you can ask somebody to quickly configure everything for you, and keep on believing that things work by magic…

What is an X server?

What do we mean exactly with Local and Remote computers?

This page will very often mention local computers, and remote computers:

Using an X server on Linux

You don't need to do anything special!

Linux computers come pre-configured with a running X server that will display the graphics generated locally and on remote Linux servers

Using an X server on Windows

There are several available X servers, and applications that will allow X forwarding from a remote server to your local X server

Using X forwarding in a Windows Powershell

You have to type $env:DISPLAY = “localhost:0” before connecting using ssh -Y remote server (-X will not work), in order to have the DISPLAY variable correctly defined on the remote server

PS C:\> ssh -X obelix
[...]
 >echo $DISPLAY
DISPLAY: Undefined variable.
 >logout
Connection to obelix closed.

PS C:\> $env:DISPLAY

PS C:\> $env:DISPLAY = "localhost:0"
PS C:\> $env:DISPLAY
localhost:0

PS C:\> ssh -X obelix
[...]
Warning: untrusted X11 forwarding setup failed: xauth key data not generated
[...]
 >echo $DISPLAY
DISPLAY: Undefined variable.

PS C:\> ssh -Y obelix
[...]
Warning: No xauth data; using fake authentication data for X11 forwarding.
[...]
 >echo $DISPLAY
localhost:42.0
 >xterm&
[1] 30038

Installing VcXsrv

VcXsrv is pre-installed on the LSCE Windows computers!
  • You may want to check if a more recent version is available
  • You surely want to follow the configuration steps, in order to get the best possible settings to work with PuTTY!

Type: free

Download the installer from VcXrsv and install VcXsrv.

VcXsrv Configuration

You need to configure VcXsrv to work in multiple windows mode. The following steps will show you how to create a shortcut on your desktop to start VcXsrv in this appropriate mode

Installing x410

x410 is a low cost commercial X server that can be directly installed from the Microsoft store.

This is an X server, and you will get the same functionalities as what is already provided for free by VcXsrv, but:

  • Once installed, x410 will be automatically updated by the Microsoft Store application
  • If you move to another computer, you can install x410 again by just Connecting the Microsoft Store to your MS account on the new computer. No need to buy x410 again !
  • There seems to be more (useful) updates than for VcXsrv
  • The interface is more modern, with more options, and there is a lot of useful information on the web site
  • The x410 name is easier to remember! :-D

Type: commercial

Buy and install x410 from the Microsoft store

x410 configuration

Using an X server on a Mac

Installing XQuartz

Type: free

Download the installer from XQuartz and install it

XQuartz configuration

Nothing to configure!

The XQuartz X server will be automatically started, if a graphical application needs it!

Check the launchd documentation if you need more details

$ launchctl list | grep quartz
         -	0	org.xquartz.startx

Configuration on the remote Linux server

If you are connecting with ssh or PuTTY

Nothing special to do, if you are using "ssh -X" or "ssh -Y" or a correctly configured PuTTY to connect to a remote Linux server

If you are using Windows Subsystem for Linux

In that special case, you will need the X server to display graphics from the local virtual machine and from remote computers

You have to make sure that the DISPLAY variable is correctly defined in the terminals used in WSL

Testing

Testing plan

The idea is to:

Test application:

The test may fail, due to the usually expected errors

On a Linux computer or a Mac

Open a terminal (terminal on a Mac) and use some basic commands to check things

[Local] $ hostname
name_of_your_local_machine

[Local] $ echo $DISPLAY
:0

[Local] $ ssh -X some_login@some_remote_server
[some connection information skipped here]

[Remote] $ hostname
name_of_the_remote_server

[Remote] $ echo $DISPLAY
localhost:20.0

[Remote] $ xterm &

On a Windows computer with only an X server installed

We just open a Powershell window (StartWindows PowershellWindows Powershell) and type some basic commands, including the creation of a DISPLAY variable

PS C:\> $env:computername
name_of_your_local_machine

PS C:\> $env:DISPLAY
PS C:\> $env:DISPLAY="localhost:0"
PS C:\> $env:DISPLAY
localhost:0

PS C:\> ssh -Y some_login@some_remote_server
Warning: No xauth data; using fake authentication data for X11 forwarding.
[some connection information skipped here]

[Remote] $ hostname
name_of_the_remote_server

[Remote] $ echo $DISPLAY
localhost:19.0

[Remote] $ xterm &

On a Windows computer with PuTTY and an X server installed

We assume here that PuTTY is already installed and configured and correctly configured (with Enable X11 forwarding)

We just have to open a pre-configured PuTTY Session on a remote server

[Remote] $ hostname
name_of_the_remote_server

[Remote] $ echo $DISPLAY
localhost:19.0

[Remote] $ xterm &

On a Windows computer with WSL+Linux and an X server installed

We assume that WSL+Ubuntu is installed and that the DISPLAY variable is configured correctly

Open a WSL terminal (you should know how, if you have installed WSL) and type some basic commands

[Local WSL] $ hostname
name_of_your_local_machine

[Local WSL] $ echo $DISPLAY
localhost:0.0

[Local WSL] $ xterm &

[Local WSL] $ ssh -X some_login@some_remote_server
[some connection information skipped here]

[Remote] $ echo $DISPLAY
localhost:22.0

[Remote] $ xterm &

Troubleshooting

Nothing works!

That's unfortunate, but:

Error when there is no X server running

If the DISPLAY variable is defined, but there is no X server, you will get a Can't open display: localhost:[SOME VALUE] error

$ xterm &
xterm: Xt error: Can't open display: localhost:23.0

Time to read this page again

Error when there is no space left in your home directory

If there is no space left in your home directory (usually the home directory of the remote server), or if you have exceeded your home disk quota, you will get an error similar to Error when there is no X server running

$ xterm &
xterm: Xt error: Can't open display: localhost:23.0

Solution: clean the content of your home!

Error when DISPLAY is not defined correctly

If the DISPLAY variable is not defined (correctly), you will get a Can't open display: [NO VALUE DISPLAYED HERE] error

$ xterm &
$ xterm: Xt error: Can't open display:
xterm: DISPLAY is not set
$ echo $DISPLAY

$ setenv DISPLAY CRAP_DISPLAY
$ xterm
xterm: Xt error: Can't open display: CRAP_DISPLAY

Can't start a graphical application by clicking on its desktop shortcut

Check the shortcut and run the command directly in a terminal to check the error message

There is a good chance that you have forgotten to start the X server!

It's hard to know what the best OpenGL settings for your X server are: it depends on your local computer, the remote computer, the network speed, the application generating the graphics, the libraries' versions…

Blurry display





[ PMIP3 Wiki Home ] - [ Help! ] - [ Wiki syntax ]