---
title: Chapitre 5. Le système X Window
part: Partie I. Pour commencer
prev: books/handbook/ports
next: books/handbook/partii
showBookMenu: true
weight: 7
path: "/books/handbook/x11/"
---

[[x11]]
= Le système X Window
:doctype: book
:toc: macro
:toclevels: 1
:icons: font
:sectnums:
:sectnumlevels: 6
:sectnumoffset: 5
:partnums:
:source-highlighter: rouge
:experimental:
:images-path: books/handbook/x11/

ifdef::env-beastie[]
ifdef::backend-html5[]
:imagesdir: ../../../../images/{images-path}
endif::[]
ifndef::book[]
include::shared/authors.adoc[]
include::shared/mirrors.adoc[]
include::shared/releases.adoc[]
include::shared/attributes/attributes-{{% lang %}}.adoc[]
include::shared/{{% lang %}}/teams.adoc[]
include::shared/{{% lang %}}/mailing-lists.adoc[]
include::shared/{{% lang %}}/urls.adoc[]
toc::[]
endif::[]
ifdef::backend-pdf,backend-epub3[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]
endif::[]

ifndef::env-beastie[]
toc::[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]

[[x11-synopsis]]
== Synopsis

Une installation de FreeBSD à l'aide de bsdinstall n'installe pas automatiquement d'interface graphique. Ce chapitre décrit comment installer et configurer Xorg, qui implémente une version libre du système X Window qui est utilisé pour fournir un environnement graphique. Il décrit ensuite comme trouver et installer un environnement de bureau ou un gestionnaire de fenêtres.

[NOTE]
====
Les utilisateurs préférant une méthode d'installation qui configure automatiquement Xorg devraient à https://ghostbsd.org[GhostBSD], https://www.midnightbsd.org[MidnightBSD] or https://nomadbsd.org/[NomadBSD].
====

Pour plus d'informations sur le matériel vidéo supporté par Xorg, consultez le site Web http://www.x.org/[x.org].

Après la lecture de ce chapitre, vous connaîtrez:

* Les divers composants du système X Window et comment ils fonctionnent ensemble.
* Comment installer et configurer Xorg.
* Comment installer et configurer différents gestionnaires de fenêtres et environnements de bureau.
* Comment utiliser les polices de caractères TrueType(R) sous Xorg.
* Comment configurer votre système pour l'utilisation de procédures de connexions graphiques (XDM).

Avant de lire ce chapitre, vous devrez:

* Savoir comment installer des logiciels tiers comme décrit dans le crossref:ports[ports,Installer des applications. les logiciels pré-compilés et les logiciels portés].

[[x-understanding]]
== Terminologie

Alors qu'il n'est pas nécessaire de comprendre tout le détail des divers composants du système X Window, ni comment ils interagissent entre eux, une certaine connaissance de base de ces composants peut être utile.

Le serveur X::
X a été conçu dès le départ centré autour du réseau, et adopte un modèle "client-serveur". Dans ce modèle, le "serveur X" tourne sur l'ordinateur sur lequel sont branchés le clavier, le moniteur et la souris. Le serveur est responsable de tâches telles que la gestion de l'affichage, des entrées en provenance du clavier et de la souris, et les entrées ou sorties d'autres périphériques comme une tablette ou un vidéo-projecteur. Cela jette le trouble chez certaines personnes, parce que la terminologie X est exactement le contraire de ce à quoi ils s'attendent. Ils s'attendent à ce que le "serveur X" soit la grosse machine puissante au fond du couloir, et que le "client X" soit a machine sur leur bureau.

Le client X::
Chaque application X, comme XTerm ou Firefox est un "client". Un client envoie des messages au serveur comme "Dessine une fenêtre aux coordonnées suivantes", et le serveur renvoie au client des messages du type "L'utilisateur vient de cliquer sur le bouton OK".
+
A la maison ou dans un petit bureau, le serveur X et les clients X tourneront en général sur le même ordinateur. Il est également possible de faire tourner le serveur X sur un ordinateur moins puissant et d'exécuter les applications X sur un système plus puissant. Dans ce scénario, la communication entre le client X et le serveur se fera par l'intermédiaire du réseau.

Le gestionnaire de fenêtres::
X n'essaye pas de dicter quel aspect doivent avoir les fenêtres à l'écran, comment les déplacer avec la souris, quelles combinaisons de touches devraient être utilisées pour passer de l'une à l'autre, comment devraient être les barres de titres de chaque fenêtre, etc. Au lieu de cela, X délègue cette responsabilité à une application séparée, le gestionnaire de fenêtres ("window manager"). Il existe des http://www.xwinman.org/[douzaines de gestionnaires de fenêtres] disponibles. Chaque gestionnaire de fenêtres propose une apparence et une prise en mains différentes: certains supportent les bureaux virtuels, d'autres permettent de personnaliser les combinaisons de touches pour la gestion du bureau, certains ont un bouton "Démarrer", et certains permettent d'utiliser des thèmes, pour un changement complet d'apparence et de prise en main du bureau. Les gestionnaires de fenêtres sont disponibles dans la catégorie [.filename]#x11-wm# du catalogue des logiciels portés.
+
Chaque gestionnaire de fenêtre utilise un mécanisme de configuration propre. Certains demandent un fichier de configuration écrit à la main, alors que d'autres disposent d'outils graphiques pour la plupart des tâches de configuration.

Environnement de bureau::
KDE et GNOME sont considérés comme des environnements de bureau car ils intègrent une suite complète d'applications pour effectuer les tâches classiques d'un bureau informatique. Ils peuvent disposer de suites bureautiques, de navigateurs Web, ou encore de jeux.

