Wayland natif
Le backend Tao rend les apps Compose Desktop directement sur Wayland et bascule sur X11 automatiquement.
Sur Linux, le backend Tao rend les apps Compose Desktop directement sur Wayland via les protocoles Wayland natifs, plutôt que par la couche de compatibilité XWayland. Quand aucune session Wayland n'est disponible, il bascule sur X11 sans aucune modification de code. Cette page décrit ce que la voie Wayland prend en charge, son fonctionnement, et comment lire la session courante depuis Kotlin.
Ajouter la dépendance
La prise en charge de Wayland est fournie avec le backend Tao. Il n'y a pas d'artefact distinct.
dependencies {
implementation("dev.nucleusframework:nucleus.decorated-window-tao:2.0.7")
}Détecter la session
Vous branchez rarement sur le type de session — le même code Compose s'exécute sur Wayland et sur X11. La détection est utile pour les diagnostics et les feature gates, car la progression dans la barre des tâches, les badges et les raccourcis globaux se comportent différemment selon la session.
import dev.nucleusframework.core.runtime.LinuxDesktopEnvironment
import dev.nucleusframework.core.runtime.Platform
val onWayland = Platform.isWayland
val desktopEnv = if (Platform.Current == Platform.Linux) LinuxDesktopEnvironment.Current else nullFonctionnement
Tao lie les protocoles Wayland standards au démarrage : xdg-shell pour les fenêtres,
xdg-decoration pour négocier les décorations côté serveur ou côté client, wp_fractional_scale_v1
pour les facteurs d'échelle non entiers, pointer-gestures-unstable-v1 pour le pincement et le
balayage, et wp_tablet_v2 pour le stylet. Skiko rend dans une surface EGL attachée au wl_surface
de la fenêtre.
Quand le compositeur signale un changement d'échelle — par exemple lorsque vous faites glisser une
fenêtre d'un moniteur en 1.0 vers un moniteur en 1.5 — Tao reconfigure la surface EGL et émet un
changement de densité vers Compose. Vos valeurs Dp restent logiques et le rendu reste net. Voir
HiDPI par moniteur pour les détails.
Sur une session X11, ou sur un compositeur Wayland qui refuse les décorations XDG, Tao bascule sur X11 automatiquement. Le code Compose ne change pas.
Différences entre Wayland et X11
| Aspect | Wayland (Tao) | X11 (repli) |
|---|---|---|
| Scaling fractionnaire | Natif, par sortie | Pixel entier uniquement |
| Placement de fenêtre | Contrôlé par le compositeur | Le client peut poser une position |
| Raccourcis globaux | Médiés (xdg-portal) | XGrabKey |
| Capture d'écran | Via portal uniquement | Direct |
| Pression du stylet | wp_tablet_v2 | Non exposée |
| Gestes multi-touch | pointer-gestures-unstable-v1 | Limités |
Notes
Sur Wayland, vous ne pouvez pas poser de coordonnées écran absolues — le compositeur possède le placement
des fenêtres. WindowState.position est traité comme une indication par certains compositeurs et
ignoré par d'autres (GNOME ignore les positions demandées par le client). Concevez votre layout autour
de Center ou PlatformDefault, et mémorisez la dernière taille plutôt que la dernière position.
Référence de l'API
Platform.isWayland—truesur une session Linux quandXDG_SESSION_TYPEvautwaylandou queWAYLAND_DISPLAYest défini.Platform.Current— l'une des valeursLinux,Windows,MacOSouUnknown.LinuxDesktopEnvironment.Current— l'une des valeursGnome,KDE,XFCE,Cinnamon,MateouUnknown.
Et ensuite
- HiDPI par moniteur — comment le scaling fractionnaire se traduit en densité Compose.
- Multi-touch et gestes — pincement, balayage et rotation sur Wayland.
- Stylet — pression et inclinaison via
wp_tablet_v2.
Accessibilité
Le pont d'accessibilité de Tao projette votre arbre de sémantique Compose sur l'API d'accessibilité native de chaque système d'exploitation.
HiDPI par moniteur
Le backend Tao suit un facteur de scale par fenêtre pour que les mises en page Compose restent en Dp et que le rendu corresponde à la densité pixel de chaque écran.