URL: https://linuxfr.org/users/tarnyko/journaux/wayland-l-obsession-eternelle-du-carre-blanc Title: Wayland, l'obsession éternelle du carré blanc Authors: Tarnyko Date: 2025年03月23日T11:25:12+01:00 License: CC By-SA Tags: x11, wayland, tutoriel, bureau et pierre_ficheux Score: 36 Hello nal, Comme je reviens un peu dans le monde du [rendu graphique](https://www.youtube.com/watch?v=4MWN48V0Oac), je me suis dit que j'allais me remettre à jour sur le système d'affichage de notre OS favori. Ce qui m'avait frappé dans les [tutoriaux X de la grande époque](http://pficheux.free.fr/articles/lmf/xlib/), c'était la simplicité du tout début. Créer un carré blanc avec une barre de titre ? _Morceau de cake_ !  Alors après bizarrement, dés qu'on voulait aller plus loin, ça devenait compliqué... - Rajouter/enlever un bouton dans la barre de titre, ou plus largement discuter avec le [gestionnaire de fenêtres](https://fr.wikipedia.org/wiki/Gestionnaire_de_fen%C3%AAtres) ? -> apprendre un pavé de 500 pages sur les _Atoms_ ICCM X11. Et tester ça partout -car la moitié des _window managers_ ne respectent pas la norme et le code finira rempli de "#ifdef GNOME" (vécu 😉) ; - Afficher des widgets ? -> choisir son [toolkit](https://www.atai.org/guitool/). Et réaliser que ce faisant on n'aura plus jamais besoin de X11, car ses concepts sont tellement datés que le toolkit non seulement les wrappe, mais dessine sans utiliser les antiques Pixmaps, XFonts... dont le tutorial ci-dessus parle encore. Bon là je divulgâche : la suite ne vas pas être si différente, à la fin. Mais au début si ! Car la base système d'affichage a changé, c'est désormais **[Wayland](https://fr.wikipedia.org/wiki/Wayland)**. Et ce qui lui manque à lui, à mon sens, c'est la manière la plus courte d'arriver à ça:  ...et aussi d'ajouter des choses, car les exemples ailleurs sont "atomisés" -ils sont pas directement comparables, on n'est jamais sûr que le code concerne l'autre fonctionnalité ou juste du rendu. Eh bien justement, si j'en parle, c'est ce que j'ai le **[début de ce qu'il faut ici](https://github.com/Tarnyko/suave_code_samples/tree/master/C/wayland)**. Ça se construit en morceau de cake: # Debian/Ubuntu: #sudo apt install libwayland-dev libegl-dev libgles-dev libvulkan-dev # Fedora/RHEL: #sudo dnf install wayland-devel libglvnd-devel vulkan-loader-devel git clone https://github.com/Tarnyko/suave_code_samples cd suave_code_samples/C/wayland/ make et après par exemple: ./wayland-08-input_shell vous donnera la zolie fenêtre ci-dessus! _(le précédent n'avait pas de barre de titre et se contentait d'afficher la position de la souris; l'anti-précédent affichait juste le carré blanc (titre!) ; et pour ajouter du drag &drop c'est l'exemple suivant... etc)_  Vous avez peut-être aussi le but plus utilitaire de juste connaître les interfaces que votre compositeur supporte: ./wayland-02-list_interfaces-opengl_vulkan  Ici par exemple, la conclusion est évidente: si je veux regarder mes vidéos VLC du canap', il me manque l'interface "**Screenshot Inhibiter**" et je dois vite installer **[Hyprland](https://linuxfr.org/users/saltimbanque/journaux/hyprland-est-hype)** 😉. J'ai prévu d'en ajouter d'autres, un tutoriel complet et de supporter des compositeurs exotiques, mais tu me connais : pour rester heureux, je ne m'engage (jamais) à rien. _(PS: Je te laisse sur une énigme : combien de lignes faut-il pour afficher un carré blanc avec toute la puissance de l'accélération [Vulkan](https://fr.wikipedia.org/wiki/Vulkan_(API))? Réponse : je vous laisse [cliquer là](https://github.com/Tarnyko/suave_code_samples/blob/master/C/wayland/wayland-06-accelerated_rendering-vulkan.c) et moi par sécurité je me barre ->[])_