Politique de focus::
Le gestionnaire de fenêtres est responsable de la politique ou stratégie de focus de la souris. Cette politique offre plusieurs méthodes pour choisir quelle fenêtre doit recevoir les frappes au clavier et comment indiquer visuellement la fenêtre actuellement active.
+
Une des politiques de focus est appelée "click-to-focus" ("cliquer pour obtenir le focus"). Dans ce mode, une fenêtre devient active quand elle reçoit un clic de la souris. Dans le mode "focus-follows-mouse" ("le focus suit la souris"), la fenêtre qui est sous le pointeur de la souris est la fenêtre qui a le focus et le focus est modifié en pointant sur une autre fenêtre. Si la souris est sur la fenêtre racine (ou fond d'écran), alors cette fenêtre a le focus. Dans le mode "sloppy-focus" ("focus relâché"), si la souris est déplacée sur la fenêtre racine, la dernière fenêtre à avoir eu le focus le conserve. Avec le mode focus relâché, le focus n'est modifié que si le pointeur passe sur une nouvelle fenêtre, et non pas quand il quitte la fenêtre actuelle. Dans la politique "click-to-focus", la fenêtre active est sélectionnée par un clic de la souris. La fenêtre peut être remontée au premier plan au-dessus des autres fenêtres. Toutes les frappes au clavier seront désormais dirigées vers cette fenêtre, même si le curseur est déplacé vers une autre fenêtre.
+
Les différents gestionnaires de fenêtres supportent différents modes pour le focus. Tous supportent le clic pour obtenir le focus, et une grande majorité supporte également d'autres politiques. Consultez la documentation du gestionnaire de fenêtres pour déterminer quels modes sont disponibles.

widgets - Eléments graphiques::
Widget est un terme pour désigner tous les éléments de l'interface utilisateur qui peuvent être cliqués ou manipulés d'une façon ou d'une autre. Cela comprend les boutons, les boîtes à cocher, les boutons radio, les icônes et les listes. Une boîte à outils de widgets est un ensemble d'éléments graphiques utilisés afin de créer des applications graphiques. Il existe de nombreuses boîtes à outils d'éléments graphiques populaires comme Qt, utilisée par KDE, et GTK+, utilisée par GNOME. Cela aura pour conséquence pour les applications de présenter une apparence et une prise en main différente en fonction de la famille d'éléments graphiques utilisée pour créer ces applications.

[[x-install]]
== Installer X11

Sous FreeBSD, Xorg peut être installé à l'aide soit d'un paquet précompilé soit d'un logiciel porté.

Le paquet pré-compilé peut être installé rapidement mais avec moins d'options de personnalisation:

[source,shell]
....
# pkg install xorg
....

Pour compiler et installer à partir du catalogue des logiciels portés:

[source,shell]
....
# cd /usr/ports/x11/xorg
# make install clean
....

Chacune de ces deux méthodes d'installation installera une version complète d'Xorg. La version en paquets pré-compilés reste la meilleure option pour la plupart des utilisateurs.

Une plus petite version du système X adaptée aux utilisateurs expérimentés est disponible dans le paquet package:x11/xorg-minimal[]. La plupart des documentations, des bibliothèques, et des applications ne sera pas installée. Certaines applications ont besoin de ces composants additionnels pour fonctionner.

[[x-config]]
== Configuration d'Xorg

[[x-config-quick-start]]
=== Démarrage rapide

Xorg supporte les cartes graphiques, les claviers et les périphériques de pointage les plus courants.

[TIP]
====
Les cartes graphiques, moniteurs et périphériques d'entrée sont détectés automatiquement. Ne créez pas de fichier [.filename]#xorg.conf# ou n'utilisez pas l'option `-configure` en dehors d'un échec de la configuration automatique.
====


[.procedure]
. Si Xorg a déjà été utilisé sur cet ordinateur avant, déplacez ou supprimez les fichiers existants:
+
[source,shell]
....
# mv /etc/X11/xorg.conf ~/xorg.conf.etc
# mv /usr/local/etc/X11/xorg.conf ~/xorg.conf.localetc
....

. Ajouter au groupe `video` ou `wheel` l'utilisateur qui exécutera Xorg pour activer l'accélération 3D quand elle est disponible. Pour ajouter l'utilisateur _jru_ aux groupes disponibles:
+
[source,shell]
....
# pw groupmod video -m jru || pw groupmod wheel -m jru
....

. Le gestionnaire de fenêtres twm est inclu par défaut. Il est lancé quand Xorg démarre:
+
[source,shell]
....
% startx
....

. Sur certaines anciennes versions de FreeBSD, la console système doit être configurée en man:vt[4] avant que le retour à la console texte puisse correctement fonctionner. Consultez <<x-config-kms>>.

[[x-config-user-group]]
=== Groupe utilisateur pour l'accélération graphique

L'accès à [.filename]#/dev/dri# est nécessaire pour autoriser l'accélération 3D sur les cartes graphiques. Il est en général plus simple d'ajouter l'utilisateur qui exécutera X soit au groupe `video` soit au groupe `wheel`. Ici, man:pw[8] est utilisé pour ajouter l'utilisateur _slurms_ au groupe `video`, ou au groupe `wheel` s'il n'y a pas de groupe `video`:

[source,shell]
....
# pw groupmod video -m slurms || pw groupmod wheel -m slurms
....

[[x-config-kms]]
=== Kernel Mode Setting (KMS)

Quand l'ordinateur bascule de l'affichage sur la console vers une définition d'écran plus haute pour X, il doit fixer le _mode_ de sortie graphique. Les versions récentes de Xorg utilisent un système présent dans le noyau pour effectuer ces changements de manière la plus efficace. Les anciennes versions de FreeBSD utilisent man:sc[4] qui n'a pas connaissance du système KMS. La conséquence est qu'après avoir fermé X, l'affichage de la console système sera vide même si elle reste fonctionnelle. La nouvelle console man:vt[4] évite ce problème.

Ajoutez la ligne suivante au fichier [.filename]#/boot/loader.conf# pour activer man:vt[4]:

[.programlisting]
....
kern.vty=vt
....

[[x-config-files]]
=== Fichiers de configuration

Une configuration manuelle n'est généralement pas nécessaire. Ne créez pas de fichiers de configuration à la main à moins que la configuration automatique ne fonctionne pas.

[[x-config-files-directory]]
==== Répertoire

Xorg recherche ses fichiers de configuration dans plusieurs répertoires. [.filename]#/usr/local/etc/X11/# est le répertoire recommandé pour ces fichiers sous FreeBSD. L'utilisation de ce répertoire permet de conserver une séparation entre les fichiers des applications et ceux du système d'exploitation.

Stocker les fichiers de configuration dans le répertoire [.filename]#/etc/X11/# originel fonctionne toujours. Cependant, cela a pour conséquence de mélanger des fichiers concernant des applications avec ceux du système de base FreeBSD et n'est pas recommandé.

[[x-config-files-single-or-multi]]
==== Un seul ou plusieurs fichiers

Il est plus simple d'utiliser plusieurs fichiers qui chacun individuellement s'occupe de la configuration d'un paramètre précis plutôt qu'un seul fichier [.filename]#xorg.conf# traditionnel. Ces fichiers sont stockés dans le sous-répertoire [.filename]#xorg.conf.d/# du répertoire principal de configuration. Son chemin d'accès complet est en général [.filename]#/usr/local/etc/X11/xorg.conf.d/#.

Des exemples de ces fichiers sont présentés plus bas dans cette section.

Le fichier unique traditionnel [.filename]#xorg.conf# fonctionne toujours mais n'est ni clair ni aussi flexible que plusieurs fichiers dans le sous-répertoire [.filename]#xorg.conf.d/#.

[[x-config-video-cards]]
=== Cartes graphiques

En raison de changements effectués dans les versions récentes de FreeBSD, il est désormais possible d'utiliser les pilotes de périphériques graphiques proposés dans le catalogue des logiciels portés ou sous forme pré-compilé. Par conséquent, les utilisateurs peuvent utiliser un des pilotes disponibles à partir du logiciel package:graphics/drm-kmod[].

[[x-config-video-cards-ports]]
Intel KMS driver::
L'accélération 2D et 3D sont supportées par la plupart des cartes graphiques Intel KMS driver en provenance d'Intel.
+
Nom du pilote: `i915kms`
+
L'accélération 2D et 3D sont supportées par la plupart des anciennes cartes graphiques Radeon KMS driver en provenance d'AMD.
+
Nom du pilote: `radeonkms`
+
L'accélération 2D et 3D sont supportées par la plupart des nouvelles cartes graphiques AMD KMS driver en provenance d'AMD.
+
Nom du pilote: `amdgpu`
+
Pour information, veuillez consulter https://en.wikipedia.org/wiki/List_of_Intel_graphics_processing_units[] ou https://en.wikipedia.org/wiki/List_of_AMD_graphics_processing_units[] pour une liste des GPUs supportés.

[[x-config-video-cards-intel]]
Intel(R)::
L'accélération 3D est supportée sur la plupart des cartes graphiques Intel(R) jusqu'au Ivy Bridge (HD Graphics 2500, 4000, et P4000), y compris Iron Lake (HD Graphics) et Sandy Bridge (HD Graphics 2000).
+
Nom du pilote: `intel`
+
Pour information, consultez https://en.wikipedia.org/wiki/List_of_Intel_graphics_processing_units[].

[[x-config-video-cards-radeon]]
AMD(R) Radeon::
L'accélération 2D et 3D sont supportées par les cartes Radeon jusqu'à la série HD6000 comprise.
+
Nom du pilote: `radeon`
+
Pour information, consultez https://en.wikipedia.org/wiki/List_of_AMD_graphics_processing_units[].

[[x-config-video-cards-nvidia]]
NVIDIA::
Plusieurs pilotes NVIDIA sont disponibles dans la catégorie [.filename]#x11# du catalogue des logiciels portés. Installez le pilote correspondant à la carte graphique.
+
Pour information, consultez https://en.wikipedia.org/wiki/List_of_Nvidia_graphics_processing_units[].

[[x-config-video-cards-hybrid]]
Configuration graphique hybride::
Certains ordinateurs portables ont un processeur graphique supplémentaire en plus de celui intégré dans le chipset ou le microprocesseur. Le système _Optimus_ combine du matériel Intel(R) et NVIDIA. Les _systèmes graphiques sélectionnables_ ou _systèmes graphiques hybrides_ sont la combinaison d'un processeur Intel(R) ou AMD(R) et d'un GPU AMD(R) Radeon.
+
L'implémentation de ces systèmes graphiques hybrides varie, et Xorg sous FreeBSD n'est pas en mesure de faire fonctionner toutes les versions.
+
Certains ordinateurs fournissent une option du BIOS pour désactiver une de ces cartes graphiques ou pour sélectionner un mode _discret_ qui peut être utilisé avec un des pilotes graphiques standard. Par exemple, il est parfois possible de désactiver le GPU NVIDIA dans un système Optimus. La partie graphique Intel(R) peut alors être utilisée avec un pilote Intel(R).
+
Les paramètres du BIOS dépendent du modèle d'ordinateur. Dans certaines situations, les deux GPU peuvent être laissés actifs, mais la création d'un fichier de configuration utilisant seulement le GPU principal dans la partie `Device` est suffisant pour qu'un tel système fonctionne.
[[x-config-video-cards-other]]
Autres cartes graphiques::
Les pilotes pour les cartes graphiques moins courantes peuvent être trouvés dans la catégorie [.filename]#x11-drivers# du catalogue des logiciels portés.
+
Les cartes qui ne sont pas supportées par un pilote précis pourront toujours être utilisables avec le pilote package:x11-drivers/xf86-video-vesa[]. Ce pilote est installé par package:x11/xorg[]. Il peut également être installé manuellement en tant que package:x11-drivers/xf86-video-vesa[]. Xorg tente d'utiliser ce pilote quand un pilote spécifique à la carte graphique n'est pas trouvé.
+
package:x11-drivers/xf86-video-scfb[] est un pilote graphique non-spécifique qui fonctionne sur de nombreux ordinateurs UEFI et ARM(R).

[[x-config-video-cards-file]]
Configuration du pilote graphique dans un fichier::
Pour configurer le pilote Intel(R) dans un fichier de configuration:
+
[[x-config-video-cards-file-intel]]
.Sélection du pilote graphique Intel(R) à l'aide d'un fichier
[example]
====
[.filename]#/usr/local/etc/X11/xorg.conf.d/driver-intel.conf#

[.programlisting]
....
Section "Device"
	Identifier "Card0"
	Driver     "intel"
	# BusID    "PCI:1:0:0"
EndSection
....

Si plus d'une carte graphique est présente, l'identifiant `BusID` peut être décommenté et paramétré pour sélectionné la carte désirée. Une liste des IDs des cartes graphiques peut être obtenu avec `pciconf -lv | grep -B3 display`.
====
+
Pour configurer le pilote Radeon dans un fichier de configuration:
+
[[x-config-video-cards-file-radeon]]
.Sélection du pilote graphique Radeon à l'aide d'un fichier
[example]
====
[.filename]#/usr/local/etc/X11/xorg.conf.d/driver-radeon.conf#

[.programlisting]
....
Section "Device"
	Identifier "Card0"
	Driver     "radeon"
EndSection
....

====
+
Pour configurer le pilote VESA dans un fichier de configuration:
+
[[x-config-video-cards-file-vesa]]
.Sélection du pilote graphique VESA à l'aide d'un fichier
[example]
====
[.filename]#/usr/local/etc/X11/xorg.conf.d/driver-vesa.conf#

[.programlisting]
....
Section "Device"
	Identifier "Card0"
	Driver     "vesa"
EndSection
....

====
+
Pour configurer le pilote `scfb` pour une utilisation avec un ordinateur UEFI ou ARM(R):
+
[[x-config-video-cards-file-scfb]]
.Sélection du pilote graphique `scfb` à l'aide d'un fichier
[example]
====
[.filename]#/usr/local/etc/X11/xorg.conf.d/driver-scfb.conf#

[.programlisting]
....
Section "Device"
	Identifier "Card0"
	Driver     "scfb"
EndSection
....

====

[[x-config-monitors]]
=== Moniteurs

Presque tous les moniteurs supportent la norme _Extended Display Identification Data_ (EDID). Xorg utilise EDID pour communiquer avec le moniteur et détecter les définitions et les taux de rafraichissement supportés. Ensuite, il sélectionne la combinaison de paramètres la plus adaptée pour le moniteur.

Les autres définitions supportées par le moniteur peuvent être sélectionnées en indiquant celle désirée dans les fichiers de configuration, ou à l'aide de man:xrandr[1] après avoir lancé le serveur X.

[[x-config-monitors-xrandr]]
Utilisation de man:xrandr[1]::
Exécutez man:xrandr[1] sans aucun paramètre pour voir la liste des sorties vidéos et des modes détectés du moniteur:
+
[source,shell]
....
% xrandr
Screen 0: minimum 320 x 200, current 3000 x 1920, maximum 8192 x 8192
DVI-0 connected primary 1920x1200+1080+0 (normal left inverted right x axis y axis) 495mm x 310mm
   1920x1200     59.95*+
   1600x1200     60.00
   1280x1024     85.02    75.02    60.02
   1280x960      60.00
   1152x864      75.00
   1024x768      85.00    75.08    70.07    60.00
   832x624       74.55
   800x600       75.00    60.32
   640x480       75.00    60.00
   720x400       70.08
DisplayPort-0 disconnected (normal left inverted right x axis y axis)
HDMI-0 disconnected (normal left inverted right x axis y axis)
....
+
Ceci montre que la sortie `DVI-0` est utilisée actuellement pour afficher une définition d'écran de 1920x1200 pixels à une fréquence de rafraichissement d'environ 60 Hz. Il n'y a pas de moniteur branché aux connecteurs `DisplayPort-0` et `HDMI-0`.
+
N'importe quel autre mode d'affichage peut être choisi avec man:xrandr[1]. Par exemple, pour basculer sur 1280x1024 à 60 Hz:
+
[source,shell]
....
% xrandr --mode 1280x1024 --rate 60
....
+
Une opération courante est d'utiliser une sortie vidéo externe sur un ordinateur portable pour un vidéo-projecteur.
+
Le type et le nombre de connecteurs de sortie varient en fonction des systèmes, et le nom donné à chaque sortie varie d'un pilote graphique à l'autre. Ce qu'un pilote appelle `HDMI-1`, un autre l'appellera `HDMI1`. Aussi la première chose à faire est de lancer man:xrandr[1] pour lister toutes les sorties disponibles.
+
[source,shell]
....
% xrandr
Screen 0: minimum 320 x 200, current 1366 x 768, maximum 8192 x 8192
LVDS1 connected 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 193mm
   1366x768      60.04*+
   1024x768      60.00
   800x600       60.32    56.25
   640x480       59.94
VGA1 connected (normal left inverted right x axis y axis)
   1280x1024     60.02 +  75.02
   1280x960      60.00
   1152x864      75.00
   1024x768      75.08    70.07    60.00
   832x624       74.55
   800x600       72.19    75.00    60.32    56.25
   640x480       75.00    72.81    66.67    60.00
   720x400       70.08
HDMI1 disconnected (normal left inverted right x axis y axis)
DP1 disconnected (normal left inverted right x axis y axis)
....
+
Quatre sorties ont été trouvées: l'écran intégré `LVDS1`, et les connecteurs externes `VGA1`, `HDMI1`, et `DP1`.
+
Le projecteur a été connecté à la sortie `VGA1`. man:xrandr[1] est maintenant utilisé pour régler cette sortie sur la définition native de ce vidéo-projecteur et pour ajouter l'espace d'affichage supplémentaire à droite du bureau:
+
[source,shell]
....
% xrandr --output VGA1 --auto --right-of LVDS1
....
+
Le paramètre `--auto` sélectionne la définition et le taux de rafraichissement détecté par EDID. Si la définition n'est pas correctement détectée, une valeur définie peut être donnée avec le paramètre `--mode` à la place de `--auto`. Par exemple, la plupart des vidéo-projecteurs acceptent une définition de 1024x768 qui est réglée avec `--mode 1024x768`.
+
man:xrandr[1] est souvent exécuté à partir de [.filename]#.xinitrc# pour régler le mode adapté quand X est lancé.

[[x-config-monitors-files]]
Configuration de la définition du moniteur dans un fichier::
Pour configurer la définition de l'écran à 1024x768 dans un fichier de configuration:
+
.Sélection de la définition d'écran à l'aide d'un fichier
[example]
====
[.filename]#/usr/local/etc/X11/xorg.conf.d/screen-resolution.conf#

[.programlisting]
....
Section "Screen"
	Identifier "Screen0"
	Device     "Card0"
	SubSection "Display"
	Modes      "1024x768"
	EndSubSection
EndSection
....

====
+
Les quelques moniteurs ne supportant pas l'EDID peuvent être configurés en paramétrant `HorizSync` et `VertRefresh` avec les plages de fréquences supportées par le moniteur.
+
.Configuration manuelle des fréquences du moniteur
[example]
====
[.filename]#/usr/local/etc/X11/xorg.conf.d/monitor0-freq.conf#

[.programlisting]
....
Section "Monitor"
	Identifier   "Monitor0"
	HorizSync    30-83   # kHz
	VertRefresh  50-76   # Hz
EndSection
....

====

[[x-config-input]]
=== Périphériques d'entrée

[[x-config-input-keyboard]]
==== Claviers

[[x-config-input-keyboard-layout]]
Disposition des touches de clavier::
L'emplacement normalisé des touches d'un clavier est appelé _disposition_ (_layout_). Les dispositions et d'autres paramètres réglables sont listés dans la page de manuel man:xkeyboard-config[7].
+
Une disposition des touches américaine est celle utilisée par défaut. Pour sélectionner une disposition différente, configurez les options `XkbLayout` et `XkbVariant` dans une section `InputClass`. Cette configuration sera appliquée à tous les périphériques d'entrée qui correspondent à cette classe.
+
Cet exemple sélectionne une disposition de touches française.
+
.Configuration d'une disposition des touches de clavier
[example]
====
[.filename]#/usr/local/etc/X11/xorg.conf.d/keyboard-fr.conf#

[.programlisting]
....
Section	"InputClass"
	Identifier	"KeyboardDefaults"
	MatchIsKeyboard	"on"
	Option		"XkbLayout" "fr"
EndSection
....

====
+
.Configuration de plusieurs dispositions des touches
[example]
====
Configuration des dispositions américaine, espagnole et ukrainienne. Le passage de l'une à l'autre de ces dispositions se fait en appuyant sur kbd[Alt+Shift]. package:x11/xxkb[] ou package:x11/sbxkb[] peuvent être utilisés pour un contrôle de la sélection de la disposition des touches amélioré et pour avoir des indicateurs de la disposition en cours d'utilisation.

[.filename]#/usr/local/etc/X11/xorg.conf.d/kbd-layout-multi.conf#

[.programlisting]
....
Section	"InputClass"
	Identifier	"All Keyboards"
	MatchIsKeyboard	"yes"
	Option		"XkbLayout" "us, es, ua"
EndSection
....

====
[[x-config-input-keyboard-zap]]
Quitter Xorg à partir du clavier::
X peut être fermé à partir d'une combinaison de touches. Par défaut, cette combinaison n'est pas définie car elle entre en conflit avec les commandes passées au clavier pour certaines applications. L'activation de cette option nécessite d'effectuer des modifications à la section `InputDevice` du clavier:
+
.Activation de la sortie d'X à l'aide du clavier
[example]
====
[.filename]#/usr/local/etc/X11/xorg.conf.d/keyboard-zap.conf#

[.programlisting]
....
Section	"InputClass"
	Identifier	"KeyboardDefaults"
	MatchIsKeyboard	"on"
	Option		"XkbOptions" "terminate:ctrl_alt_bksp"
EndSection
....

====

[[x11-input-mice]]
==== Souris et périphériques de pointage

[IMPORTANT]
====
Si vous utilisez package:xorg-server[] 1.20.8 ou les versions suivantes sous FreeBSD {rel121-current} et que vous n'utilisez pas man:moused[8], ajoutez la ligne `kern.evdev.rcpt_mask=12` au fichier [.filename]#/etc/sysctl.conf#.
====

Plusieurs paramètres de la souris peuvent être réglés avec les options de configuration. Consultez la page de manuel man:mousedrv[4] pour une liste complète.
[[x11-input-mice-buttons]]
Butons de la souris::
Le nombre de boutons d'une souris peut être configuré dans la section `InputDevice` du fichier [.filename]#xorg.conf#. Pour fixer le nombre de boutons à 7:
+
.Réglage du nombre de boutons de la souris
[example]
====
[.filename]#/usr/local/etc/X11/xorg.conf.d/mouse0-buttons.conf#

[.programlisting]
....
Section "InputDevice"
	Identifier  "Mouse0"
	Option      "Buttons" "7"
EndSection
....

====

[[x-config-manual-configuration]]
=== Configuration manuelle

Dans certains cas, la configuration automatique d'Xorg ne fonctionne pas avec un matériel spécifique, ou une configuration différente est recherchée. Pour ces cas, un fichier de configuration personnalisé peut être créé.

[WARNING]
====
Ne créez pas de fichiers de configuration à la main à moins que cela ne soit nécessaire. Une configuration inadaptée peut empêcher un fonctionnement correct.
====

Un fichier de configuration basé sur le matériel détecté peut être généré par Xorg. Ce fichier est un point de départ utile pour une configuration personnalisée.

Génération d'un fichier [.filename]#xorg.conf#:

[source,shell]
....
# Xorg -configure
....

Le fichier de configuration est enregistré sous [.filename]#/root/xorg.conf.new#. Effectuez les modifications désirées, puis tester ce fichier (avec l'option `-retro` de manière à avoir un fond d'écran visible) avec:

[source,shell]
....
# Xorg -retro -config /root/xorg.conf.new
....

Une fois que la nouvelle configuration a été ajustée et testée, elle peut être divisée en plus petits fichiers dans les emplacements habituels, [.filename]#/usr/local/etc/X11/xorg.conf.d/#.

[[x-fonts]]
== Utilisation des polices de caractères sous Xorg

[[type1]]
=== Polices de caractères Type1

Les polices de caractères livrées par défaut avec Xorg sont loin d'être idéales pour des applications de type publication. Les grandes polices utilisées pour les présentations présentent un aspect en escalier et peu professionnel, et les petites polices sont presque complètement illisibles. Cependant, il existe de nombreuses polices Type1 (PostScript(R)) gratuites, de hautes qualités qui peuvent être aisément utilisées avec Xorg.. Par exemple, la collection de polices de caractères URW (package:x11-fonts/urwfonts[]) comprend une version haute qualité des polices de caractères standards type1 (Times Roman(TM), Helvetica(TM), Palatino(TM) et autres). La collection Freefonts (package:x11-fonts/freefonts[]) comprend beaucoup plus de polices de caractères, mais la plupart d'entre elles sont destinées à être utilisées avec des logiciels graphiques comme Gimp, et ne sont pas suffisamment complètes pour servir de polices de caractères d'affichage. De plus Xorg peut être configuré pour utiliser les polices de caractères TrueType(R) avec un minimum d'effort. Pour plus de détails à ce sujet, consultez la page de manuel man:X[7] ou la section <<truetype>>.

Pour installer les collections de polices de caractères Type1 précédentes à partir des paquets binaires, lancez les commandes suivantes:

[source,shell]
....
# pkg install urwfonts
....

Pour les compiler à partir du catalogue des logiciels portés, lancez les commandes suivantes:

[source,shell]
....
# cd /usr/ports/x11-fonts/urwfonts
# make install clean
....

Et de même pour la collection Freefont ou d'autres. Pour que le serveur X détecte ces polices, ajoutez une ligne appropriée au fichier de configuration du serveur X ([.filename]#/etc/X11/xorg.conf#), du type:

[.programlisting]
....
FontPath "/usr/local/share/fonts/URW/"
....

Autre possibilité, en ligne de commande dans une session X lancez:

[source,shell]
....
% xset fp+ /usr/local/share/fonts/urwfonts
% xset fp rehash
....

Cela fonctionnera mais la configuration sera perdue quand la session X sera fermée, à moins de l'ajouter dans le fichier de démarrage ([.filename]#~/.xinitrc# pour une session `startx` classique, ou dans [.filename]#~/.xsession# quand on s'attache au système par l'intermédiaire d'un gestionnaire de session graphique comme XDM). Une troisième méthode est d'utiliser le nouveau fichier [.filename]#/usr/local/etc/fonts/local.conf#: comme montré dans la section <<antialias>>.

