Ceci est une ancienne révision du document !


Dernière mise-à-jour : 2022/02/22 15:15

LCF304 - Gestion du Système X et de l'Accès Universel

Contenu du Module

  • LCF304 - Gestion du Système X et de l'Accès Universel
    • X Window System
      • Configuration
    • Gestionnaire de Fenêtres
    • Toolkits
    • Freedesktop
    • Display Manager
      • XDM, GDM et KDM
      • LightDM
    • X.orgX11
      • Présentation
      • Démarrage et Arrêt
      • Utilisation
      • Configuration
        • La Section ServerFlags
        • La Section ServerLayout
        • La Section Files
        • La Section Modules
        • La Section InputDevice
        • La Section Monitor
        • La Section Device
        • La Section Screen
      • La Commande xwininfo
      • La Commande xdpyinfo
    • L'Accès Universel
      • Le Clavier et la Souris
      • Claviers Visuels
      • L'Ecran
      • Autres Technologies

X Window System

L'architecture graphique de Linux est X Window System, aussi appelé X Window ou simplement X. X est responsable de la gestion du GUI (Graphical User Interface). En autres termes, X est responsable de dessiner et gérer les éléments tels :

  • Fenêtres,
  • Boutons,
  • Menus,
  • Curseur de souris,
  • etc.

X est une application client/serveur.

Il existe trois versions de X :

    • un logiciel libre utilisé par la majorité des distributions jusqu'en 2004.
    • un logiciel libre utilisé depuis les modifications de la licence de XFree86 en 2004. La version 6.7.0 était basé sur la version 4.3.99 de XFree86. Depuis le développement est indépendant de son prédécesseur.
    • un logiciel commercial édité par la société Xi Graphics possedant sa propre base de pilotes graphiques.

Configuration

IL existe plusieurs outils pour configurer le serveur X :

  • XFree86 configure est la commande utilisé pour configurer un serveur X basé sur XFree86 4.x. Cette commande produit le fichier /root/XF86Config.new qui peut être configuré manuellement.
  • Xorg configure est la commande utilisé pour configurer un serveur X basé sur X.orgX11. Cette commande produit le fichier /root/xorg.conf.new qui peut être configuré manuellement.

Important : Ces deux commandes doivent être utilisées quand le serveur X est arrêté.

Deux outils qui ne bénéficient plus de support sont xf86cfg et xorgcfg sont parfois présents dans la distribution et peuvent être utilisés pour configurer le serveur X.

Dernièrement il existe des outils spécifiques à une distribution :

  • Red Hat, CentOS, Fedora : system-config-display.

Important : Les outils disponibles pour le serveur XFree86 version 3.3.6 et antérieure était xf86config, Xconfigurator ou XF86Setup.

Les fichiers de configuration de chaque serveur X sont :

  • XFree86 4.x,
    • /etc/X11/XF86Config4 ou /etc/XF86Config4 ou /etc/X11/XF86Config ou /etc/XF86Config,
  • XFree86 3.6.6 et antérieure,
    • /etc/X11/XF86Config ou /etc/XF86Config,
    • /etc/X11/xorg.conf ou /etc/xorg.conf.

Gestionnaire de Fenêtres

X ne doit être confondue avec un Gestionnaire de Fenêtres (Window Manager). Le Gestionnaire de Fenêtres est responsable de la mise en page des élements fournis pas X. C'est pour cette raison que sous Linux il existe de nombreux Gestionnaires différents tels :

  • KDE,
  • GNOME,
  • twm,
  • IceWM,
  • Rvwm,
  • CDE,
  • WindowMaker,
  • Enlightenment,
  • Xfce,
  • Afterstep
  • Compiz Fusion,
  • Fluxbox,
  • Openbox,
  • Metacity,
  • Blackbox,
  • Ion,
  • Wmii,
  • etc.

Les Gestionnaires les plus connus sont :

  • KDE (Kool Desktop Environment) par Matthias Ettrich en 1996,
  • GNOME (Gnu Network Object Model Environment) par Miguel de Icaza et Federico Mena en 1997,

Toolkits

Chaque Gestionnaire utilise une bibliothèque graphique contenant des fonctions “toutes faites” pour créer les éléments graphiques. Chaque elément pour le Gestionnaire lui même s'appelle un Widget (Windows Gadget) tandis que élément pour une fenêtre s'appelle simplement un Gadget.

Une bibliothèque complète est appelée un Widget Toolkit. Le Toolkit le plus connu est MOTIF. Cependant MOTIF n'est pas libre. Pour cette raison les développeurs de Linux ont du concevoir des Toolkits ayant une licence libre.

Comme dans beaucoup de cas de développement sous Linux, il existe plusieurs Toolkits dont les deux les plus connus sont :

  • GTK (GIMP Toolkit), programé en langage C et embarqué par défaut dans le Gestionnaire de Fenêtres Gnome,
  • QT (Cute), programé en langage C++ et embarqué par défaut dans le Gestionnaire de Fenêtres KDE.

Freedesktop

Afin d'assurer la possibilité d'utiliser une application développée avec GTK sur un système fonctionnant sous QT et vice-versa, les développeurs de GNOME et KDE ont créé ensemble le projet Freedesktop. Les développements issus de ce projet sont intégrés dans les deux Gestionnaires.

Display Manager

Le Display Manager est chargé de gérer les connexions locales et à distance, les authentifications et les ouvertures de sessions. De ce fait, Le Display Manager est l'équivalent des services console init, getty et login réunis.

Pour les connexions à distance le Display Manager utilise le protocole XDMCP (X Display Manager Control Panel)). Le fichier de configuration de XDMCP est /etc/X11/xdm/xdmconfig.

XDM, GDM et KDM

Le Display Manager par défaut, compatible avec tous les serveurs X, est XDM. Les deux autres Display Managers les plus connus sont :

  • GDM pour GNOME,
  • KDM pour KDE,
  • LightDM de Canonical.

