User Tools

Site Tools


other:x_conf

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
other:x_conf [2022/08/09 12:53]
jypeter [Using an X server on a Mac] Added content
other:x_conf [2022/08/12 12:40]
jypeter [Installing XQuartz] Added some tech ref
Line 1: Line 1:
 ====== Installing and configuring an X server ====== ====== Installing and configuring an X server ======
 +
 +
 +<WRAP center round tip 60%>
 +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...
 +</​WRAP>​
 +
  
 ===== What is an X server? ===== ===== What is an X server? =====
Line 7: Line 15:
   * An //X server// **is** basically a program running on your **local** computer that understands the [[https://​en.wikipedia.org/​wiki/​X_Window_System_core_protocol|X Windows System protocol]] used by **Linux computers** (**local** computer, or **remote** Linux servers) to generate graphics, and that can //render// (i.e. display) the graphics generated **remotely** on your **local** computer   * An //X server// **is** basically a program running on your **local** computer that understands the [[https://​en.wikipedia.org/​wiki/​X_Window_System_core_protocol|X Windows System protocol]] used by **Linux computers** (**local** computer, or **remote** Linux servers) to generate graphics, and that can //render// (i.e. display) the graphics generated **remotely** on your **local** computer
  
 +  * This page will mention a //''​DISPLAY''​ variable// several times: the X server needs this in order to know **where to display the graphics**!
 ===== What do we mean exactly with Local and Remote computers? ===== ===== What do we mean exactly with Local and Remote computers? =====
  