[[truetype]]
=== Polices de caractères TrueType(R)

Xorg dispose d'un support intégré pour le rendu des polices TrueType(R). Il y a deux différents modules qui peuvent activer cette fonctionnalité. Le module freetype est utilisé dans cet exemple parce qu'il est plus compatible avec les autres moteurs de rendu des polices de caractères. Pour activer le module freetype ajoutez juste la ligne suivante dans la section `"Module"` du fichier [.filename]#/etc/X11/xorg.conf#.

[.programlisting]
....
Load  "freetype"
....

Maintenant créez un répertoire pour les polices TrueType(R) (par exemple [.filename]#/usr/local/share/fonts/TrueType#) et copiez toutes les polices TrueType(R) dans ce répertoire. Gardez à l'esprit que les polices TrueType(R) ne peuvent être directement prises d'un Apple(R) Mac(R); elles doivent être dans un format UNIX(R)/MS-DOS(R)/Windows(R) pour être utilisées sous Xorg. Une fois les fichiers copiés dans ce répertoire, utilisez mkfontscale pour créer un fichier [.filename]#fonts.dir#, de façon à ce que le moteur d'affichage des polices d'X sache que de nouveaux fichiers ont été installés. mkfontscale peut être installé à partir d'un paquet binaire:

[source,shell]
....
# pkg install mkfontscale
....

Puis créez un index des polices de caractères pour X dans le répertoire:

[source,shell]
....
# cd /usr/local/share/fonts/TrueType
# mkfontscale
....

Maintenant ajoutez le répertoire des polices TrueType(R) au chemin des polices de caractères. Cela est identique à ce qui est décrit dans la section <<type1>>:

[source,shell]
....
% xset fp+ /usr/local/share/fonts/TrueType
% xset fp rehash
....

ou ajouter une ligne `FontPath` au fichier [.filename]#xorg.conf#.

Désormais Gimp, LibreOffice, et toutes les autres applications X devraient maintenant reconnaître les polices de caractères TrueType(R) installées. Les polices très petites (comme le texte de page web visualisé sur un écran haute résolution) et les très grandes polices (dans LibreOffice) auront un rendu bien meilleur maintenant.

[[antialias]]
=== Polices de caractères anticrénelage

Toutes les polices de caractères sous Xorg se trouvant dans les répertoires [.filename]#/usr/local/share/fonts/# et [.filename]#~/.fonts/# sont automatiquement disponibles pour l'anticrénelage avec les applications compatibles Xft. La plupart des application sont compatibles Xft, comme KDE, GNOME, et Firefox.

Afin de contrôler quelles polices de caractères sont anticrénelées, ou pour configurer les propriétés de l'anticrénelage, créez (ou éditez, s'il existe déjà) le fichier [.filename]#/usr/local/etc/fonts/local.conf#. Plusieurs caractéristiques avancées du système de fontes Xft peuvent être ajustées par l'intermédiaire de ce fichier; cette section ne décrit que des possibilités simples. Pour plus de détails, consultez la page de manuel man:fonts-conf[5].

