Discord Almost Doesn't Suck On Linux

Discord pour Linux a enfin corrigé son problème d’auto‑mise à jour et amélioré le partage d’écran sous Wayland, mais les raccourcis globaux restent un point noir, bien que des solutions de contournement existent.

Voir la source

SYNTHÈSE STRUCTURÉE

L’auto‑mise à jour enfin native sur Linux

Pendant des années, Discord sur Linux affichait une fenêtre bloquante « nouvelle mise à jour disponible » dès qu’une version plus récente était publiée. L’utilisateur devait alors attendre que son gestionnaire de paquets mette à jour le paquet, ou basculer manuellement vers une autre version (browser, Canary, Flatpak). Depuis le 4 mai, Discord a porté son propre mécanisme d’auto‑mise à jour basé sur Rust sur Linux. Comme le dit l’intervenant : « We’ve ported our Rust-based updater to Linux, allowing Linux to update itself, just like on Windows. » Désormais, l’application se met à jour en arrière‑plan sans intervention, à l’instar de Steam. L’intervenant précise : « You open up the app, and it just works. It just works now. » Ce changement élimine la frustration de devoir jongler entre clients.

Le partage d’écran sous Wayland enfin fonctionnel

Le partage d’écran sur Wayland était un problème majeur : Discord utilisait l’API X11, incompatible avec le protocole Wayland. Pendant longtemps, les utilisateurs devaient recourir à des solutions de contournement comme XWayland Video Bridge (un démon qui simulait une fenêtre X11 pour Discord). L’intervenant explique : « It was a hack of a solution anyway. It was very much just there to have something working. » Depuis fin 2024, Discord supporte le portail Wayland (portal API) pour la capture d’écran et audio. L’intervenant confirme : « At this point, Discord pretty much just works with the screen sharing on Wayland. » Cela signifie que les utilisateurs récents sous Wayland n’ont peut‑être même pas conscience que ce problème a existé.

L’accélération matérielle GPU pour NVIDIA et Intel

Discord a également amélioré l’utilisation du matériel en exploitant l’encodeur vidéo des GPU NVIDIA et Intel. Cela réduit la charge système lors du partage d’écran de jeux. L’intervenant précise : « Now they’re going to use the video encoder part of the GPU if you’re on NVIDIA and Intel GPUs. So whilst you’re gaming, Discord will put less of a load on your system. » Cette optimisation s’accompagne d’une meilleure capture de jeu via Vulkan et GameScope (prise directe du framebuffer), ce qui allège encore la charge.

Les raccourcis globaux : le dernier gros problème

Les raccourcis clavier (Push to Talk, Toggle Mute) ne fonctionnent que lorsque la fenêtre Discord est active. L’intervenant détaille : « This binding will work if you are focused on the window. A little bit like this. Works totally fine, but if I’m focused on the other window over here, it doesn’t do it. » C’est un problème récurrent pour les utilisateurs de Wayland, car Chromium/Electron supporte pourtant les raccourcis globaux via le portail. L’intervenant note : « Chromium supports global shortcuts. If you use something which supports global shortcuts, you’ll notice the option is there to configure them. » La solution de contournement sous KDE consiste à activer « Legacy X11 app support » dans les paramètres système, ce qui permet à Discord (même en mode Wayland) d’écouter les touches via le chemin X11. L’intervenant montre que cela fonctionne, mais prévient : « This has to be an intentional choice. I don’t see how Electron just accidentally does that. » Sous d’autres environnements (Niri, Hyprland), il faut des astuces supplémentaires.

Le mode Wayland natif : une option cachée

Discord peut être lancé en mode Wayland natif avec la commande :

discord --enable-features=UseOzonePlatform --ozone-platform=wayland

L’intervenant explique que cela fonctionne globalement bien, mais que le rendu peut être altéré (par exemple, perte des bordures de fenêtre sous KDE). Il suppose que Discord teste cette fonctionnalité en interne : « I would be very surprised if it is not enabled by default in the coming months. » Il émet toutefois un doute : « Maybe they updated to a version of Electron and then didn’t choose to disable the Wayland option there. They have no interest in actually supporting Wayland. Entirely possible. » En attendant, l’option est disponible pour les utilisateurs avancés.

Les clients tiers comme alternative

L’intervenant mentionne que des clients tiers (Vesktop, etc.) contournent déjà ces problèmes depuis longtemps. Il précise : « If you run a third-party client like a Vesktop, for example, or you run Discord in your browser, these are problems you don’t really think about. » Ces clients intègrent nativement le support Wayland et les raccourcis globaux, mais ils ne sont pas officiels et peuvent présenter des risques de sécurité ou de compatibilité.

La lenteur des correctifs : une question de ressources

L’intervenant souligne que l’équipe Linux de Discord est très réduite : « Discord for Linux basically just has a guy, maybe two, possibly. » Cela explique pourquoi les correctifs mettent des années à arriver, même pour des fonctionnalités de base. Il ironise : « Did they hire a second Linux guy? What happened here? » Cette contrainte humaine est la raison principale pour laquelle des problèmes comme l’auto‑mise à jour ou le partage d’écran ont traîné si longtemps.

Les formats RPM et pkg.tar.zst désormais supportés

Discord supporte officiellement les formats RPM (Fedora, RHEL) et pkg.tar.zst (Arch Linux) pour l’installation. L’intervenant relativise : « You’re probably just installing it directly from your package manager, and it doesn’t really matter what they officially support. » Cela permet toutefois une installation manuelle plus simple pour les distributions qui ne proposent pas Discord dans leurs dépôts.

Le problème des mises à jour de paquets réduit

Avec l’auto‑mise à jour intégrée, les paquets distribués par les gestionnaires de paquets (APT, DNF, Pacman) n’auront plus besoin d’être mis à jour aussi souvent. L’intervenant explique : « The only time you need to update the package is when the background dependencies change. But that’s more in control of your individual distro. » Cela réduit la fréquence des mises à jour système liées à Discord.

Les limites persistantes : rendu et raccourcis

Malgré les progrès, deux problèmes majeurs subsistent : le rendu en mode Wayland natif (CSD imposé, perte de bordures) et l’absence de raccourcis globaux fonctionnels sans bidouille. L’intervenant conclut : « It seems like both these problems are on their way to be fixed, just naturally by updating Electron versions. » Il espère que ces correctifs arriveront dans les mois à venir, mais reste prudent : « Electron, Discord, still going to be Discord. »

CONCEPTS CLÉS

  • Portal API (Wayland) : Interface standardisée pour la capture d’écran et audio sous Wayland, utilisée par OBS, Discord, etc. Permet de demander l’autorisation à l’utilisateur via une boîte de dialogue système.
  • XWayland Video Bridge : Démon créé par David Edmundson pour KDE, qui simulait une fenêtre X11 pour permettre à Discord de capturer l’écran sous Wayland. Solution de contournement temporaire, désormais obsolète.
  • CSD (Client-Side Decoration) : Technique où l’application gère elle‑même ses bordures et barre de titre, contrairement aux décorations côté serveur (SSD). Discord en mode Wayland natif impose CSD, ce qui peut altérer l’intégration avec l’environnement de bureau.
  • GameScope : Outil de capture de jeux sous Linux, utilisé par Steam et Discord pour capturer directement le framebuffer des jeux Vulkan, réduisant la charge système.
  • Raccourcis globaux : Raccourcis clavier qui fonctionnent même lorsque l’

Du même canal

Tout voir