The Best Worst Wayland Compositor Ever Created
Un mod Minecraft permet d’exécuter un véritable compositeur Wayland dans le jeu, ouvrant des applications Linux natives (terminal, navigateur, GIMP) directement dans l’univers 3D.

SYNTHÈSE STRUCTURÉE
Un compositeur Wayland dans Minecraft : le concept
L’intervenant présente un mod Minecraft qui implémente un compositeur Wayland complet. Contrairement à une machine virtuelle, les applications tournent réellement sur le système hôte. Il précise d’emblée : « This is not a virtual machine. This is running the actual apps on your system. » Le mod permet d’ouvrir des fenêtres dans le monde Minecraft, de les déplacer, les redimensionner et interagir avec elles.
Ouverture et gestion des fenêtres dans le monde 3D
En appuyant sur V, un lanceur d’applications apparaît. L’utilisateur peut chercher une application (ex. Alacritty) et placer la fenêtre dans son inventaire comme un objet. En la posant dans le monde, elle s’affiche en 3D. L’intervenant explique : « If we go and press V, that opens the application launcher. If I search for Alacritty for a terminal, we now have a terminal window in our hotbar. » Les fenêtres peuvent être redimensionnées en attrapant leurs bords, déplacées par la barre de titre, et replacées si elles sortent de l’écran.
Saisie clavier : mode capture et gestion des touches
Le jeu capte le clavier par défaut. Pour interagir avec une fenêtre, il faut appuyer sur G pour entrer en mode capture clavier. L’intervenant précise : « If we press G on a window, that takes us into keyboard capture mode. » Un indicateur en haut à droite signale le mode actif. Pour les applications nécessitant la touche Escape (comme nvim), un second mode est disponible avec Alt+Q, qui permet d’utiliser Escape sans sortir du mode capture.
Applications multiples et fenêtres indépendantes
Chaque fenêtre est un objet distinct. Ouvrir une seconde instance d’Alacritty crée un nouvel objet fenêtre, indépendant du premier. L’intervenant illustre : « If we go and open up another version of Alacritty, now we have a second window item. This is a separate version of Alacritty. » La fermeture d’une fenêtre n’affecte pas les autres.
Fonctionnalités avancées : glisser-déposer et onglets
Le mod supporte le glisser-déposer entre applications. Par exemple, un onglet de Chromium peut être extrait pour créer une nouvelle fenêtre, et un fichier peut être glissé d’un gestionnaire de fichiers vers GIMP. L’intervenant s’étonne : « Let me show you something I did not expect to work. […] If we drag a file over to this, it actually drags the file. » Ces interactions fonctionnent comme sur un compositeur Wayland classique.
Mode compositeur (interface tabulaire)
En appuyant sur B, on bascule en mode compositeur, qui affiche toutes les fenêtres sous forme d’onglets. Ce mode offre des boutons pour redimensionner (en maintenant le clic et en bougeant la souris), déplacer les fenêtres, les masquer (bouton « hide ») ou les récupérer (bouton « give window item »). L’intervenant note que le bouton « hide » semble buggé : il cache la fenêtre dans le monde mais ne la réaffiche pas au second clic.
Mode picture-in-picture (fenêtre épinglée)
Le bouton central en mode compositeur active le mode « pin », qui épingle une fenêtre en incrustation permanente à l’écran. L’intervenant l’illustre avec humour : « You could just have subway surfers gameplay on in the background all of the time. » Une seule fenêtre peut être épinglée à la fois ; en épingler une nouvelle remplace la précédente.
Limitations techniques importantes
Le mod ne supporte pas XWayland. Les applications X11 ne fonctionnent pas directement. L’intervenant suggère des solutions de contournement : « You could do something like opening GameScope and then opening the window in that or using a LabWC or one of the other compositors that you embed inside this compositor. » De plus, le mod ne fonctionne pas avec la version Flatpak de Minecraft à cause du sandboxing. Il nécessite une version récente de glibc et xkb-common-library 1.11.0 ou ultérieur.
Utilisation sur serveur et avec VR
Le mod est côté client. Sur un serveur, chaque joueur voit ses propres fenêtres, mais pas celles des autres. L’intervenant précise : « This is a client-side mod. So it could be installed on a server and individuals on the server could interact with their own windows, but other people on the server aren’t going to be able to see your windows. » Pour la VR, le mod n’est pas officiellement supporté mais pourrait fonctionner. Les shaders sont déconseillés car ils risquent de casser l’affichage des fenêtres.
Installation et prérequis
Le mod nécessite Linux, la version 26.1.2 de Minecraft (à la date de l’enregistrement), le Fabric Mod Loader, et les paquets xkb-common-library et xkb-cli. L’intervenant donne une procédure simple : « Just download the universal jar, run the jar, installs location, and then you’re good to go. » Il recommande de signaler les bugs sur le dépôt du projet.
CONCEPTS CLÉS
- Wayland : Protocole d’affichage moderne pour Linux, remplaçant X11. Le mod implémente un compositeur Wayland complet dans Minecraft.
- Compositeur : Gestionnaire de fenêtres qui orchestre l’affichage des applications. Ici, le mod agit comme un compositeur Wayland embarqué.
- XWayland : Couche de compatibilité permettant d’exécuter des applications X11 sous Wayland. Non supporté par ce mod.
- Fabric Mod Loader : Chargeur de mods pour Minecraft, léger et flexible, utilisé par ce mod.
- glibc : Bibliothèque C GNU, nécessaire pour les appels système. Une version récente est requise.
CONCLUSION
Ce mod transforme Minecraft en un environnement de bureau fonctionnel, bien que peu pratique. L’intervenant résume l’esprit du projet : « Yes, it is not the most productive thing out there. Yes, it’s kind of a waste of time. And yes, no one’s going to like actively daily drive this. But I cannot fault someone for doing something super cool like this. » L’intérêt principal réside dans la prouesse technique et la démonstration des capacités de Wayland, plutôt que dans une utilisation productive. Pour un administrateur système, c’est une illustration fascinante de la flexibilité de Linux et de Wayland, mais aussi un rappel des limites pratiques de l’exécution d’applications dans un environnement 3D non conçu pour cela.