Ce fichier doit être dans le format XML. Faites attention à la casse des caractères, et assurez-vous que toutes les balises sont correctement fermées. Le fichier débute avec l'entête XML classique suivie par une définition DOCTYPE, puis de la balise `fontconfig`:

[.programlisting]
....
	?xml version="1.0"?
	!DOCTYPE fontconfig SYSTEM "fonts.dtd"
	fontconfig
....

Comme précisé précédemment, l'ensemble des polices de caractères du répertoire [.filename]#/usr/local/share/fonts/# comme du répertoire [.filename]#~/.fonts/# sont disponibles pour les applications compatibles Xft. Si vous désirez ajouter un autre répertoire en dehors des ces deux là, ajoutez une ligne similaire à la suivante au fichier [.filename]#/usr/local/etc/fonts/local.conf#:

[.programlisting]
....
dir/chemin/vers/mes/fontes/dir
....

Après l'ajout de nouvelles polices, et tout particulièrement de nouveaux répertoires de polices, vous devrez exécuter la commande suivante pour reconstituer le cache des polices de caractères:

[source,shell]
....
# fc-cache -f
....

L'anticrénelage rend les bords légèrement flous, ce qui rend le texte très petit plus lisible et enlève l'effet "d'escalier" des grands textes, mais peut provoquer une fatigue visuelle si c'est appliqué au texte de taille normale. Pour exclure les tailles de polices inférieures à 14 points de l'anticrénelage, ajoutez ces lignes:

