Retour au blog
technicalmacossetupcompatibility

Pourquoi certaines applications ne jouent pas bien avec StackWM (et comment corriger)

Comprendre les limitations de l'API d'accessibilité de macOS et restaurer le contrôle total sur les applications incompatibles.

StackWM Team

Vous avez configuré la scène parfaite. Vous avez Telegram à gauche, votre éditeur de code à droite, et tout est parfaitement aligné. Puis vous passez à une scène différente et revenez — et Telegram ne revient pas à sa zone. Qu'est-ce qui s'est passé?

Bienvenue dans le monde des limitations de l'API d'accessibilité de macOS. Ce n'est pas un bug dans StackWM. C'est une limitation dans la façon dont ces applications communiquent avec macOS.

La cause profonde : les API d'accessibilité

StackWM s'appuie sur le framework d'accessibilité de macOS pour gérer les fenêtres. Quand vous créez une zone, StackWM demande à macOS : « Quelles fenêtres appartiennent à quelle application ? » et macOS lui dit ce qui est ouvert.

Le problème ? Pas toutes les applications coopèrent.

Certaines applications — particulièrement Telegram, Brave, Obsidian, Arc et quelques autres — n'exposent pas correctement leurs fenêtres via les API d'accessibilité standard. Du point de vue de StackWM, ces applications :

  • Ne signalent aucune fenêtre du tout
  • Signalent des fenêtres avec des informations incomplètes ou génériques
  • Masquent leur véritable fenêtre d'application derrière des processus auxiliaires

Cela signifie que lorsque vous changez de scènes, StackWM ne peut pas trouver ces fenêtres pour les remettre à leurs zones assignées.

Pourquoi certaines applications le font-elles?

Il y a généralement trois raisons :

1. Architecture de fenêtre non standard

Les applications comme Telegram utilisent des frameworks de rendu personnalisés (souvent basés sur Electron ou Qt) au lieu de fenêtres AppKit natives de macOS. Cela leur donne une flexibilité multiplateforme mais casse la compatibilité avec les API de gestion des fenêtres de macOS.

2. Décisions de sécurité et de sandboxing

Certains développeurs limitent intentionnellement ce que leur application expose via les API d'accessibilité comme mesure de sécurité. C'est un compromis : meilleure isolation vs. pire intégration avec les outils système.

3. Code hérité ou dette architecturale

Certaines applications n'ont pas mis à jour leur code de gestion des fenêtres pour respecter les normes macOS modernes. Elles fonctionnent bien au quotidien, mais ne jouent pas bien avec les gestionnaires de fenêtres externes.

Les suspects courants

Voici les applications connues pour avoir des problèmes avec les API d'accessibilité avec StackWM :

ApplicationProblèmeGravité
TelegramFenêtres non correctement exposées aux API d'accessibilitéÉlevée
Brave BrowserFenêtres auxiliaires signalées incorrectementMoyenne
ObsidianProblèmes de détection de fenêtres dans certains espaces de travailMoyenne
ArcLes éléments d'interface spécifiques à Arc ne sont pas accessiblesÉlevée
cmuxMultiplexeur de terminal avec rapport de fenêtre limitéÉlevée
Google AntigravityGestion des fenêtres propriétaireÉlevée