Line 16: Line 24:
  
   * The **remote computer or server** is another computer that you also want to interact with (using the screen+mouse+keyboard of your local computer)   * The **remote computer or server** is another computer that you also want to interact with (using the screen+mouse+keyboard of your local computer)
 +    * [[other:​ssh#​connecting_to_servers_commonly_used_by_lsce_users|Some servers used by LSCE users]]
     * We only consider on this page the case of a **remote //Linux// machine** that **requires a local running //X server//**     * We only consider on this page the case of a **remote //Linux// machine** that **requires a local running //X server//**
  
Line 108: Line 117:
 </​WRAP>​ </​WRAP>​
  
 +The ''​XQuartz''​ //X server// will be automatically started, if a graphical application needs it!
 +
 +Check the [[https://​support.apple.com/​guide/​terminal/​script-management-with-launchd-apdc6c1077b-5d5d-4d35-9c19-60f2397b2369/​mac|launchd documentation]] if you need more details
 +<​code>​$ launchctl list | grep quartz
 +         ​- 0 org.xquartz.startx</​code>​
 ===== Configuration on the remote Linux server ===== ===== Configuration on the remote Linux server =====
  
 ==== If you are connecting with ssh or PuTTY ==== ==== If you are connecting with ssh or PuTTY ====
  
-Nothing special to do, if you are using [[other:​ssh#​using_an_x_server_to_display_graphics|"​ssh -X" or "ssh -Y"]] or ''​PuTTY'' ​to connect to a remote Linux server+Nothing special to do, if you are using [[other:​ssh#​using_an_x_server_to_display_graphics|"​ssh -X" or "ssh -Y"]] or a [[other:​putty_conf#​changing_some_useful_settings|correctly configured ​PuTTY]] to connect to a remote Linux server
  
-==== If you are using WSL ====+==== If you are using Windows Subsystem for Linux ====
  
-You need to know what you consider as the //Local machine//and what is the //Remote server//+In that special case, you will need the //X server// to display graphics [[other:​x_conf#​what_do_we_mean_exactly_with_local_and_remote_computers|from the local virtual machine ​and from remote computers]]
  
-  * **Local machine**: your local **Windows computer**, where you have installed ​[[other:​win10wsl|WSL+Ubuntu]]+You have to make sure that the ''​DISPLAY''​ variable is correctly ​[[other:​win10wsl#​configuration_in_your_local_linux_account|defined in the terminals used in WSL]] 
 +===== Testing =====
  
-  * **Remote server** : we consider 2 types of remote servers: +==== Testing ​plan ====
-    * an **actual remote server** +
-    * The **WSL computer** running on a **virtual machine inside your local Windows computer**. This can be considered as a different and //remote// computer, even it is running on the local computer\\ You need your local //X server// to display graphics generated in WSL +
-    * **Define the ''​DISPLAY''​ variable** in the terminals used in WSL: +
-      * //bash// shell: ''​export DISPLAY=localhost:​0.0''​ +
-      * //tcsh// shell: ''​setenv DISPLAY localhost:​0.0''​ +
-      * You probably want to define the ''​DISPLAY''​ variable automatically in one of the shell configuration files +
- +
- +
-===== Testing ​=====+
  
 The idea is to: The idea is to:
-  * Open a terminal and check that the ''​DISPLAY''​ environment variable is correctly ​defined on the local machine+  * Open a terminal and check that the ''​DISPLAY''​ environment variable is defined on the local machine 
 +    * If we use [[other:​win10wsl|WSL]],​ we also check that we can start an application using graphics in ''​WSL''​
   * Connect to the remote machine   * Connect to the remote machine
   * Check that a (new) ''​DISPLAY''​ variable is automatically defined on the remote machine   * Check that a (new) ''​DISPLAY''​ variable is automatically defined on the remote machine
-  * Check that you can start an application using graphics ​(e.g. ''​xterm''​on the remote machine+  * Check that we can start an application using graphics ​on the remote machine 
 + 
 +Test application:​ 
 +  * We need a simple graphical application that is likely to be already installed on the remote machine 
 +    * The **test is declared successful** if we get a new window and we can interact with it.\\ Note: some applications may start with their window iconified, and you may have to check the part of your screen where the iconified windows go... 
 +    * Do not forget to **cleanly quit the test application** when you have checked that it seems to work 
 +    * It's enough to test one application 
 +  * ''​xterm ​&''​: the **recommended test application**. It will open a new terminal ​on the remote machine 
 +  * ''​xeyes &'',​ ''​xclock &'',​ ''​gvim &'',​ ''​gedit &'',​ ''​eog &'',​ ''​evince &'',​ ... : other //​standard//​ applications,​ that may be installed (or not)
  
-==== On a Linux computer ====+The test may fail, due to the [[other:​x_conf#​nothing_works|usually expected errors]] 
 +==== On a Linux computer ​or a Mac ====
  
-Some basic commands in a terminal+Open //terminal// ([[other:​ssh#​a_recommended_terminal_for_mac|terminal on a Mac]]) and use some basic commands to check things
  
 <​code>​[Local] $ hostname <​code>​[Local] $ hostname
Line 156: Line 172:
 localhost:​20.0 localhost:​20.0
  
-[Remote] $ xterm</​code>​+[Remote] $ xterm &</​code>​
  
 ==== On a Windows computer with only an X server installed ==== ==== On a Windows computer with only an X server installed ====
  
-We just open a ''​Powershell''​ window (''​Start''​ => ''​Windows Powershell''​ => ''​Windows Powershell''​) and type some basic commands+We just open a ''​Powershell''​ window (''​Start''​ => ''​Windows Powershell''​ => ''​Windows Powershell''​) and type some basic commands, including the creation of a ''​DISPLAY''​ variable
  
 <​code>​PS C:\> $env:​computername <​code>​PS C:\> $env:​computername
Line 180: Line 196:
 localhost:​19.0 localhost:​19.0
  
-[Remote] $ xterm</​code>​+[Remote] $ xterm &</​code>​
  
  
Line 194: Line 210:
 localhost:​19.0 localhost:​19.0
  
-[Remote] $ xterm</​code>​+[Remote] $ xterm &</​code>​
  
  
 ==== On a Windows computer with WSL+Linux and an X server installed ==== ==== On a Windows computer with WSL+Linux and an X server installed ====
  
-We assume that [[other:​win10wsl|WSL+Ubuntu]] is installed and that the ''​DISPLAY''​ variable is [[other:​x_conf#​if_you_are_using_wsl|configured correctly]]+We assume that [[other:​win10wsl|WSL+Ubuntu]] is installed and that the ''​DISPLAY''​ variable is [[other:​x_conf#​if_you_are_using_windows_subsystem_for_linux|configured correctly]]
  
-Open a WSL terminal (you should know how, if you have installed WSL) and type some basic commands+Open a //WSL// terminal (you should know how, if you have installed ​//WSL//) and type some basic commands
  
 <​code>​[Local WSL] $ hostname <​code>​[Local WSL] $ hostname
 name_of_your_local_machine name_of_your_local_machine
 +
 [Local WSL] $ echo $DISPLAY [Local WSL] $ echo $DISPLAY
 localhost:​0.0 localhost:​0.0
-[Local WSL] $ xterm+ 
 +[Local WSL] $ xterm &
  
 [Local WSL] $ ssh -X some_login@some_remote_server [Local WSL] $ ssh -X some_login@some_remote_server
Line 214: Line 232:
 [Remote] $ echo $DISPLAY [Remote] $ echo $DISPLAY
 localhost:​22.0 localhost:​22.0
-[Remote] $ xterm</​code>​+ 
 +[Remote] $ xterm &</​code>​ 
 + 
 + 
 + 
 + 
 ===== Troubleshooting ===== ===== Troubleshooting =====
 +
  
 ==== Nothing works! ==== ==== Nothing works! ====
  
 That's unfortunate,​ but: That's unfortunate,​ but:
-  * Have you turned on your computer? +  * Have you turned on your computer? ​:-P 
-  * Do you have network access, and an account on a remote server?+  * Do you have network access, and an account on a remote server? :-?
   * Have you run the [[other:​x_conf#​testing|Tests]]?​   * Have you run the [[other:​x_conf#​testing|Tests]]?​
-  * Have you installed and configured the //X server// correctly? Is it really running?+  * Have you [[other:​x_conf|installed and configured the X server]] correctly? Is it really running?
   * Have you configured [[other:​putty_conf|PuTTY]] and/or other required applications correctly ?   * Have you configured [[other:​putty_conf|PuTTY]] and/or other required applications correctly ?
-  * Is the ''​DISPLAY'' ​variable defined correctly on the local and remote computer?+  * Is the [[other:​x_conf#​what_is_an_x_server|DISPLAY variable]] defined correctly on the local and remote computer?
  
-=== When DISPLAY is not defined correctly ===+ 
 +==== 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\\ <​code>​$ xterm & 
 +xterm: Xt error: Can't open display: localhost:​23.0</​code>​ 
 + 
 +Time to [[other:​x_conf|read this page again]]... 
 + 
 + 
 +==== 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 If the ''​DISPLAY''​ **variable is not defined (correctly)**,​ you will get a ''​Can'​t open display: //[NO VALUE DISPLAYED HERE]//''​ error
Line 236: Line 270:
 $ echo $DISPLAY $ echo $DISPLAY
  
 +$ setenv DISPLAY CRAP_DISPLAY
 +$ xterm
 +xterm: Xt error: Can't open display: CRAP_DISPLAY
 </​code>​ </​code>​
  
 Make sure that you are using ''​ssh -X''​ or ''​ssh -Y'',​ or that [[other:​putty_conf#​changing_some_useful_settings|PuTTY is configured]] with ''​Enable X11 forwarding''​ Make sure that you are using ''​ssh -X''​ or ''​ssh -Y'',​ or that [[other:​putty_conf#​changing_some_useful_settings|PuTTY is configured]] with ''​Enable X11 forwarding''​
  
-=== 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\\ <​code>​$ xterm & +==== Can'​t ​start a graphical application by clicking on its desktop shortcut ==== 
-$ connect localhost port 6000Connection refused + 
-xterm: Xt error: Can't open display: localhost:​12.0</​code>​+Check the shortcut and run the command directly in a terminal to check the error message 
 + 
 +There is a good chance that [[other:x_conf#​error_when_there_is_no_x_server_running|you have forgotten to start the X server!]] 
  
-Time to [[other:​x_conf|read this page again]]... 
 ==== OpenGL related settings ==== ==== OpenGL related settings ====
  
other/x_conf.txt · Last modified: 2023/06/30 08:20 by jypeter