3 votes

Différents programmes Windows se comportent différemment dans WSL2

J'utilise WSL2 sous Windows 11 avec une distribution Debian. Pour utiliser les applications graphiques, j'utilise une VcXsrv XLaunch avec le numéro d'affichage fixé à 0, plusieurs fenêtres, pas de client de démarrage, pas d'utilisation d'opengl natif, et avec le contrôle d'accès désactivé. Pour certaines applications (par exemple Paraview, Firefox), elles se comportent comme je m'y attendrais sur une machine Linux : l'icône de mon curseur ressemble à celle de GNOME, je peux mettre la fenêtre en plein écran, l'icône de la barre des tâches est ce qu'elle est censée être.

Pour d'autres applications, par exemple Eclipse, la fenêtre se comporte de manière étrange : l'icône de mon curseur est toujours à la GNOME, mais je ne peux pas déplacer la fenêtre ou la mettre en plein écran, et l'icône de la barre des tâches est un pingouin et un plus petit pingouin. Il faut également noter qu'Eclipse est exécuté via Java (je pense), et que j'obtiens également une erreur SLF4J + un avertissement GLib-GObject lorsque je le lance.

Je ne sais pas si c'est un bug de la WSL, ou si je n'ai pas installé les bons pilotes d'affichage ou quoi que ce soit, mais ça m'embête que les différentes applications GUI se comportent différemment. Quelqu'un peut-il expliquer pourquoi cela se produit, et/ou recommander une solution ?

Modifier : Je joins des captures d'écran pour montrer ce dont je parle :

Image of Eclipse IDE running via XLaunch on WSL2. Using Darkest Dark theme

Image of Firefox running via XLaunch on WSL2.

La principale chose à remarquer est que, sur la barre supérieure, l'IDE Eclipse n'a qu'un X -- il n'a pas les icônes de minimisation/plein écran. En fait, je ne peux même pas déplacer la fenêtre, elle occupe tout l'écran quoi qu'il arrive.

La fenêtre de Firefox se comporte comme n'importe quelle autre. Elle possède les icônes de fermeture/minimisation/plein écran, et je peux faire glisser la fenêtre lorsqu'elle n'est pas en mode plein écran.

Vous trouverez ci-dessous une capture d'écran des icônes qui apparaissent dans la barre des tâches :

enter image description here

Firefox utilise l'icône normale de Firefox, tandis que l'IDE Eclipse utilise le pingouin de Linux comme icône.

Il convient peut-être aussi de noter que j'ai installé Firefox sur mon système d'exploitation Windows principal, ainsi que sur WSL.

1voto

Dani Llewellyn Points 126

Windows 11 est doté de sa propre interface graphique native dans WSL2, basée sur le serveur d'affichage Wayland. Dans le monde Linux, il existe actuellement deux serveurs d'affichage couramment utilisés : Wayland, la nouvelle chose brillante qui est prévue pour l'avenir du bureau Linux, et X11, le serveur d'affichage original hérité d'UNIX.

En remplaçant l'option X11 DISPLAY variable, vous dites à toute application qui fonctionne sous X11 d'utiliser votre serveur d'affichage X11 VcXsrv, mais il existe toujours un serveur d'affichage Wayland sur WSL2 qui peut être utilisé par les applications qui le supportent.

Firefox sur Ubuntu utilise par défaut X11, sauf si vous passez outre, et utilise donc le VcXsrv attendu. Votre installation Eclipse s'exécutant via Java prend en charge Wayland et l'utilise par défaut en contournant votre configuration VcXsrv (comme indiqué par le plus petit des deux pingouins sur l'icône de la barre des tâches).

L'icône des applications GUI de WSL2 utilisant la technologie native de Microsoft (c'est-à-dire par défaut, et non via votre propre service X11) est censée afficher l'icône configurée dans la section .desktop installé dans /usr/share/applications . Si aucune icône n'est spécifiée ou s'il n'y a pas d'icône associée .desktop Windows affichera alors par défaut un grand pingouin dans la barre des tâches. Toutes les applications GUI de WSL2 utilisant la technologie Microsoft affichent un petit pingouin pour indiquer qu'elles fonctionnent dans WSL2 - c'est pourquoi vous avez deux les pingouins.

Vous avez le choix entre deux possibilités d'action :

  1. Vous pourriez utiliser la prise en charge native de l'interface graphique de WSL2 pour les applications Wayland et X11, en supprimant l'obligation de définir l'attribut DISPLAY et la nécessité d'exécuter votre propre serveur X11.
  2. Vous pourriez faire en sorte que votre environnement WSL2 pas ont la variable WAYLAND_DISPLAY et continuez à utiliser votre propre configuration X11. Vous pouvez désactiver la variable avec : unset WAYLAND_DISPLAY dans BASH.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X