[.programlisting]
....
	 match target="font"
	  test name="size" compare="less"
		double14/double
	  /test
	  edit name="antialias" mode="assign"
		boolfalse/bool
	  /edit
	/match
	match target="font"
	  test name="pixelsize" compare="less" qual="any"
		double14/double
	  /test
	  edit mode="assign" name="antialias"
		boolfalse/bool
	  /edit
	/match
....

L'espacement pour certaines polices de caractères à chasse fixe peut également être inapproprié avec l'anticrénelage. Cela semble être un problème avec KDE, en particulier. Une solution possible pour cela est de forcer l'espacement pour de telles polices de caractères à 100. Ajoutez les lignes suivantes:

[.programlisting]
....
	 match target="pattern" name="family"
	  test qual="any" name="family"
	    stringfixed/string
	  /test
	  edit name="family" mode="assign"
	    stringmono/string
	  /edit
	/match
	match target="pattern" name="family"
	  test qual="any" name="family"
	    stringconsole/string
	  /test
	  edit name="family" mode="assign"
	    stringmono/string
	  /edit
	/match
....

(ceci ajoute un alias `"mono"` pour les autres noms communs des polices de caractères fixes), puis ajoutez:

[.programlisting]
....
	 match target="pattern" name="family"
	  test qual="any" name="family"
	    stringmono/string
	  /test
	  edit name="spacing" mode="assign"
	    int100/int
	  /edit
	/match