Les deux premiers sont essentiellement des XDM avec des fonctionnalités supplémentaires telles :

  • le passage d'un utilisateur à un autre,
  • la liste des utilisateurs,
  • le choix d'un gestionnaire de fenêtres,
  • la possibilité d'une autoconnexion,
  • la liste des serveurs X distants,
  • etc.

LightDM

LightDM est un gestionnaire d'affichage conçu pour être une alternative relativement légère et très personnalisable à GDM par Robert Ancell, de Canonical. LightDM possède les caractéristiques suivantes :

  • Pas de dépendances de Gnome
  • Utilisation de webkit pour le rendu des thèmes
  • Support de Toolkits Gtk et Qt

Sous RHEL/CentOS 7, LightDM n'est pas installé par défaut et se trouve dans le dépôt EPEL. Installez donc le dépôt :

[root@centos7 ~]# yum install -y epel-release
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: fr.mirror.babylon.network
 * extras: fr.mirror.babylon.network
 * updates: fr.mirror.babylon.network
Resolving Dependencies
--> Running transaction check
---> Package epel-release.noarch 0:7-6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package                Arch             Version         Repository        Size
================================================================================
Installing:
 epel-release           noarch           7-6             extras            14 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 14 k
Installed size: 24 k
Downloading packages:
epel-release-7-6.noarch.rpm                                |  14 kB   00:01     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : epel-release-7-6.noarch                                      1/1 
  Verifying  : epel-release-7-6.noarch                                      1/1 

Installed:
  epel-release.noarch 0:7-6                                                     

Complete!

Installez ensuite LightDM :

[root@centos7 ~]# yum install -y lightdm
Loaded plugins: fastestmirror, langpacks
epel/x86_64/metalink                                     |  23 kB     00:00     
epel                                                     | 4.3 kB     00:00     
(1/3): epel/x86_64/group_gz                                | 170 kB   00:00     
(2/3): epel/x86_64/updateinfo                              | 588 kB   00:00     
(3/3): epel/x86_64/primary_db                              | 4.3 MB   00:01     
Loading mirror speeds from cached hostfile
 * base: fr.mirror.babylon.network
 * epel: mirrors.ircam.fr
 * extras: fr.mirror.babylon.network
 * updates: fr.mirror.babylon.network
Resolving Dependencies
--> Running transaction check
---> Package lightdm.x86_64 0:1.10.6-4.el7 will be installed
--> Processing Dependency: lightdm-greeter = 1.2 for package: lightdm-1.10.6-4.el7.x86_64
--> Processing Dependency: lightdm-gobject(x86-64) = 1.10.6-4.el7 for package: lightdm-1.10.6-4.el7.x86_64
--> Running transaction check
---> Package lightdm-gobject.x86_64 0:1.10.6-4.el7 will be installed
---> Package lightdm-gtk.x86_64 0:1.8.5-19.el7 will be installed
--> Processing Dependency: lightdm-gtk-common = 1.8.5-19.el7 for package: lightdm-gtk-1.8.5-19.el7.x86_64
--> Running transaction check
---> Package lightdm-gtk-common.noarch 0:1.8.5-19.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package                   Arch          Version              Repository   Size
================================================================================
Installing:
 lightdm                   x86_64        1.10.6-4.el7         epel        190 k
Installing for dependencies:
 lightdm-gobject           x86_64        1.10.6-4.el7         epel         57 k
 lightdm-gtk               x86_64        1.8.5-19.el7         epel         58 k
 lightdm-gtk-common        noarch        1.8.5-19.el7         epel         57 k

Transaction Summary
================================================================================
Install  1 Package (+3 Dependent packages)

Total download size: 362 k
Installed size: 970 k
Downloading packages:
warning: /var/cache/yum/x86_64/7/epel/packages/lightdm-1.10.6-4.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY
Public key for lightdm-1.10.6-4.el7.x86_64.rpm is not installed
(1/4): lightdm-1.10.6-4.el7.x86_64.rpm                     | 190 kB   00:01     
(2/4): lightdm-gobject-1.10.6-4.el7.x86_64.rpm             |  57 kB   00:00     
(3/4): lightdm-gtk-1.8.5-19.el7.x86_64.rpm                 |  58 kB   00:00     
(4/4): lightdm-gtk-common-1.8.5-19.el7.noarch.rpm          |  57 kB   00:00     
--------------------------------------------------------------------------------
Total                                              179 kB/s | 362 kB  00:02     
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
Importing GPG key 0x352C64E5:
 Userid     : "Fedora EPEL (7) <epel@fedoraproject.org>"
 Fingerprint: 91e9 7d7c 4a5e 96f1 7f3e 888f 6a2f aea2 352c 64e5
 Package    : epel-release-7-6.noarch (@extras)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : lightdm-gobject-1.10.6-4.el7.x86_64                          1/4 
  Installing : lightdm-gtk-common-1.8.5-19.el7.noarch                       2/4 
  Installing : lightdm-1.10.6-4.el7.x86_64                                  3/4 
  Installing : lightdm-gtk-1.8.5-19.el7.x86_64                              4/4 
  Verifying  : lightdm-gtk-common-1.8.5-19.el7.noarch                                                                                                               1/4 
  Verifying  : lightdm-gtk-1.8.5-19.el7.x86_64                                                                                                                      2/4 
  Verifying  : lightdm-1.10.6-4.el7.x86_64                                                                                                                          3/4 
  Verifying  : lightdm-gobject-1.10.6-4.el7.x86_64                                                                                                                  4/4 

Installed:
  lightdm.x86_64 0:1.10.6-4.el7                                                                                                                                         