(Cette liste augmente ou diminue à mesure que les développeurs d'applications mettent à jour leur code. Consultez régulièrement le blog de StackWM pour les mises à jour.)

La solution : la Liste de compatibilité

Voici la bonne nouvelle : StackWM a une solution de contournement intégrée appelée Liste de compatibilité.

Quand vous ajoutez une application incompatible à cette liste, StackWM passe à une stratégie de secours :

  • Au lieu de s'appuyer sur les API d'accessibilité, il utilise le suivi de position visuelle et la correspondance de processus
  • Quand vous changez de scènes, StackWM se souvient où ces fenêtres ont été positionnées et tente de les restaurer
  • Ce n'est pas parfait (l'application doit coopérer jusqu'à un certain point), mais cela restaure 90% de la fonctionnalité

Comment ajouter des applications à la Liste de compatibilité

  1. Ouvrez les Préférences de StackWM → allez à l'onglet Settings
  2. Trouvez la section "App Compatibility"
  3. Cliquez sur le bouton plus pour ajouter une application
  4. Sélectionnez l'application dans la liste des applications installées
  5. C'est tout. L'application obtient maintenant une coche rouge ✓ et StackWM la gérera spécialement

Vous saurez que l'application a été ajoutée quand vous verrez l'icône de compatibilité apparaître à côté dans la liste.

Ce que signifie la coche rouge

Une fois qu'une application est dans la Liste de compatibilité :

  • StackWM arrête de tenter d'utiliser les API d'accessibilité standard pour cette application
  • Au lieu de cela, il suit les positions des fenêtres et se souvient des zones
  • Quand vous changez de scènes, il restaure la fenêtre de l'application à sa zone précédente si possible
  • Vous pourriez voir de légers délais (quelques centaines de millisecondes) alors que StackWM localise et déplace la fenêtre

Mise en garde importante : Certaines applications (particulièrement celles qui s'exécutent dans un environnement isolé ou utilisent le fenêtrage non standard) pourraient toujours ne pas fonctionner correctement même avec cette solution de contournement. Si c'est le cas, il n'y a généralement rien que nous puissions faire — c'est une limitation de l'application elle-même.

Solutions de contournement si la Liste de compatibilité ne aide pas

Si l'ajout de l'application à la Liste de compatibilité ne résout toujours pas le problème :

1. Utilisez l'application dans une zone unique persistante

Au lieu de tenter de la déplacer entre les zones, gardez l'application dans une zone fixe et concentrez vos flux de travail ailleurs.

2. Contrôlez-la séparément avec Cmd+Tab

Pour le changement au niveau de l'application, utilisez la Cmd+Tab native de macOS au lieu de dépendre de la restauration des zones de StackWM. Cela fonctionne pour n'importe quelle application, compatible ou non.

3. Maintenez les dérogations manuelles prêtes

Si l'application ne revient pas à la bonne place automatiquement, il suffit de la faire glisser en arrière. C'est une solution de contournement, mais au moins vous obtenez la gestion des zones pour vos applications bien comportées.

4. Contactez les développeurs de l'application

Si une application est cruciale pour votre flux de travail, envisagez de déposer un problème GitHub ou de contacter le développeur pour demander une meilleure prise en charge de l'API d'accessibilité. Plus les développeurs reçoivent de pression, plus ils corrigent ces problèmes.

Ce que nous faisons à ce sujet

L'équipe de StackWM surveille activement :

  • Quelles applications ont les problèmes de compatibilité les plus courants
  • Si les mises à jour d'applications améliorent ou cassent la compatibilité
  • Les solutions de contournement qui pourraient aider dans les cas limites

Nous maintenons également une matrice de compatibilité mise à jour qui montre l'état connu des applications populaires, mis à jour avec chaque version de StackWM.

La vue d'ensemble

Ce problème n'est pas unique à StackWM. Chaque gestionnaire de fenêtres sur macOS — y compris yabai, Magnet et même Raycast — lutte avec les mêmes applications pour les mêmes raisons.

C'est une limitation fondamentale de la façon dont macOS expose les informations sur les fenêtres. Jusqu'à ce qu'Apple fournisse une API plus robuste (ou que les développeurs d'applications améliorent volontairement le support de l'API d'accessibilité), cela restera un défi.

Liste de contrôle rapide

  • ✅ Essayez d'abord d'ajouter l'application à la Liste de compatibilité
  • ✅ Si cela ne fonctionne toujours pas, vérifiez si une version plus récente de l'application a un meilleur support d'API
  • ✅ Comme solution de secours, gardez l'application dans une zone unique et continuez
  • ✅ Si c'est critique, déposez un problème avec le développeur de l'application demandant un meilleur support de l'API macOS

Dernière mise à jour: 3 mars 2026

Des questions? Contactez-nous ou consultez notre documentation complète.