....

Certaines polices de caractères, comme Helvetica, peuvent présenter des problèmes lors de l'anticrénelage. Généralement cela se manifeste par l'impression que la fonte semble coupée en deux verticalement. Au pire cela peut provoquer des crashs avec certaines applications. Pour éviter cela, pensez à ajouter ce qui suit au fichier [.filename]#local.conf#:

[.programlisting]
....
	 match target="pattern" name="family"
	  test qual="any" name="family"
	    stringHelvetica/string
	  /test
	  edit name="family" mode="assign"
	    stringsans-serif/string
	  /edit
	/match
....

Une fois l'édition de [.filename]#local.conf# achevée, assurez-vous que le fichier se termine par la balise `/fontconfig`. Si ce n'est pas le cas, tous vos changements seront ignorés.

Les utilisateurs peuvent ajouter leurs propres paramètres par l'intermédiaire de leur propre fichier [.filename]#~/.config/fontconfig/fonts.conf#. Ce fichier doit utiliser le même format XML décrit précédemment.

Un dernier point: avec un écran LCD, un échantillonnage "sub-pixel" peut être désiré. Fondamentalement, ceci traite les composantes rouge, verte et bleu séparément (horizontalement séparées) pour améliorer la résolution horizontale; les résultats peuvent être dramatiques. Pour activer cela, ajoutez quelque part dans le fichier [.filename]#local.conf# les lignes:

[.programlisting]
....
	 match target="font"
	  test qual="all" name="rgba"
	    constunknown/const
	  /test
	  edit name="rgba" mode="assign"
	    constrgb/const
	  /edit
	/match
....

[NOTE]
====
En fonction de type d'écran, le terme `rgb` pourra devoir être changé pour `bgr`, `vrgb` ou `vbgr`: expérimentez pour déterminer lequel fonctionne le mieux.
====

[[x-xdm]]
== Le gestionnaire de connexion graphique XDM

Xorg propose un gestionnaire de connexion graphique, XDM, qui peut être utilisé pour la gestion des procédures de connexion graphique. XDM fournit une interface graphique pour sélectionner à quel serveur d'affichage se connecter et entrer des informations d'autorisation d'accès comme l'ensemble identifiant et mot de passe.

Cette section montre comment configurer le gestionnaire de connexion graphique X sous FreeBSD. Certains environnements de bureau fournissent leur propre gestionnaire de connexion graphique. Se référer à la <<x11-wm-gnome>> pour des instructions sur comment configurer le gestionnaire de connexion graphique GNOME et à la <<x11-wm-kde>> pour des instructions concernant la configuration du gestionnaire de connexion graphique KDE.

=== Configurer XDM

Pour installer XDM, utilisez le logiciel porté ou la version pré-compilée package:x11/xdm[]. Une fois installé, XDM peut être configuré pour être lancé au démarrage de la machine en modifiant la ligne suivante dans [.filename]#/etc/ttys#:

[source,shell]
....
ttyv8   "/usr/local/bin/xdm -nodaemon"  xterm   off secure
....

Modifiez le `off` pour `on` et sauvegardez la modification. Le champ `ttyv8` sur cette ligne indique que XDM démarrera sur le neuvième terminal virtuel.

Le répertoire de configuration d'XDM est situé dans [.filename]#/usr/local/etc/X11/xdm#. Ce répertoire contient plusieurs fichiers utilisés pour modifier le comportement et l'apparence d'XDM, ainsi que quelques procédures et programmes utilisés pour configurer le bureau quand XDM est exécuté. <<xdm-config-files>> résume la fonction de chacun de ces fichiers. La syntaxe exacte et l'utilisation de ces fichiers sont décrites dans man:xdm[1].

[[xdm-config-files]]
.Fichiers de configuration d'XDM
[cols="1,1", frame="none", options="header"]
|===
| Fichier
| Description

|[.filename]#Xaccess#
|Le protocole utilisé pour se connecter à XDM est appelé le "X Display Manager Connection Protocol" (XDMCP). Ce fichier est un ensemble de règles d'autorisation client pour contrôler les connexions XDMCP à partir de machines distantes. Par défaut, ce fichier n'autorise pas la connexion de clients distants.

|[.filename]#Xresources#
|Ce fichier contrôle l'apparence et la prise en main du programme de sélection et d'ouverture de session XDM. La configuration par défaut est une simple fenêtre d'ouverture de session rectangulaire avec le nom de la machine hôte affiché en haut dans une grande police de caractères et avec les invites "Login:" et "Password:" en dessous. Le format de ce fichier est identique au fichier de paramètres par défaut décrit dans la documentation Xorg

|[.filename]#Xservers#
|Liste des affichages distants et locaux que le système doit proposer à l'ouverture de session.

|[.filename]#Xsession#
|Procédure d'ouverture de session par défaut qui est exécutée par XDM quand un utilisateur se connecte. Elle pointe vers une procedure personnalisée de session dans le répertoire [.filename]#~/.xsession#.

|[.filename]#Xsetup_#*
|Procédures utilisées pour lancer automatiquement des applications avant d'afficher les interfaces de sélection et d'ouverture de session. Il existe une procedure pour chaque écran utilisé, nommée [.filename]#Xsetup_*#, où `*` est le numéro local de l'écran. En général, ces procédures exécutent un ou deux programmes en tâche de fond comme `xconsole`.

|[.filename]#xdm-config#
|Configuration globale pour tous les écrans tournant sur cette machine.

|[.filename]#xdm-errors#
|Contient les erreurs générées par le programme serveur. Si une connexion qu'XDM tente d'ouvrir se bloque, examinez ce fichier pour trouver des messages d'erreur. Ces messages sont également écrits dans le fichier [.filename]#~/.xsession-errors# de l'utilisateur à chaque session.

|[.filename]#xdm-pid#
|L'identifiant, ID, du processus exécutant XDM.
|===

=== Configurer l'accès à distance

Par défaut, seuls les utilisateurs sur le même système peuvent ouvrir une session en utilisant XDM. Pour permettre aux utilisateurs d'autres système de se connecter au gestionnaire d'affichage, éditez les règles de contrôle d'accès et activez l'écoute des demandes de connexion.

Pour configurer XDM pour l'écoute des demandes de connexions distantes, commentez la ligne `DisplayManager.requestPort` dans le fichier [.filename]#/usr/local/etc/X11/xdm/xdm-config# en ajoutant un `!` devant:

[source,shell]
....
! SECURITY: do not listen for XDMCP or Chooser requests
! Comment out this line if you want to manage X terminals with xdm
DisplayManager.requestPort:     0
....

Sauvegardez et relancez XDM. Pour restreindre l'accès à distance, consultez les exemples dans [.filename]#/usr/local/etc/X11/xdm/Xaccess# ainsi que la page de manuel man:xdm[1] pour plus d'informations

[[x11-wm]]
== Environnements de bureau

Cette section décrit comment installer sur un système FreeBSD un des trois environnements de bureau populaires. Un environnement de bureau peut aller du simple gestionnaire de fenêtres jusqu'à la suite complète d'applications de bureau. Plus d'une centaine d'environnements est disponible dans la catégorie [.filename]#x11-wm# du catalogue des logiciels portés.

[[x11-wm-gnome]]
=== GNOME