Dependency Installed:
  lightdm-gobject.x86_64 0:1.10.6-4.el7                   lightdm-gtk.x86_64 0:1.8.5-19.el7                   lightdm-gtk-common.noarch 0:1.8.5-19.el7                  

Complete!

Le fichier de configuration de LightDM est /etc/lightdm/lightdm.conf :

[root@centos7 ~]# cat /etc/lightdm/lightdm.conf
#
# General configuration
#
# start-default-seat = True to always start one seat if none are defined in the configuration
# greeter-user = User to run greeter as
# minimum-display-number = Minimum display number to use for X servers
# minimum-vt = First VT to run displays on
# lock-memory = True to prevent memory from being paged to disk
# user-authority-in-system-dir = True if session authority should be in the system location
# guest-account-script = Script to be run to setup guest account
# logind-load-seats = True to automatically set up multi-seat configuration from logind
# logind-check-graphical = True to on start seats that are marked as graphical by logind
# log-directory = Directory to log information to
# run-directory = Directory to put running state in
# cache-directory = Directory to cache to
# sessions-directory = Directory to find sessions
# remote-sessions-directory = Directory to find remote sessions
# greeters-directory = Directory to find greeters
# backup-logs = True to move add a .old suffix to old log files when opening new ones
#
[LightDM]
#start-default-seat=true
#greeter-user=lightdm
#minimum-display-number=0
minimum-vt=1
#lock-memory=true
user-authority-in-system-dir=true
#guest-account-script=guest-account
#logind-load-seats=false
#logind-check-graphical=false
#log-directory=/var/log/lightdm
#run-directory=/var/run/lightdm
#cache-directory=/var/cache/lightdm
#sessions-directory=/usr/share/lightdm/sessions:/usr/share/xsessions
#remote-sessions-directory=/usr/share/lightdm/remote-sessions
#greeters-directory=/usr/share/lightdm/greeters:/usr/share/xgreeters
#backup-logs=true

#
# Seat defaults
#
# type = Seat type (xlocal, xremote)
# xdg-seat = Seat name to set pam_systemd XDG_SEAT variable and name to pass to X server
# pam-service = PAM service to use for login
# pam-autologin-service = PAM service to use for autologin
# pam-greeter-service = PAM service to use for greeters
# xserver-command = X server command to run (can also contain arguments e.g. X -special-option)
# xmir-command = Xmir server command to run (can also contain arguments e.g. Xmir -special-option)
# xserver-layout = Layout to pass to X server
# xserver-config = Config file to pass to X server
# xserver-allow-tcp = True if TCP/IP connections are allowed to this X server
# xserver-share = True if the X server is shared for both greeter and session
# xserver-hostname = Hostname of X server (only for type=xremote)
# xserver-display-number = Display number of X server (only for type=xremote)
# xdmcp-manager = XDMCP manager to connect to (implies xserver-allow-tcp=true)
# xdmcp-port = XDMCP UDP/IP port to communicate on
# xdmcp-key = Authentication key to use for XDM-AUTHENTICATION-1 (stored in keys.conf)
# unity-compositor-command = Unity compositor command to run (can also contain arguments e.g. unity-system-compositor -special-option)
# unity-compositor-timeout = Number of seconds to wait for compositor to start
# greeter-session = Session to load for greeter
# greeter-hide-users = True to hide the user list
# greeter-allow-guest = True if the greeter should show a guest login option
# greeter-show-manual-login = True if the greeter should offer a manual login option
# greeter-show-remote-login = True if the greeter should offer a remote login option
# user-session = Session to load for users
# allow-user-switching = True if allowed to switch users
# allow-guest = True if guest login is allowed
# guest-session = Session to load for guests (overrides user-session)
# session-wrapper = Wrapper script to run session with
# greeter-wrapper = Wrapper script to run greeter with
# guest-wrapper = Wrapper script to run guest sessions with
# display-setup-script = Script to run when starting a greeter session (runs as root)
# display-stopped-script = Script to run after stopping the display server (runs as root)
# greeter-setup-script = Script to run when starting a greeter (runs as root)
# session-setup-script = Script to run when starting a user session (runs as root)
# session-cleanup-script = Script to run when quitting a user session (runs as root)
# autologin-guest = True to log in as guest by default
# autologin-user = User to log in with by default (overrides autologin-guest)
# autologin-user-timeout = Number of seconds to wait before loading default user
# autologin-session = Session to load for automatic login (overrides user-session)
# autologin-in-background = True if autologin session should not be immediately activated
# exit-on-failure = True if the daemon should exit if this seat fails
#
[SeatDefaults]
#type=xlocal
#xdg-seat=seat0
#pam-service=lightdm
#pam-autologin-service=lightdm-autologin
#pam-greeter-service=lightdm-greeter
xserver-command=X -background none
#xmir-command=Xmir
#xserver-layout=
#xserver-config=
#xserver-allow-tcp=false
#xserver-share=true
#xserver-hostname=
#xserver-display-number=
#xdmcp-manager=
#xdmcp-port=177
#xdmcp-key=
#unity-compositor-command=unity-system-compositor
#unity-compositor-timeout=60
greeter-session=lightdm-greeter
#greeter-hide-users=false
#greeter-allow-guest=true
#greeter-show-manual-login=false
#greeter-show-remote-login=true
#user-session=default
#allow-user-switching=true
#allow-guest=true
#guest-session=
session-wrapper=/etc/X11/xinit/Xsession
#greeter-wrapper=
#guest-wrapper=
#display-setup-script=
#display-stopped-script=
#greeter-setup-script=
#session-setup-script=
#session-cleanup-script=
#autologin-guest=false
#autologin-user=
#autologin-user-timeout=0
#autologin-in-background=false
#autologin-session=UNIMPLEMENTED
#exit-on-failure=false

#
# Seat configuration
#
# Each seat must start with "Seat:".
# Uses settings from [SeatDefaults], any of these can be overriden by setting them in this section.
#
#[Seat:0]

