Environnements de bureau sous QEMU
Voici un petit tour des environnements de bureau sous Linux, et de leur fonctionnement dans des machines virtuelles.
Mode opératoire
La plate-forme de virtualisation est la suivante:
- Debian 13
- qemu
- libvirt
- virt-manager
Sur cette plate-forme, j'ai créé une série de VMs avec virt-manager, également sous Debian 13, avec les paramètres par défaut; graphiquement, cela comprend une carte graphique VirtIO et un affichage sur spice.
Pour chaque VM, je sélectionne un des environnements proposés par l'installeur.
Le redimensionnement automatique nécessite, dans virt-manager, d'aller dans Afficher -> Mettre à l'échelle l'affichage et de cocher "Ajustement automatique de la machine virtuelle à la fenêtre".
Ensuite, pour chaque environnement et display manager installé, j'examine:
- le redimensionnement automatique de l'invité quand la fenêtre de virt-manager est redimensionnée
- la gestion des écrans HiDPI (c-à-d la mise à l'échelle de l'affichage
Les environnements de bureau
GNOME
GNOME est installé en version 48, et vient avec GDM3 comme display manager. La session par défaut utilise Wayland, mais une session X11 est également disponible.
Il supporte le redimensionnement sans configuration particulière aussi bien sous Wayland que X11.
La mise à l'échelle fonctionne; les modes proposés varient selon les dimensions de la fenêtre; Wayland propose des niveaux de zoom fractionnaires sans configuration particulière. Cependant, le niveau de zoom configuré est réinitialisé à chaque fois que le bureau est redimensionné. Sous X11, les fenêtres tendent à mal s'afficher lorsque le niveau de zoom est modifié.
GNOME Flashback
Il s'agit du même GNOME (version 48 donc) avec un bureau utilisant les principes de GNOME 2. Mis à part que seul X11 est supporté, ce qui était valable pour GNOME standard le reste. GDM3 est le display manager installé par défaut avec GNOME Flashback.
Cinnamon
Cinnamon se base sur GNOME pour créer un bureau proche de celui de Windows. Il est installé en version 6.4 et utilise X11. Wayland est également disponible mais expérimental. Par défaut, lightdm est installé comme display manager.
Comme dans GNOME, le redimensionnement fonctionne sans configuration particulière, mais a quelques bugs:
- Le bureau peut planter lors d'un redimensionnement
- Lorsque la fenêtre de virt-manager est maximisée, le pointeur de la souris se désynchronise, et seule la partie supérieure gauche du bureau est accessible.
La mise à l'échelle se configure de la même manière, mais ne propose que des facteurs de zoom entiers par défaut (les facteurs fractionnels peuvent être activés via l'onglet "Paramètres" de la fenêtre de configuration de l'affichage, en tant qu'option expérimentale); comme dans GNOME, elle se réinitialise à 100% lorsque le bureau est redimensionné. Par contre, l'affichage sous X11 fonctionne parfaitement.
Le support Wayland est expérimental et déficient, notamment:
- Pas de fond d'écran
- Redimensionnement automatique non-fonctionnel
- Zoom fractionnel non-fonctionnel
Mate
Mate est un fork de GNOME 2 porté vers GTK 3. Il est installé en version 1.26, avec LightDM comme display manager; il utilise exclusivement X11 pour l'affichage.
Le redimensionnement automatique ne fonctionne pas; pour prendre en compte un redimensionnement du bureau, taper la commande suivante::
xrandr --output Virtual-1 --auto
Les préférences de l'écran permettent de configurer un facteur de zoom de 200%. Il fonctionne correctement, et à l'inverse de GNOME, persiste lors d'un redimensionnement du bureau.
KDE Plasma
Plasma est installé en version 6.3, basé sur KDE 6.13, et vient avec SDDM comme display manager. La session par défaut utilise Wayland, mais X11 est également disponible.
Le redimensionnement fonctionne sans configuration particulière.
La mise à l'échelle fonctionne. Elle se configure dans "Configuration du système", à la rubrique "Affichage & Écran". On peut la configurer par incréments de 5%, et, à l'inverse de GNOME, le paramètre n'est pas perdu lorsqu'on redimensionne l'écran.
Sous X11, il y a moins d'options pour la mise à l'échelle, et celle-ci se fait par incréments de 6.25%. Elle nécessite un redémarrage de la session pour s'appliquer, même si ce n'est pas indiqué.
C'est donc un sans faute sous Wayland.
XFCE
Xfce est installé en version 4.20, et vient avec LightDM comme display manager. La session par défaut utilise X11. Un support élémentaire de Wayland existe et la son utilisation proposée lors du login, mais le bureau ne se lancera pas du tout.
Le redimensionnement est supporté mais buggé; il faut lancer la commande suivante après chaque redimensionnement de la fenêtre pour que celui-ci soit pris en compte::
xrandr --output Virtual-1 --auto
La mise à l'échelle fonctionne plus ou moins. Dans les paramètres, aller dans "Apparence". Dans l'onglet "Paramètres", on peut configurer une mise à l'échelle 2x. Les éléments suivants ne sont cependant pas immédiatement redimensionnés:
- La fenêtre des paramètres (plus exactement sont affichage est corrompu jusqu'à ce qu'elle soit redimensionnée).
- Le menu principal, qui conserve sa taille originale et donc ne s'affiche que partiellement
- La barre de titre des fenêtres.
Dans les paramètres, la section "Affichage" permet de mettre tout l'écran à l'échelle; cependant, il est accompagné d'un décalage entre la souris de l'hôte et de l'invité (qui accélère proportionnellement au facteur d'échelle), et d'un gros agrandissement du pointeur.
Dans la section "Apparence" des paramètres, on peut aussi jouer avec un paramètre DPI personnalisé dans l'onglet "Polices"; cela n'affectera que le texte. Le menu ne sera pas redimensionné jusqu'au redémarrage de la session, mais il sera pourvu jusque là de flèches de défilement permettant d'accéder à sa totalité.
LXDE
LXDE il fonctionne sous X11, et utilise le Window Manager Openbox. lightdm est le display manager installé avec lui. Le projet est inactif et remplacé par LXQT. Il y a des paramètres d'affichage qui sembleraient pouvoir gérer le redimensionnement, mais ils se révèlent inefficaces.
La résolution ne se met pas à jour (il faut utiliser comme dans les autres cas la commande xrandr
pour l'adapter), et il n'y a pas de paramètres de mise à l'échelle.
xrandr --output Virtual-1 --auto
LXQT
LXQT vient en version 2.1.0; l'installeur propose le choix entre GDM3 et sddm pour le display manager. X11 est le système d'affichage par défaut, mais Wayland est aussi supporté.
Le redimensionnement automatique fonctionne sans configuration particulière. On peut configurer un facteur de mise à l'échelle entier ou fractionnel, non pas dans les propriétés de l'écran, mais dans celles de la session. Cependant, la session doit être redémarrée pour que le paramètre s'applique, et il ne s'applique pas au gestionnaire de fenêtres; celui-ci possède cependant des thèmes HiDPI.
Le support de wayland n'est pas installé par défaut, et nécessite d'installer le paquet lxqt-wayland-session
. La session plante cependant immédiatement.
Les Display Managers
GDM3
Il partage évidemment les caractéristiques de GNOME; pour la configuration de la mise à l'échelle, il n'y a rien de graphique; le plus simple est de configurer les moniteurs depuis une session GNOME, puis de copier le fichier $HOME/.config/monitors.xml
de cet utilisateur vers Debian-gdm (soit /var/lib/gdm/.config/monitors.xml
). La configuration ne résiste cependant pas aux redimensionnements de la fenêtre.
SDDM
SDDM est installé en version 0.21, qui supporte les écrans HiDPI. Debian l'a cependant désactivé (voir /usr/share/doc/sddm/README.Debian
). Il utilise par défaut X11; au démarrage, il utilise une résolution faible et ne réagit pas aux changements de résolution, mais il adoptera la bonne résolution au retour d'une session utilisateur.
Si une mise à l'échelle est nécessaire, créer un fichier /etc/sddm.conf
comme suit (qui bascule aussi vers Wayland, bien que ce ne soit pas nécessaire pour appliquer la mise à l'échelle)::
[General] DisplayServer=wayland GreeterEnvironment=QT_SCREEN_SCALE_FACTORS=2,QT_FONT_DPI=192
La réactivation du support HiDPI telle que documentée dans le README ne semble pas avoir d'effet.
LightDM
LightDM, comme SDDM, se lance sous X11 avec une faible résolution, puis adopte la résolution de la fenêtre au sortir d'une session; cependant, il re réagit pas aux changements de résolution.
On peu créer un fichier /etc/lightdm/slick-greeter.conf
comme suit pour gérer un écran HiDPI::
[Greeter] enable-hidpi=on
Cela peut être réalisé graphiquement dans Cinnamon, qui propose, dans le menu "Administration" -> "Ecran de connexion", d'activer le support HiDPI.
virt-viewer
Pour éviter de jouer avec les paramètres de mise à l'échelle côté invité, on peut, au lieu d'utiliser virt-manager, installer virt-viewer et le lancer avec l'option -z pour spécifier un facteur de zoom; exemple pour un zoom de 150%::
virt-viewer -z 150
Cela est particulièrement pratique lorsque la VM est accédée depuis plusieurs systèmes avec des écrans différents, ou si l'environnement choisi gère mal la mise à l'échelle. C'est aussi un moyen de réduire le nombre de pixels gérés par la carte graphique virtuelle. L'option n'existe malheureusement pas dans virt-manager.
Conclusion
La commande suivante est toujours utile pour réajuster l'écran sous X11.
xrandr --output Virtual-1 --auto
Si on a un écran HiDPI, le mieux est d'utiliser virt-viewer pour interagir avec la VM. GNOME et KDE sont les meilleurs choix (KDE si on veut gérer le HiDPI depuis l'invité), et LXQT est une très bonne option légère.
Du côté des display managers, c'est moins crucial vu qu'on y passe le moins de temps; GDM3 est le seul à gérer le redimensionnemenet dynamique, mais c'est au final assez peu important vu qu'on y passe assez peu de temps, et tous les autres sont utilisables.
tags: linux, virtualisation