GNOME est un environnement de bureau convivial. Il comprend un panneau ("panel") pour lancer des applications et afficher des états, un bureau, un ensemble d'outils et d'applications, et un ensemble de conventions qui rendent aisée la coopération et la cohérence entre applications. Plus d'informations concernant GNOME sous FreeBSD peuvent être trouvées sur https://www.FreeBSD.org/gnome[https://www.FreeBSD.org/gnome]. Le site contient de la documentation supplémentaire sur l'installation, la configuration, et l'administration de GNOME sous FreeBSD.

Cet environnement de bureau peut être installé à partir d'un paquet pré-compilé:

[source,shell]
....
# pkg install gnome3
....

Pour plutôt compiler GNOME à partir du catalogue des logiciels portés, utilisez la commande qui suit. GNOME est une application importante en taille et qui demandera un temps notable pour être compilée, et cela, même sur un ordinateur rapide.

[source,shell]
....
# cd /usr/ports/x11/gnome3
# make install clean
....

GNOME a besoin que [.filename]#/proc# soit monté. Ajoutez la ligne suivante au fichier [.filename]#/etc/fstab# pour monter ce système de fichiers automatiquement au démarrage:

[.programlisting]
....
proc           /proc       procfs  rw  0   0
....

GNOME utilise D-Bus et HAL comme bus des messages et couche d'abstraction matérielle. Ces applications sont automatiquement installées comme dépendances à GNOME. Activez-les dans [.filename]#/etc/rc.conf# pour qu'elles soient lancées au démarrage du système:

[.programlisting]
....
dbus_enable="YES"
hald_enable="YES"
....

Après l'installation, il faut configurer Xorg pour lancer GNOME. La manière la plus simple de faire cela est d'activer le gestionnaire d'affichage de GNOME, GDM, qui est installé par défaut comme élément du paquet pré-compilé ou du logiciel porté GNOME. Il peut être activé en ajoutant la ligne suivante au fichier [.filename]#/etc/rc.conf#:

[.programlisting]
....
gdm_enable="YES"
....

Il est souvent intéressant de lancer également tous les services GNOME. Pour accomplir cela, ajoutez une seconde ligne à [.filename]#/etc/rc.conf#:

[.programlisting]
....
gnome_enable="YES"
....

GDM sera lancé automatiquement au démarrage du système.

Une deuxième méthode de lancement de GNOME est de taper `startx` à partir de la ligne de commande après avoir configuré le fichier [.filename]#~/.xinitrc#. Si ce fichier existe déjà, remplacez la ligne qui lance le gestionnaire de fenêtres actuel par une qui exécute [.filename]#/usr/local/bin/gnome-session#. Si ce fichier n'existe pas, créez-le avec la commande:

[source,shell]
....
% echo "exec /usr/local/bin/gnome-session" > ~/.xinitrc
....

Une troisième méthode est d'utiliser XDM comme gestionnaire d'affichage. Dans ce cas, créez un exécutable [.filename]#~/.xsession#:

[source,shell]
....
% echo "exec /usr/local/bin/gnome-session" > ~/.xsession
....

[[x11-wm-kde]]
=== KDE

KDE est un autre environnement de bureau simple d'utilisation. Ce bureau propose une suite d'applications avec une apparence et une prise en main commune, des menus et des barres d'outils, des raccourcis clavier, des couleurs et une régionalisation standardisés, ainsi qu'un système de configuration de l'environnement centralisé. Plus d'informations sur KDE peuvent être trouvées sur http://www.kde.org/[http://www.kde.org/]. Pour des informations spécifiques à FreeBSD, consultez http://freebsd.kde.org/[http://freebsd.kde.org].

Pour installer la version pré-compilée de KDE, tapez:

[source,shell]
....
# pkg install x11/kde5
....

Pour plutôt compiler KDE à partir du catalogue des logiciels portés, utilisez la commande qui suit. L'installation du logiciel porté proposera un menu pour sélectionner quel composant à installer. KDE est une application importante en taille et qui demandera un temps notable pour être compilée, et cela, même sur un ordinateur rapide.

[source,shell]
....
# cd /usr/ports/x11/kde5
# make install clean
....

KDE a besoin que [.filename]#/proc# soit monté. Ajoutez la ligne suivante au fichier [.filename]#/etc/fstab# pour monter ce système de fichiers automatiquement au démarrage:

[.programlisting]
....
proc           /proc       procfs  rw  0   0
....

KDE utilise D-Bus et HAL comme bus des messages et couche d'abstraction matérielle. Ces applications sont automatiquement installées comme dépendances à KDE. Activez-les dans [.filename]#/etc/rc.conf# pour qu'elles soient lancées au démarrage du système:

[.programlisting]
....
dbus_enable="YES"
hald_enable="YES"
....

Depuis KDE Plasma 5, le gestionnaire d'affichage KDE, KDM, n'est plus développé. Un remplacement possible est SDDM. Pour l'installer, tapez:

[source,shell]
....
# pkg install x11/sddm
....

Ajoutez cette ligne à [.filename]#/etc/rc.conf#:

[.programlisting]
....
sddm_enable="YES"
....

Une deuxième méthode de lancement de KDE Plasma est de taper `startx` à partir de la ligne de commande. Pour que cela fonctionne, la ligne suivante est requise dans [.filename]#~/.xinitrc#:

[.programlisting]
....
exec ck-launch-session startplasma-x11
....

Une troisième méthode de lancement de KDE Plasma utilise XDM. Dans ce cas, créez un exécutable [.filename]#~/.xsession# comme indiqué:

[source,shell]
....
% echo "exec ck-launch-session startplasma-x11" > ~/.xsession
....

Une fois KDE Plasma lancée, consultez son système d'aide intégrée pour plus d'informations sur comment utiliser ses différents menus et applications.

[[x11-wm-xfce]]
=== XFce

XFce est un environnement de bureau basé sur le "toolkit" GTK+ utilisé par GNOME. Cependant, il est plus léger et offre un bureau simple, efficace et simple d'utilisation. Il est complètement configurable, dispose d'une barre principale avec des menus, des petites applications et des lanceurs d'applications, il fournit un gestionnaire de fichiers et un gestionnaire du son, et il est personnalisable avec des thèmes. Puisqu'il est rapide, léger et efficace, il est idéal pour les machines anciennes ou lentes avec des limitations en mémoire. Plus d'informations sur XFce peuvent être trouvées sur le site http://www.xfce.org/[http://www.xfce.org].

Pour installer le paquet pré-compilé de Xfce:

[source,shell]
....
# pkg install xfce
....

Alternativement, pour compiler le logiciel porté:

[source,shell]
....
# cd /usr/ports/x11-wm/xfce4
# make install clean
....

Xfce utilise D-Bus comme bus des messages. Cette application est automatiquement installée comme dépendance à Xfce. Activez-la dans [.filename]#/etc/rc.conf# pour qu'elle soit lancée au démarrage du système:

[.programlisting]
....
dbus_enable="YES"
....

Contrairement à GNOME ou KDE, Xfce ne fournit pas son propre gestionnaire de session. Afin de lancer Xfce à partir de la ligne de commande en tapant `startx`, créez d'abord le fichier [.filename]#~/.xinitrc# à l'aide de la ligne:

[source,shell]
....
% echo ". /usr/local/etc/xdg/xfce4/xinitrc" > ~/.xinitrc
....

Une méthode alternative est d'utiliser XDM. Pour configurer cette méthode, créez un exécutable [.filename]#~/.xsession#:

[source,shell]
....
% echo ". /usr/local/etc/xdg/xfce4/xinitrc" > ~/.xsession
....

[[x-compiz-fusion]]
== Installation de Compiz Fusion

Une méthode pour rendre l'utilisation d'un ordinateur plus plaisante est l'ajout de jolis effets en 3D.

L'installation du paquet binaire Compiz Fusion est simple, mais sa configuration demande quelques étapes qui ne sont pas décrites dans la documentation du logiciel porté.