#
# XDMCP Server configuration
#
# enabled = True if XDMCP connections should be allowed
# port = UDP/IP port to listen for connections on
# listen-address = Host/address to listen for XDMCP connections (use all addresses if not present)
# key = Authentication key to use for XDM-AUTHENTICATION-1 or blank to not use authentication (stored in keys.conf)
#
# The authentication key is a 56 bit DES key specified in hex as 0xnnnnnnnnnnnnnn.  Alternatively
# it can be a word and the first 7 characters are used as the key.
#
[XDMCPServer]
#enabled=false
#port=177
#listen-address=
#key=

#
# VNC Server configuration
#
# enabled = True if VNC connections should be allowed
# command = Command to run Xvnc server with
# port = TCP/IP port to listen for connections on
# listen-address = Host/address to listen for VNC connections (use all addresses if not present)
# width = Width of display to use
# height = Height of display to use
# depth = Color depth of display to use
#
[VNCServer]
#enabled=false
#command=Xvnc
#port=5900
#listen-address=
#width=1024
#height=768
#depth=8

La configuration de l'écran d'accueil GTK de LightDM se trouve dans le fichier /etc/lightdm/lightdm-gtk-greeter.conf :

[root@centos7 ~]# cat /etc/lightdm/lightdm-gtk-greeter.conf
#
# background = Background file to use, either an image path or a color (e.g. #772953)
# theme-name = GTK+ theme to use
# icon-theme-name = Icon theme to use
# font-name = Font to use
# xft-antialias = Whether to antialias Xft fonts (true or false)
# xft-dpi = Resolution for Xft in dots per inch (e.g. 96)
# xft-hintstyle = What degree of hinting to use (none, slight, medium, or hintfull)
# xft-rgba = Type of subpixel antialiasing (none, rgb, bgr, vrgb or vbgr)
# show-indicators = semi-colon ";" separated list of allowed indicator modules. Built-in indicators include "~a11y", "~language", "~session", "~power". Unity indicators can be represented by short name (e.g. "sound", "power"), service file name, or absolute path
# show-clock (true or false)
# clock-format = strftime-format string, e.g. %H:%M
# keyboard = command to launch on-screen keyboard
# position = main window position: x y
# default-user-image = Image used as default user icon, path or #icon-name
# screensaver-timeout = Timeout (in seconds) until the screen blanks when the greeter is called as lockscreen
# 
[greeter]
background=/usr/share/backgrounds/day.jpg
#theme-name=
#icon-theme-name=
#font-name=
#xft-antialias=
#xft-dpi=
#xft-hintstyle=
#xft-rgba=
#show-indicators=
#show-clock=
#clock-format=
#keyboard=
#position=
#screensaver-timeout=

X.orgX11

Présentation

L'exécutable X.orgX11 se trouve dans /usr/bin :

[root@centos7 ~]# whereis Xorg
Xorg: /usr/bin/Xorg /usr/share/man/man1/Xorg.1.gz

Les modules de X.orgX11 sont installés par défaut dans /usr/lib/xorg/ ou dans /usr/lib64/xorg/ :

[root@centos7 ~]# ls -lR /usr/lib64/xorg
/usr/lib64/xorg:
total 36
drwxr-xr-x. 5 root root  4096 Jun  4 10:00 modules
-rw-r--r--. 1 root root 31246 Apr 10  2015 protocol.txt

/usr/lib64/xorg/modules:
total 776
drwxr-xr-x. 2 root root   4096 Jun  4 15:33 drivers
drwxr-xr-x. 2 root root     22 Jun  4 10:00 extensions
drwxr-xr-x. 2 root root    106 Jun  4 10:02 input
-rwxr-xr-x. 1 root root  99568 Apr 10  2015 libexa.so
-rwxr-xr-x. 1 root root  20016 Apr 10  2015 libfbdevhw.so
-rwxr-xr-x. 1 root root 153528 Apr 10  2015 libfb.so
-rwxr-xr-x. 1 root root  19952 Mar  6  2015 libglamoregl.so
-rwxr-xr-x. 1 root root 150992 Apr 10  2015 libint10.so
-rwxr-xr-x. 1 root root  36552 Apr 10  2015 libshadowfb.so
-rwxr-xr-x. 1 root root  36248 Apr 10  2015 libshadow.so
-rwxr-xr-x. 1 root root  28232 Apr 10  2015 libvbe.so
-rwxr-xr-x. 1 root root  33576 Apr 10  2015 libvgahw.so
-rwxr-xr-x. 1 root root 198568 Apr 10  2015 libwfb.so

/usr/lib64/xorg/modules/drivers:
total 2616
-rwxr-xr-x. 1 root root   11296 Mar  6  2015 ati_drv.so
-rwxr-xr-x. 1 root root   20408 Jun  9  2014 dummy_drv.so
-rwxr-xr-x. 1 root root   24648 Jun 10  2014 fbdev_drv.so
-rwxr-xr-x. 1 root root 1501152 Mar  6  2015 intel_drv.so
-rwxr-xr-x. 1 root root   50472 Jun  9  2014 modesetting_drv.so
-rwxr-xr-x. 1 root root  211080 Jun 10  2014 nouveau_drv.so
-rwxr-xr-x. 1 root root  181560 Mar 11  2015 qxl_drv.so
-rwxr-xr-x. 1 root root  438848 Mar  6  2015 radeon_drv.so
-rwxr-xr-x. 1 root root   24216 Jun  9  2014 v4l_drv.so
lrwxrwxrwx. 1 root root      50 Jun  4 15:33 vboxvideo_drv.so -> /usr/lib64/VBoxGuestAdditions/vboxvideo_drv_115.so
-rwxr-xr-x. 1 root root   28936 Jun 10  2014 vesa_drv.so
-rwxr-xr-x. 1 root root  162008 Mar  6  2015 vmware_drv.so

