Xorg

De ArchwikiFR

X.org est l'implémentation officielle du système graphique X Window System dirigée par la X.Org Foundation. Elle est libre et open source.

Wayland est une alternative à Xorg développée pour pallier aux limitations de ce dernier.

Xorg seul est limité (il ne sait qu'afficher des fenêtres), il vous faudra un gestionnaire de fenêtres ou un environnement de bureau complet à lancer dedans.

Ces derniers s'installent via pacman et sont soit démarrés directement avec startx soit par l’intermédiaire d’un gestionnaire de connexion graphique. (GDM, KDM, Slim, etc)

Installation

L'installation minimale se résume à:

pacman -Syu xorg-server
  • xorg-apps peut être installé également pour bénéficier d'utilitaires supplémentaires (gestion du multi-écran via xrandr, configuration à la volée, etc.).
  • Sinon il est possible d'installer le groupe xorg, qui reprend xorg-server, xorg-apps ainsi que des polices de caractères.

Depuis l'introduction de KMS, Xorg devrait être utilisable même si vous n'installez pas de pilote pour votre carte graphique. Cependant reportez-vous au paragraphe concernant la #Configuration de la carte graphique pour une utilisation optimale de votre matériel.

Astuce : Dans le cas de VirtualBox et des machines virtuelles, allez voir les éléments spécifiques à installer.
Astuce : Pour avoir un environnement minimal de test, en attendant d'avoir installé et configuré votre environnement graphique, vous pouvez installer les paquets suivants (vous permettant ainsi de lancer le gestionnaire de fenêtres Twm par un simple startx sans disposer de .xinitrc dans votre $HOME, par l'intermédiaire du /etc/X11/xinit/xinitrc ):
pacman -S xorg-xinit xorg-twm xorg-xclock xterm

Détection automatique

Depuis la version 1.8 du serveur, Xorg utilise udev pour détecter les périphériques de saisie à chaud.

Attention : Pour un test rapide et sans risque de X (il se fermera tout seul au bout de 10s), vous pouvez créer un fichier .xinitrc de test et lancer startx :
echo "xterm & sleep 10" > ~/.xinitrc
startx
Le résultat attendu est un écran noir avec une console (xterm)

Xorg devrait détecter et configurer à peu près correctement votre matériel (se reporter aux sections suivantes pour les ajustements éventuels). De fait, le /etc/X11/xorg.conf est à éviter désormais et il est préférable de rajouter toute configuration supplémentaire et personnalisée dans /etc/X11/xorg.conf.d/. Pour s'y retrouver plus facilement, il est recommandé de consacrer un fichier par section spécifique ou par périphérique (device.conf, monitor.conf, etc.).

Note : Depuis Xorg 1.16, la configuration par défaut de X est quant à elle contenue dans le répertoire /usr/share/X11/xorg.conf.d/.

Voir man xorg.conf et man xorg.conf.d pour le détail des options.