[[x-compiz-video-card]]
=== Configuration du pilote nVidia FreeBSD

Les effets visuels dans l'environnement de bureau peuvent être à l'origine d'une charge non-négligeable pour la carte graphique. Pour les cartes graphiques nVidia, le pilote de périphérique propriétaire est nécessaire pour obtenir de bonnes performances. Les utilisateurs d'autres cartes graphiques peuvent sauter cette section et poursuivre avec la partie sur la configuration d'[.filename]#xorg.conf#.

Pour déterminer quel pilote nVidia est requis, consultez la extref:{faq}[FAQ à ce sujet, idp59950544].

Après avoir déterminé le pilote correct à utiliser pour votre carte, l'installation est aussi simple que d'installer n'importe quel autre paquet binaire.

Par exemple, pour installer la dernière version du pilote:

[source,shell]
....
# pkg install x11/nvidia-driver
....

Le pilote créera un module noyau, qui doit être chargé au démarrage du système. Ajoutez la ligne suivante au fichier [.filename]#/boot/loader.conf#:

[.programlisting]
....
nvidia_load="YES"
....

[NOTE]
====
Pour charger immédiatement le module noyau dans le noyau en cours d'utilisation, utilisez une commande du type `kldload nvidia`. Cependant, il a été remarqué que certaines versions d'Xorg ne fonctionnaient pas correctement si le pilote n'était pas chargé lors du démarrage du système. Après l'édition du fichier [.filename]#/boot/loader.conf#, un redémarrage est donc recommandé.
====

Avec le module noyau chargé, seul la modification d'une ligne dans [.filename]#xorg.conf# est nécessaire pour activer le pilote propriétaire:

Trouvez la ligne suivante dans [.filename]#/etc/X11/xorg.conf#:

[.programlisting]
....
Driver      "nv"
....

et modifiez-la pour:

[.programlisting]
....
Driver      "nvidia"
....

Lancez l'interface graphique comme vous en avez l'habitude, et vous devriez être accueilli par le logo nVidia. Tout devrait fonctionner comme à l'accoutumée.

[[xorg-configuration]]
=== Configuration d'xorg.conf pour les effets visuels

Pour activer Compiz Fusion, [.filename]#/etc/X11/xorg.conf# doit être modifié:

Ajoutez la section suivante pour activer les effets du compositeur:

[.programlisting]
....
Section "Extensions"
    Option         "Composite" "Enable"
EndSection
....

Recherchez la section "Screen" qui devrait être semblable à celle ci-dessous:

[.programlisting]
....
Section "Screen"
    Identifier     "Screen0"
    Device         "Card0"
    Monitor        "Monitor0"
    ...
....

et ajouter les deux lignes suivantes (après la ligne "Monitor"):

[.programlisting]
....
DefaultDepth    24
Option         "AddARGBGLXVisuals" "True"
....

Recherchez la partie "Subsection" faisant référence à la définition de l'écran que vous voulez utiliser. Par exemple, si vous voulez utiliser une définition de 1280x1024, recherchez la partie comme ci-dessous. Si la définition voulue n'apparaît nulle part, vous devrez ajouter l'entrée correspondante à la main:

[.programlisting]
....
SubSection     "Display"
    Viewport    0 0
    Modes      "1280x1024"
EndSubSection
....

Une profondeur de couleurs de 24 bits est requise pour un bureau utilisant la composition, modifiez la section précédente pour:

[.programlisting]
....
SubSection     "Display"
    Viewport    0 0
    Depth       24
    Modes      "1280x1024"
EndSubSection
....

Et enfin, vérifiez que les modules "glx" et "extmod" sont chargés dans la section "Module":

[.programlisting]
....
Section "Module"
    Load           "extmod"
    Load           "glx"
    ...
....

Ce qui précède peut être effectué automatiquement avec package:x11/nvidia-xconfig[] en exécutant (en tant que `root`):

[source,shell]
....
# nvidia-xconfig --add-argb-glx-visuals
# nvidia-xconfig --composite
# nvidia-xconfig --depth=24
....

[[compiz-fusion]]
=== Installation et configuration de Compiz Fusion

L'installation de Compiz Fusion est aussi simple que celle de n'importe quel paquet binaire:

[source,shell]
....
# pkg install x11-wm/compiz-fusion
....

Quand l'installation est achevée, lancez votre environnement de bureau et, à un terminal, entrez les commandes suivantes (sous l'utilisateur normal):

[source,shell]
....
% compiz --replace --sm-disable --ignore-desktop-hints ccp
% emerald --replace
....

Votre écran devrait clignoter quelques secondes, étant donné que votre gestionnaire de fenêtres (par exemple Metacity si vous utilisez GNOME) est remplacé par Compiz Fusion. Emerald s'occupera de la décoration des fenêtres (c'est à dire, les boutons de fermeture, de réduction, d'agrandissement, les barres de titres etc.).

Vous avez la possibilité de convertir tout cela en une procédure à exécuter automatiquement au démarrage (par exemple en l'ajoutant à "Sessions" dans le cas d'un bureau GNOME):

[.programlisting]
....
#! /bin/sh
compiz --replace --sm-disable --ignore-desktop-hints ccp 
emerald --replace
....

Sauvegardez ce fichier dans votre répertoire personnel sous le nom, par exemple, [.filename]#start-compiz# et rendez-le exécutable:

[source,shell]
....
% chmod +x ~/start-compiz
....

Utilisez ensuite l'interface graphique pour l'ajouter au menu [.guimenuitem]#Startup Programs# (situé dans [.guimenuitem]#System#, [.guimenuitem]#Preferences#, [.guimenuitem]#Sessions# dans le cas d'un environnement de bureau GNOME).

Pour sélectionner tous les effets visuels désirés et leurs paramètres, exécutez (toujours en tant qu'utilisateur normal) le programme Compiz Config Settings Manager:

[source,shell]
....
% ccsm
....

[NOTE]
====
Sous GNOME, il peut être trouvé dans le menu [.guimenuitem]#System#, puis [.guimenuitem]#Preferences#.
====

Si vous avez sélectionné "gconf support" lors de la compilation, vous pourrez également voir ces paramètres en utilisant `gconf-editor` sous `apps/compiz`.

[[compiz-troubleshooting]]
=== Dépannage de Compiz Fusion

==== J'ai installé Compiz Fusion, et après avoir lancé les commandes que vous
mentionnez, mes fenêtres n'ont plus de barre de titre et de boutons.
Qu'est-ce qui ne va pas?

Il vous manque probablement une configuration dans
[.filename]#/etc/X11/xorg.conf#.  Relisez avec attention ce fichier et
contrôlez tout particulièrement les directives `DefaultDepth` et
`AddARGBGLXVisuals`.

==== Quand j'exécute la commande pour lancer Compiz Fusion, le serveur X
plante et je retourne à la console.  Qu'est-ce qui ne va pas?

Si vous contrôlez le contenu du fichier
[.filename]#/var/log/Xorg.0.log#, vous trouverez surement des messages
d'erreur lors du démarrage de X.  Les plus courants seront:

[source,shell]
....
(EE) NVIDIA(0):     Failed to initialize the GLX module; please check in your X
(EE) NVIDIA(0):     log file that the GLX module has been loaded in your X
(EE) NVIDIA(0):     server, and that the module is the NVIDIA GLX module.  If
(EE) NVIDIA(0):     you continue to encounter problems, Please try
(EE) NVIDIA(0):     reinstalling the NVIDIA driver.
....

C'est généralement le cas quand vous mettez à jour Xorg.  Vous devrez
réinstaller le paquet package:x11/nvidia-driver[] afin que le module glx
soit compilé à nouveau.