/usr/lib64/xorg/modules/extensions:
total 296
-rwxr-xr-x. 1 root root 302520 Apr 10  2015 libglx.so

/usr/lib64/xorg/modules/input:
total 276
-rwxr-xr-x. 1 root root  58776 Jun 10  2014 evdev_drv.so
-rwxr-xr-x. 1 root root  70464 Mar  6  2015 synaptics_drv.so
-rwxr-xr-x. 1 root root  20144 Jun 10  2014 vmmouse_drv.so
-rwxr-xr-x. 1 root root  11440 Jun 10  2014 void_drv.so
-rwxr-xr-x. 1 root root 113864 Jun 10  2014 wacom_drv.so

Sous RHEL/CentOS 7 les paquets X.orgX11 installés peuvent être trouvés en utilisant la commande suivante :

[root@centos7 ~]# rpm -qa | grep xorg
xorg-x11-drv-intel-2.99.916-5.el7.x86_64
xorg-x11-fonts-Type1-7.5-9.el7.noarch
abrt-addon-xorg-2.1.11-19.el7.centos.0.3.x86_64
xorg-x11-utils-7.5-13.1.el7.x86_64
xorg-x11-drv-void-1.4.0-23.el7.x86_64
xorg-x11-drv-dummy-0.3.6-15.el7.x86_64
xorg-x11-drv-fbdev-0.4.3-15.el7.x86_64
xorg-x11-drv-evdev-2.8.2-5.el7.x86_64
xorg-x11-glamor-0.6.0-2.20140918git347ef4f.el7.x86_64
xorg-x11-drv-qxl-0.1.1-12.el7.x86_64
xorg-x11-server-utils-7.7-4.el7.x86_64
xorg-x11-drivers-7.7-6.el7.x86_64
xorg-x11-drv-modesetting-0.8.0-13.el7.x86_64
xorg-x11-xinit-1.3.2-14.el7.x86_64
xorg-x11-drv-ati-7.4.0-1.20140918git56c7fb8.el7.x86_64
xorg-x11-xauth-1.0.7-6.1.el7.x86_64
xorg-x11-drv-vesa-2.3.2-14.el7.x86_64
xorg-x11-font-utils-7.5-18.1.el7.x86_64
xorg-x11-server-common-1.15.0-33.el7_1.x86_64
xorg-x11-drv-vmware-13.0.2-1.el7.x86_64
xorg-x11-drv-vmmouse-13.0.0-10.el7.x86_64
xorg-x11-server-Xorg-1.15.0-33.el7_1.x86_64
xorg-x11-drv-wacom-0.23.0-6.el7.x86_64
xorg-x11-drv-nouveau-1.0.10-5.el7.x86_64
xorg-x11-drv-synaptics-1.7.1-13.el7.x86_64
xorg-x11-xkb-utils-7.7-9.1.el7.x86_64
xorg-x11-drv-v4l-0.2.0-35.el7.x86_64

Démarrage et Arrêt

Les distributions RHEL ont historiquement utilisés les niveaux d'exécution pour démarrer et arrêter le serveur X. Les distributions Debian n'utilisaient pas le système de niveaux d'exécution. Dans ce cas, le serveur X est arrêté avec le script /etc/init.d/xdm ( ou kdm ou gdm3 selon le cas ) en passant l'option stop et démarrer avec l'option start.

Utilisation

Pour interagir avec et contrôler X.orgX11, un utilisateur dispose de plusieurs raccourcis claviers :

Raccourci Action
Ctrl-Alt-Retour arrière La session X est terminée et la boîte de connexion est affichée.
Ctrl-Alt-Plus La résolution suivante dans la liste des celles admises est utilisée.
Ctrl-Alt-Moins La résolution précédente dans la liste des celles admises est utilisée.

Configuration

Important : Notez que X.orgX11 s'auto-configure. Il est rarement nécessaire de configurer X.orgX11 manuellement. Par contre il est toujours possible de créer le fichier /etc/X11/xorg.conf dans le cas où l'auto-configuration ne donne pas de résultats satisfaisants.

Un fichier de configuration /etc/X11/xorg.conf prend la forme suivante :

Section "Monitor"
  Identifier   "Monitor[0]"
  ModelName    "VirtualBox Virtual Output"
  VendorName   "Oracle Corporation"
EndSection

Section "Device"
  BoardName    "VirtualBox Graphics"
  Driver       "vboxvideo"
  Identifier   "Device[0]"
  VendorName   "Oracle Corporation"
EndSection

Section "Screen"
  SubSection "Display"
    Depth      24
  EndSubSection
  Device       "Device[0]"
  Identifier   "Screen[0]"
  Monitor      "Monitor[0]"
EndSection

Des applications tierces peuvent déposer des fichiers de configuration qui leur sont propres dans le répertoire /usr/share/X11/xorg.conf.d/ :

[root@centos7 ~]# ls -l /usr/share/X11/xorg.conf.d/
total 24
-rw-r--r--. 1 root root 1099 Apr 10  2015 10-evdev.conf
-rw-r--r--. 1 root root 1867 Apr 10  2015 10-quirks.conf
-rw-r--r--. 1 root root 1704 Mar  6  2015 50-synaptics.conf
-rw-r--r--. 1 root root  115 Jun 10  2014 50-vmmouse.conf
-rw-r--r--. 1 root root  835 Jun 10  2014 50-wacom.conf
-rw-r--r--. 1 root root   61 Mar  6  2015 glamor.conf

Important : Les fichiers dans le répertoire xorg.conf.d sont numérotés. L'ordre de prise en compte des fichiers de configuration suit la numérotation. Le fichier xorg.conf lui-même est interprété en dernier.

Les fichiers de configuration contiennent des sections. Chaque section commence par une directive Section :