Astuce : En cas d'ajout de fichiers de configuration, il est préférable de les faire précéder d'un nombre, Xorg les chargeant alors dans cet ordre (ce qui signifie qu'à «configuration égale», le fichier au nombre le plus faible a priorité): 05-server.conf, 10-monitor.conf, 20-device.conf, 25-screen.conf, 30-other.conf...

Configuration des périphériques de saisie

Clavier

Pour modifier le type de clavier, créez un fichier nommé par exemple /etc/X11/xorg.conf.d/00-keyboard.conf.

Ainsi pour le configurer en azerty français:

Fichier: "/etc/X11/xorg.conf.d/00-keyboard.conf"
Section "InputClass"
    Identifier         "Keyboard Layout"
    MatchIsKeyboard    "yes"
    Option             "XkbLayout"  "fr"
    Option             "XkbVariant" "latin9" # accès aux caractères spéciaux plus logique avec "Alt Gr" (ex : « » avec "Alt Gr" w x)
EndSection

Voici les dispositions pour les autres claviers francophones:

bépo france suisse canada belge
XkbLayout fr fr ch ca be
XkbVariant bepo oss fr fr

La variante oss permet de taper tous les caractères nécessaires à l'écriture du français, exemple : œ Œo … « » æ Æ Ç É et d'autres encore.

Configuration avancée

Les différentes options acceptables pour le clavier sont décrites dans les différentes sections (model, layout, variant, option) de /usr/share/X11/xkb/rules/xorg.lst.

Astuce : Depuis la version 1.6 de Xorg, la combinaison de touches Ctrl + Alt + Backspace pour «tuer» le serveur X n’a plus aucun effet. Pour la réactiver, vous devez créer un fichier, par exemple /etc/X11/xorg.conf.d/10-keyboard-terminate.conf :
Fichier: "/etc/X11/xorg.conf.d/10-keyboard-terminate.conf"
Section "InputClass"
    Identifier         "Keyboard Terminate"
    MatchIsKeyboard    "yes"
    Option             "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection

En outre, pour réactiver Ctrl + Alt + Backspace et activer Compose sur la touche menu, il suffit d'adapter la ligne XkbOptions avec :

Option "XkbOptions" "compose:menu,terminate:ctrl_alt_bksp"

Basculer la disposition clavier

Si vous désirez avoir plusieurs configurations de clavier disponibles pour l'ensemble des utilisateurs (pratique pour les environnements graphiques qui ne disposeraient pas de cette fonctionnalité), vous pouvez créer par exemple un fichier appelé /etc/X11/xorg.conf.d/00-keyboard.conf.

Par exemple, pour pouvoir basculer entre claviers français, allemand et suédois via la combinaison Shift gauche + Shift droit:

Fichier: "/etc/X11/xorg.conf.d/00-keyboard.conf"
Section "InputClass"
       Identifier             "keyboard Layout"
       MatchIsKeyboard        "on"
       Option "XkbLayout"     "fr, de, se"
       Option "XkbOptions"    "grp:shifts_toggle"
EndSection
Note : L'utilisateur peut également passer par l'utilitaire setxkbmap lorsque le serveur X est déjà lancé:
setxkbmap -layout "fr,de,se" -option "grp:shifts_toggle"
Astuce : Cela fonctionne également pour basculer d'une variante de clavier à une autre. Par exemple, pour passer du français latin9 (azerty classique) au bépo:
Section "InputClass"
       Identifier             "keyboard Layout"
       MatchIsKeyboard        "on"
       Option "XkbLayout"     "fr,fr"
       Option "XkbVariant"    "latin9,bepo"
       Option "XkbOptions"    "grp:shifts_toggle"
EndSection

Touchpad compatible synaptics

Voir la page consacrée à la configuration des touchpads.

Configuration de la carte graphique

Le noyau Linux inclus des pilotes open-source et le support de l'accélération matérielle. Cependant un pilote est requis pour utiliser OpenGL et l'accélération 2D avec X11 sans privilèges.

Commencez par identifier votre carte graphique:

$ lspci | grep -e VGA -e 3D

Ensuite, installez le pilote approprié. Vous retrouverez une liste complète des pilotes libres avec la commande:

$ pacman -Ss xf86-video

Xorg recherche automatiquement les pilotes installés:

  • S'il ne parvient pas à trouver le pilote spécifique d'un périphérique, il recherchera en premier lieu fbdev (xf86-video-fbdev).
  • Si fbdev est introuvable, il recherche vesa (xf86-video-vesa), le pilote générique qui gère un grand nombre de chipsets mais n'inclus aucune accélération 2D ou 3D.
  • Si vesa n'est pas trouvé, Xorg utilisera le pilote fourni par le noyau (voir man 4 modesetting).

Voir plus bas la liste des pilotes libres disponibles.

Vous pouvez lire les tutoriels suivants selon votre carte :

AMD-ATI Pilote libre ATI
pilote propriétaire AMD/ATI™ (catalyst)
Intel Pilote libre Intel®
nVidia Pilotes libres : Nouveau - nv
pilote propriétaire nVidia®

Configuration de l'écran

De même que le reste, ce n'est qu'une éventuelle personnalisation, l'écran étant normalement détecté directement par xorg. Ainsi, si la résolution automatiquement utilisée n'est pas celle désirée, vous pouvez créer ou modifier /etc/X11/xorg.conf.d/10-monitor.conf pour qu'il contienne :

Fichier: /etc/X11/xorg.conf.d/10-monitor.conf
Section "Monitor"
    Identifier     "Monitor0"
    Option         "PreferredMode"  "1440x900"
EndSection

Ceci dit, la résolution doit quand même être détectée. Si ce n'est pas le cas, vous pouvez utiliser cvt pour avoir le bon mode:

$ cvt 1440 900
# 1440x900 59.89 Hz (CVT 1.30MA) hsync: 55.93 kHz; pclk: 106.50 MHz
Modeline "1440x900_60.00"  106.50  1440 1528 1672 1904  900 903 909 934 -hsync +vsync

Et le rajouter au fichier :

Fichier: /etc/X11/xorg.conf.d/10-monitor.conf
Section "Monitor"
    Identifier     "Monitor0"
    Modeline       "1440x900_60.00"  106.50  1440 1528 1672 1904  900 903 909 934 -hsync +vsync
    Option         "PreferredMode"  "1440x900_60.00"
EndSection

Configuration semi-automatique (déprécié)

Attention : Cette section ne s'adresse qu'à ceux désirant configurer Xorg manuellement, sans utiliser la détection automatique par défaut.
Ce n'est nécessaire que si Xorg ne fonctionne pas sans.


Plusieurs outils sont disponibles pour générer un fichier /etc/X11/xorg.conf, et surtout n’oubliez pas de désactiver la détection automatique si vous comptez configurer la totalité de Xorg depuis ce fichier :

On désactive la configuration automatique des périphériques de saisie en rajoutant dans la section ServerFlags de /etc/X11/xorg.conf les lignes suivantes :

Section "ServerFlags"
 Option "AutoAddDevices" "false"
EndSection

Assurez-vous d'avoir préalablement installé le pilote libre de votre carte vidéo. (voir la liste plus bas)

- Lancez la commande en utilisateur root :

X -configure

Si cette commande réussit, cela créera un fichier xorg.conf.new dans le répertoire /root/

- Testez la configuration générée de cette manière :

X -config /root/xorg.conf.new

(Ctrl-Alt-BackSpace pour quitter Xorg)

- Déplacez le fichier généré dans le répertoire de configuration :

mv /root/xorg.conf.new /etc/X11/xorg.conf

Vous pouvez ensuite personnaliser ce fichier pré-rempli.

Pilotes libres

Voici la liste des pilotes libres avec leur désignation, ces pilotes font partie du projet Xorg :

Paquet Nom Site
xf86-video-amdgpu X.org amdgpu video driver
xf86-video-ati X.org ati video driver
xf86-video-dummy X.org dummy video driver
xf86-video-fbdev X.org framebuffer video driver
xf86-video-intel X.org Intel i810/i830/i915/945G/G965+ video drivers
xf86-video-nouveau Open Source 3D acceleration driver for nVidia cards
xf86-video-openchrome X.Org Openchrome drivers
xf86-video-sisusb X.org SiS USB video driver
xf86-video-vesa X.org vesa video driver Pilote générique sans accélération
xf86-video-vmware X.org vmware video driver
xf86-video-voodoo X.org 3dfx Voodoo1/Voodoo2 2D video driver
xf86-video-qxl Xorg X11 qxl video driver

Polices

Voici une sélection de paquets à installer pour avoir des belles polices bien lissées dans toutes les applis graphiques et ne plus jamais se poser de question à ce sujet.

pacman -S xorg-fonts-type1 ttf-dejavu font-bh-ttf \
          font-bitstream-speedo gsfonts sdl_ttf ttf-bitstream-vera \
          ttf-liberation \
          ttf-freefont ttf-arphic-uming ttf-baekmuk # Polices pour sites multilingue