Section "Nom"
...

et se termine par une directive EndSection :

...
EndSection

Dans chaque section se trouvent des lignes comprennant une Option suivi d'une ou de plusieurs Valeurs :

  Identifier   "Monitor[0]"

A faire : Notez que la valeur est entourée de “.

Certaines options sont des booléenes. Les valeurs admises sont :

  • Vrai : 1, on, true, yes,
  • Faux : 0, off, false, no.

La Section ServerFlags

Cette section optionnelle contient des directives globales. Cependant les valeurs attribuées ici peuvent être modifiées par les valeurs des directives dans la section ServerLayout.

Un exemple de cette section est :

Section "ServerFlags"       
	Option "DontZap" "true"      
EndSection

Les directives les plus courantes dans cette section sont :

Directive Type Exemple Description
“DontZap” Bouléen True Quand la valeur de cette directive est vrai, la terminaison de la session X en utilisant les touches Ctrl-Alt-Retour arrière est désactivée.
“DontZoom” Bouléen True Quand la valeur de cette directive est vrai, il n'est plus possible de modifier la résolution en utilisant les touches Ctrl-Alt-Plus ou Ctrl-Alt-Moins.

La Section ServerLayout

Cette section regroupe les informations concernant les périphériques en entrée et les périphériques en sortie.

Un exemple de cette section est :

Section  "ServerLayout"         
	Identifier     "Default Layout"         
	Screen      0  "Screen0" 0 0         
	InputDevice    "Mouse0" "CorePointer"         
	InputDevice    "Keyboard0" "CoreKeyboard" 
EndSection

Les directives les plus courantes dans cette section sont :

Directive Description Commentaires
“Identifier” Définit un nom unique pour cette entrée dans la section. S/O
“Screen” Spécifie l'entrée de la section Screen concernée par l'entrée courante. Le premier 0 indique le premier moniteur connecté à la carte vidéo. Les deux derniers 0 indique la position du coins supérieur gauche de l'écran en coordonnées XY. Par défaut cette valaur est de 0 0.
“InputDevice” Spécifie l'entrée de la section InputDevice concernée par l'entrée courante. Le terme Core indique que c'est le périphérique par défaut.
“Option” Une section optionnelle Toute option définit ici prend précédence sur une option du même nom dans la section ServerFlags.

Important : Le fichier de configuration peut contenir deux ou plusieurs sections ServerLayout. Seule la première sera prise en compte.

La Section Files

Cette section regroupe les informations concernant les fichiers de configuration supplémentaires.

Un exemple de cette section est :

Section "Files"         
	RgbPath      "/usr/share/X11/rgb.txt"         
	FontPath     "unix/:7100" 
EndSection

Les directives les plus courantes dans cette section sont :

Directive Description Commentaires
“RgbPath” Spécifie l'emplacement de la base de données RGB. Sous Redhat/CentOS : /usr/share/X11/rgb.txt.
“FontPath” Spécifie où doit connecter le serveur pour obtenir des polices pour le serveur de polices xfs. unix/:7100 par défaut.
“ModulePath” Spécifie un répertoire alternatif de modules. Une directive optionnelle.

Voici le fichier /usr/share/X11/rgb.txt :

[root@centos7 ~]# more /usr/share/X11/rgb.txt
255 250 250		snow
248 248 255		ghost white
248 248 255		GhostWhite
245 245 245		white smoke
245 245 245		WhiteSmoke
220 220 220		gainsboro
255 250 240		floral white
255 250 240		FloralWhite
253 245 230		old lace
253 245 230		OldLace
250 240 230		linen
250 235 215		antique white
250 235 215		AntiqueWhite
255 239 213		papaya whip
255 239 213		PapayaWhip
255 235 205		blanched almond
255 235 205		BlanchedAlmond
255 228 196		bisque
255 218 185		peach puff
255 218 185		PeachPuff
255 222 173		navajo white
255 222 173		NavajoWhite
255 228 181		moccasin
255 248 220		cornsilk
255 255 240		ivory
255 250 205		lemon chiffon
255 250 205		LemonChiffon
255 245 238		seashell
240 255 240		honeydew
--More--(3%)

La Section Modules

Par défaut le serveur X charge ses modules à partir du répertoire /usr/lib/xorg/modules/drivers ou /usr/lib64/xorg/modules/drivers :

[root@centos7 ~]# ls /usr/lib64/xorg/modules
drivers     input      libfbdevhw.so  libglamoregl.so  libshadowfb.so  libvbe.so    libwfb.so
extensions  libexa.so  libfb.so       libint10.so      libshadow.so    libvgahw.so
root@debian8:~# ls /usr/lib/xorg/modules
drivers     input      libfbdevhw.so  libglamoregl.so  libshadowfb.so  libvbe.so    libwfb.so
extensions  libexa.so  libfb.so       libint10.so      libshadow.so    libvgahw.so  multimedia

Important : Le chemin par défaut de l'emplacement des modules peut être modifié en utilisant la directive ModulePath dans la section Files.

Un exemple de cette section est :

Section "Module" 	
	Load  "fbdevhw" 	
EndSection

Attention : Dans l'exemple ci-dessus, le module fbdevhw sera chargé à la place des modules par défaut. Pour charger les modules par défaut il faut les spécifier.

La Section InputDevice

Cette section décrit un périphérique en entrée. Il n'ya normalement qu'une section pour le clavier, les souris étant généralement détectées automatiquement. Vous pouvez cependant configurer une section InputDevice pour une souris en ecrasant la configuration par défaut.

Un exemple de cette section est :

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
        Option      "XkbModel" "pc105"
        Option      "XkbLayout" "us"
EndSection

Les directives les plus courantes dans cette section sont :

Directive Description
“Identifier” Spécifie un nom unique pour la section. Cette directive est obligatoire.
“Driver” Spécifie le pilote à charger.
“Option” Spécifie une option concernant le périphérique.

Quand la section décrit une souris, on trouve typiquement les options suivantes :

Option Description
“Protocol” Spécifie le protocole à utiliser avec une souris, par exemple IMPS/2.
“Device” Spécifie l'emplacement physique du périphérique.
“Emulate3Buttons ” Spécifie si une souris à deux boutons réagit comme une souris à trois boutons en appuyant sur les dexu boutons sumultanément.

La Section Monitor

Cette section décrit l'écran. Les écrans actuels sont tous de type DCC qui peuvent communiquer au pilote graphique les fréquences et les résolutions supportées. Cependant avec des anciens moniteurs, il est nécessaire d'éditer cette section manuellement.

Attention : Il est important de se munir avec la documentation du moniteur afin de connaître la taille de l'affichage en millimètres, les fréquences horizontales, les fréquences verticales ainsi que les résolutions supportées. Une mauvaise configuration, notamment des fréquences, peut endomager un moniteur dès que la configuration soit appliquée.

Un exemple de cette section est :

Section "Monitor" 	
	Identifier   "Monitor0" 	
	VendorName   "Monitor Vendor" 	
	ModelName    "DDC Probed Monitor - ViewSonic G773-2" 	
	DisplaySize  320	240 	
	HorizSync    30.0 - 70.0 	
	VertRefresh  50.0 - 180.0 
EndSection

Les directives les plus courantes dans cette section sont :

Directive Description
“Identifier” Spécifie un nom unique pour la section. Cette directive est obligatoire.
“VendorName” Spécifie le nom du fabricant.
“ModelName” Spécifie le modèle du moniteur.
“DisplaySize” Spécifie la taille de l'écran du moniteur en mm.
“HorizSync” Spécifie la fréquence horizontale en kHz.
“VertRefresh” Spécifie la fréquence verticale en kHz.
“Modeline” Spécifie les modes vidéo et les fréquences horizontales et verticales necessaire pour les obtenir.
“Option” Spécifie une option. Voir le manuel de Xorg.conf

La Section Device

Cette section décrit une carte vidéo. Il y a une section Device pour chaque carte vidéo présente dans la machine.

Un exemple de cette section est :

Section "Device" 	
	Identifier  "Videocard0" 	
	Driver      "mga" 	
	VendorName  "Videocard vendor" 	
	BoardName   "Matrox Millennium G200" 	
	VideoRam    8192         
	Option      "dpms" 
EndSection

Les directives les plus courantes dans cette section sont :

Directive Description
“Identifier” Spécifie un nom unique pour la section. Cette directive est obligatoire.
“Driver” Spécifie le pilote à utiliser. Les pilotes se trouvent dans le répertoire /usr/lib/xorg/modules/drivers/.
“VendorName” Spécifie le nom du fabricant.
“BoardName” Spécifie le nom de la carte.
“VideoRam” Spécifie la mémoire vidéo en Ko dans le cas où Xorg ne peut pas la détecter automatiquement.
“BusID” Spécifie l'ID du bus auquel est connecté la carte.
“Screen” Spécifie un numéro commençant par 0 corréspondant à la sortie vidéo de la carte. Si une carte a plusieurs sorties, une section Device doit être créée pour chaque sortie et ce numéro doit être unique.
“Option” Spécifie une option. L'option “dpms” est souvent présente et active l'économie d'énergie au niveau du moniteur.

La Section Screen

Cette section associe une carte vidéo décrite par une section Device avec un moniteur décrit par une section Monitor :

Un exemple de cette section est :

Section "Screen" 	
	Identifier "Screen0" 	
	Device     "Videocard0" 	
	Monitor    "Monitor0" 	
	DefaultDepth     16 	
SubSection "Display" 		
	Depth     24 		
	Modes    "1280x1024" "1280x960" "1152x864" "1024x768" "800x600" "640x480" 	
EndSubSection 	
SubSection "Display" 		
	Depth     16 		
	Modes    "1152x864" "1024x768" "800x600" "640x480" 	
EndSubSection 
EndSection

Les directives les plus courantes dans cette section sont :

Directive Description
“Identifier” Spécifie un nom unique pour la section. Cette directive est obligatoire.
“Device” Spécifie la section Device concernée. Cette directive est obligatoire.
“Monitor” Spécifie la section Monitor concernée.
“DefautDepth” Spécifie la profondeur de couleurs par défaut.
“Display” Spécifie les résolutions permises pour le DefaultDepth
“Option” Spécifie une option.

La Commande xwininfo

La commande xwininfo permet d'obtenir de l'information concernant une fenêtre graphique. Dans la pratique il convient de saisir la commande puis de cliquer sur une fenêtre. Le résultat obtenu est similaire à celui-ci :

[root@centos7 ~]# xwininfo

xwininfo: Please select the window about which you
          would like information by clicking the
          mouse in that window.

xwininfo: Window id: 0x2800025 "xwindow (~/Desktop) - gedit"

  Absolute upper-left X:  0
  Absolute upper-left Y:  60
  Relative upper-left X:  0
  Relative upper-left Y:  32
  Width: 1366
  Height: 574
  Depth: 24
  Visual: 0x21
  Visual Class: TrueColor
  Border width: 0
  Class: InputOutput
  Colormap: 0x20 (installed)
  Bit Gravity State: NorthWestGravity
  Window Gravity State: NorthWestGravity
  Backing Store State: NotUseful
  Save Under State: no
  Map State: IsViewable
  Override Redirect State: no
  Corners:  +0+60  -0+60  -0-33  +0-33
  -geometry 1366x574+0+28

Les options de la commande xwininfo sont :

[root@centos7 ~]# xwininfo --help
usage:  xwininfo [-options ...]

where options include:
    -help                print this message
    -display host:dpy    X server to contact
    -root                use the root window
    -id windowid         use the window with the specified id
    -name windowname     use the window with the specified name
    -int                 print window id in decimal
    -children            print parent and child identifiers
    -tree                print children identifiers recursively
    -stats               print window geometry [DEFAULT]
    -bits                print window pixel information
    -events              print events selected for on window
    -size                print size hints
    -wm                  print window manager hints
    -shape               print shape extents
    -frame               don't ignore window manager frames
    -english             print sizes in english units
    -metric              print sizes in metric units
    -all                 -tree, -stats, -bits, -events, -wm, -size, -shape

La Commande xdpyinfo

Xdpyinfo est un utilitaire utilisé pour afficher des informations concernant le serveur X :

[root@centos7 ~]# xdpyinfo
name of display:    :0
version number:    11.0
vendor string:    The X.Org Foundation
vendor release number:    11500000
X.Org version: 1.15.0
maximum request size:  16777212 bytes
motion buffer size:  256
bitmap unit, bit order, padding:    32, LSBFirst, 32
image byte order:    LSBFirst
number of supported pixmap formats:    7
supported pixmap formats:
    depth 1, bits_per_pixel 1, scanline_pad 32
    depth 4, bits_per_pixel 8, scanline_pad 32
    depth 8, bits_per_pixel 8, scanline_pad 32
    depth 15, bits_per_pixel 16, scanline_pad 32
    depth 16, bits_per_pixel 16, scanline_pad 32
    depth 24, bits_per_pixel 32, scanline_pad 32
    depth 32, bits_per_pixel 32, scanline_pad 32
keycode range:    minimum 8, maximum 255
focus:  window 0x2a00007, revert to Parent
number of extensions:    27
    BIG-REQUESTS
    Composite
    DAMAGE
    DOUBLE-BUFFER
    DPMS
    DRI2
    GLX
    Generic Event Extension
    MIT-SCREEN-SAVER
    MIT-SHM
    Present
    RANDR
    RECORD
    RENDER
    SGI-GLX
    SHAPE
    SYNC
    X-Resource
    XC-MISC
    XFIXES
    XFree86-DGA
    XFree86-VidModeExtension
    XINERAMA
    XInputExtension
    XKEYBOARD
    XTEST
    XVideo
default screen number:    0
number of screens:    1

screen #0:
  dimensions:    1366x667 pixels (361x176 millimeters)
  resolution:    96x96 dots per inch
  depths (7):    24, 1, 4, 8, 15, 16, 32
  root window id:    0x170
  depth of root window:    24 planes
  number of colormaps:    minimum 1, maximum 1
  default colormap:    0x20
  default number of colormap cells:    256
  preallocated pixels:    black 0, white 16777215
  options:    backing-store WHEN MAPPED, save-unders NO
  largest cursor:    64x64
  current input event mask:    0xda0003
    KeyPressMask             KeyReleaseMask           StructureNotifyMask      
    SubstructureNotifyMask   SubstructureRedirectMask PropertyChangeMask       
    ColormapChangeMask       
  number of visuals:    120
  default visual id:  0x21
  visual:
    visual id:    0x21
    class:    TrueColor
    depth:    24 planes
    available colormap entries:    256 per subfield
    red, green, blue masks:    0xff0000, 0xff00, 0xff
    significant bits in color specification:    8 bits
  visual:
    visual id:    0xf9
    class:    TrueColor
    depth:    24 planes
    available colormap entries:    256 per subfield
    red, green, blue masks:    0xff0000, 0xff00, 0xff
    significant bits in color specification:    8 bits
...

Les options de la commande xwininfo sont :

[root@centos7 ~]# xdpyinfo --help
usage:  xdpyinfo [options]
-display displayname	server to query
-version		print program version and exit
-queryExtensions	print info returned by XQueryExtension
-ext all		print detailed info for all supported extensions
-ext extension-name	print detailed info for extension-name if one of:
     MIT-SHM XKEYBOARD Multi-Buffering SHAPE SYNC XFree86-DGA 
     XFree86-VidModeExtension XFree86-Misc XTEST DOUBLE-BUFFER RECORD 
     XInputExtension RENDER XINERAMA DMX 

L'Accès Universel

L'Accès Universel ou Accessibility en anglais fait référence aux outils divers et variés permettant aux personnes qui présentent des handicaps à utiliser l'ordinateur.

Le Clavier et la Souris

Historiquement, le logiciel graphique AccessX existait pour régler les paramètres du clavier. Ce logiciel a maintenant été largement remplacé par les panneaux de configuration des distributions. Parmi les paramètres reglables on trouve :

Paramètre Description
Sticky Keys Permet de maintenir les touches Ctrl, Alt et ⇧ Shift enfoncées après avoir été relachées jusqu'à l'enfoncement d'une deuxième touche
Mouse Keys Permet d'émuler une souris avec le pavé directionnel
Bounce Keys Permet de réduire l'effet causé quand un utilisateur appuie accidentellement plusieurs fois de suite sur la même touche
Slow Keys Necéssite qu'une touche soit enfoncée pour une durée plus longue avant que le système réagisse

Claviers Visuels

Un clavier visuel ou Onscreen Keyboard est un clavier qui est afficher à l'écran. Les touches sont activées en utilisant la souris.

Un exemple connu du clavier visuel est GOK (Gnome On-Screen Keyboard).

L'Ecran

En ce qui concerne la visibilité de l'écran, plusieurs caractéristiques sont importants dont la luminosité, le contraste, la taille de la police ainsi que le choix de la police.

Il existe aussi des loupes telles Kmag.

Autres Technologies

Il existe aussi des logiciels de synthèse vocal tels Orca et Emacspeak ainsi que des moniteurs Braille qui utilisent BRLTTY.


<html> <div align=“center”> Copyright © 2020 Hugh Norris. </html>

Menu