macOS doit retrouver sa grille
(blog.hopefullyuseful.com)- Les Spaces de macOS permettaient à l’époque de Leopard d’utiliser les bureaux virtuels comme de véritables écrans grâce à une grille 3x3 personnalisable, et de passer du navigateur à l’éditeur, à Xcode ou au simulateur via la mémoire spatiale
- Mission Control a, avec macOS Lion, limité les bureaux virtuels à une seule rangée horizontale ; il fallait glisser au clavier jusqu’à l’écran voulu ou mémoriser des numéros de raccourcis, ce qui cassait cette mémoire spatiale
- Total Spaces entraînait des ralentissements et a ensuite dépendu de modifications du Dock système et du contournement de SIP, tandis que des gestionnaires de fenêtres comme Yabai ou Aerospace ne correspondaient pas bien aux apps plein écran ni à une préférence pour des espaces dédiés à chaque tâche
- GridLion est né comme solution après avoir vu qu’InstantSpaceSwitcher basculait entre les spaces sans animation ; au lieu d’utiliser une API Mission Control verrouillée, il modélise des spaces natifs sur une seule ligne pour les afficher comme une grille
- Les LLM ont aidé à produire un prototype fonctionnel en une journée, mais le ressenti de l’interface a nécessité une boucle de feedback humaine ; à cause des limites API restantes de GridLion, des Spaces en grille devraient redevenir une fonction de l’OS
La mémoire spatiale créée par les Spaces de Leopard
- Les Spaces de macOS 10.5 Leopard ont introduit les bureaux virtuels sur macOS et permettaient aux utilisateurs de disposer leurs espaces dans la grille de leur choix
- Une grille 3x3 servait comme 9 écrans, avec par exemple le navigateur web au centre, l’éditeur web au-dessus, Xcode en haut à gauche, et le simulateur iOS juste en dessous
- Le fait de rejoindre un emplacement précis avec une seule frappe créait une mémoire musculaire et spatiale proche de celle que l’on a avec de vrais écrans physiques séparés
- La grille de 16 écrans de séquençage de EasyBeats Drum Machine a elle aussi été directement influencée par l’organisation des Spaces d’Apple
La disparition de la grille après Lion
- macOS Lion a introduit Mission Control en limitant les bureaux virtuels à une seule rangée horizontale
- Dans cette disposition, atteindre un écran précis au clavier obligeait à se déplacer horizontalement en continu et, même avec des raccourcis directs, il fallait se souvenir si le navigateur était sur l’écran 7 ou 8
- Ce changement a rendu plus difficile le maintien d’une organisation des bureaux fondée sur leur position dans l’espace
- Des alternatives comme Total Spaces existaient, mais elles provoquaient des ralentissements, dépendaient de modifications du Dock système et ont fini par nécessiter un contournement de SIP
Des espaces par tâche plutôt qu’un gestionnaire de fenêtres
- Des gestionnaires de fenêtres comme Yabai ou Aerospace ne constituaient pas une solution universelle
- Organiser des fenêtres sur un bureau ressemblait davantage à déplacer des feuilles sur un bureau physique, alors que le besoin relevait plutôt de postes de travail séparés où tout reste en place
- Les apps plein écran et le mode partagé de macOS, qui donnent une zone dédiée à une tâche, s’accordaient mieux avec une navigation entre spaces fondée sur une grille
Comment GridLion est implémenté
- InstantSpaceSwitcher supprime l’animation de changement de space sur macOS sans modifier le système ; voir cette transition sans animation a fait entrevoir une solution au problème de navigation en grille
- macOS verrouille la plupart des API de Mission Control, si bien qu’il n’existe pas d’API documentée pour ajouter ou réorganiser des bureaux
- GridLion ajoute une fine couche au-dessus des spaces natifs et choisit de représenter, dans son modèle interne, les spaces mono-rangée de macOS comme une grille
- Avec l’aide des LLM, un prototype grossier mais fonctionnel a été créé en une journée, puis quelques jours d’usage ont montré qu’un outil plus abouti était nécessaire
- Environ un mois plus tard, le résultat était jugé satisfaisant, et l’application a été baptisée GridLion, en référence au problème apparu avec macOS Lion et à la grille
Permissions et obstacles à la distribution
- Pour intercepter des raccourcis clavier globaux et naviguer entre les spaces, l’autorisation
Accessibilityde macOS est nécessaire - Le flux d’autorisation de macOS ne se termine pas immédiatement comme sur iOS : il faut ouvrir les réglages, laisser l’utilisateur trouver et activer le bon commutateur, puis approuver des invites de sécurité supplémentaires
- Pour créer de petites prévisualisations des spaces, l’autorisation
Screen and System Audio Recordingest aussi nécessaire, avec une boîte d’avertissement plus sévère à cause des aperçus d’écrans et de fenêtres invisibles - GridLion fonctionne sans cette autorisation, mais la fonction de prévisualisation en a besoin
- Pour inspirer confiance, l’application devait éviter tout accès réseau en dehors de la vérification des mises à jour demandée par l’utilisateur et de la validation de clé de licence
- GridLion ne peut pas être publié sur l’App Store, car il appelle des API privées pour obtenir des informations sur les spaces
- Pour vendre hors App Store, il fallait un Merchant of Record capable de gérer les achats, taxes et remboursements ; Paddle, GumRoad et Lemon Squeezy étaient envisagés
- Lemon Squeezy propose une API de code de licence qui fournit une clé aux acheteurs ainsi que des méthodes d’activation, de désactivation et de vérification
- L’approbation par Lemon Squeezy exigeait de montrer qu’il s’agissait d’un produit réel avec une utilité concrète, avec à l’appui un screencast et la preuve de comptes sur les réseaux sociaux
- Même avant approbation, il était possible d’utiliser des comptes de test afin de configurer et tester facilement l’intégration avec l’application
LLM et limites restantes
- Les LLM sont faciles à faire itérer sur des tâches à objectif clair, comme des résultats d’API précis ou des requêtes sur de grands jeux de données
- Les interfaces utilisateur reposent largement sur le ressenti ; pour tout ce qui est visible par l’utilisateur, un humain doit rester dans la boucle de feedback
- Même si les LLM ont aidé après presque dix ans sans travail natif sur Mac/iOS, la question demeure de savoir si la même application aurait pu être réalisée en un temps similaire à l’ancienne manière, avec davantage d’apprentissage
- GridLion vise la navigation et la réorganisation des grilles de spaces, un fonctionnement rapide et fiable, ainsi que le réglage de tailles de grille et de raccourcis selon chaque écran
- Il n’existe pas d’API fiable pour déplacer un space d’un écran à un autre ou une fenêtre d’un space à un autre
- GridLion fonctionne avec Mission Control, ce qui permet de gérer ce type d’opérations via Mission Control
- Une fonction permettant de faire apparaître systématiquement une app à une position donnée dans la grille existait dans les Spaces d’origine de macOS, mais reste un chantier ouvert pour GridLion
- L’idéal serait que des Spaces organisés en grille redeviennent une fonctionnalité native de macOS dans une prochaine version
1 commentaires
Commentaires sur Hacker News
L’approche actuelle d’Apple semble consister à éviter le problème du « de toute façon les débutants cliquent sur Autoriser », en jetant l’utilisateur dans une mini-aventure d’administration système en 4 ou 5 étapes à chaque fois
Il faut trouver un petit interrupteur dans les réglages, l’activer, puis repasser par l’invite de sécurité, et le fait qu’il n’existe aucun moyen de désactiver cela, même pour un utilisateur expérimenté, donne l’impression d’un manque de respect envers l’utilisateur
Que votre grand-mère ou un enfant de 10 ans clique sur « autoriser l’accès complet au système de fichiers et l’enregistrement des frappes » pour un exécutable suspect, c’est un problème qu’Apple doit résoudre, mais il faut donner aux utilisateurs avertis un moyen de désactiver cette protection
Ce n’est pas parfait, mais l’approche d’Apple est plutôt bonne, et si vous devez suivre souvent ce genre de procédure, ce n’est pas non plus un bon signal du point de vue de la sécurité
À l’inverse, les sites web demandent souvent l’autorisation d’envoyer des notifications alors qu’on n’en veut presque jamais. En regardant récemment les réglages, j’ai été surpris du nombre de permissions accordées par erreur, et j’estime qu’environ 5 % étaient des clics involontaires
Cette autorisation sert à créer un keylogger. C’est tout. Elle permet d’écrire un keylogger, donc cela ne devrait pas se faire en un seul clic, et c’est une permission suffisamment dangereuse pour justifier des étapes supplémentaires
spctl --master-disableune fois et un passage dans le menu Réglages suffisent. Je ne vois pas pourquoi TCC ne pourrait pas fonctionner ainsiPour les aperçus, Apple pourrait fournir une API pour les tâches courantes. Le système d’exploitation fournirait l’image, avec un taux de rafraîchissement échantillonné de manière à rendre difficile son utilisation pour de l’enregistrement arbitraire
Pour les combinaisons de touches, on pourrait réutiliser la touche emoji, qui n’accepte actuellement pas de liaison externe, et n’autoriser la capture qu’après une certaine « séquence magique ». Le système d’exploitation gérerait les commandes de manière centralisée, et les programmes recevraient uniquement la commande, pas la frappe exacte, ce qui aurait aussi l’avantage de centraliser la gestion des conflits. Sur macOS aujourd’hui, ce point est franchement pénible
Cela ne résoudrait pas tous les problèmes, mais au moins une partie. Il existe sûrement de meilleures approches. Apple a largement assez de programmeurs brillants ; il faut simplement laisser l’équipe produit résoudre un problème qui gêne manifestement les utilisateurs experts
Avant MacOS 10.11, Mission Control était bien. En balayant vers le haut avec quatre doigts, on voyait un aperçu de tous les Spaces, mais en 10.11 cela a été cassé sans raison, et la barre n’affiche plus que des noms comme « Desktop 1 », « Desktop 2 », avec aperçu seulement au survol de la souris
Dans les faits, cela rend l’usage des Spaces désorientant et oblige à mémoriser
Certains logiciels tiers prétendent le restaurer, mais ils déplacent simplement la souris pour simuler le survol, ce qui introduit de la latence et s’intègre mal aux animations. Il existait aussi un correctif qui fonctionnait en désactivant SIP et en injectant du code (https://github.com/briankendall/forceFullDesktopBar), mais il n’est plus maintenu
Dix ans plus tard, je me demande s’il reste chez Apple quelqu’un qui se souvient que cette interface était autrefois bonne
Mais je ne comprends absolument pas pourquoi il faudrait deux comportements d’aperçu différents entre le bureau et le plein écran
Ce qui m’agace le plus dans cette UX, c’est que les Spaces se réorganisent sans raison apparente. J’ai généralement plusieurs fenêtres d’IDE ouvertes, donc devoir vérifier à chaque fois si elles ont bougé est épuisant
Il manque à l’échelle du système d’exploitation une notion de projets ou de tâches. Cette notion devrait traverser les applications et être profondément intégrée à la gestion des fenêtres et aux Spaces
Le multitâche et les changements de contexte n’ont cessé d’augmenter au fil des années, la messagerie instantanée a encore accéléré cela, et les flux de travail fondés sur des agents vont pousser encore plus dans cette direction. Comme on utilise les mêmes applications dans plusieurs tâches, ce n’est pas un sujet au niveau de l’application, mais quelque chose que le système d’exploitation doit prendre en charge
Les IDE aident un peu, car ils ont une notion primitive d’espace de travail ou de projet et peuvent restaurer le contexte du code et du terminal. Mais les pages web, les agents hors IDE, les discussions liées avec les collègues, les applications de gestion de projet et tout le reste restent toujours séparés
C’est clairement un sujet qui relève non pas du niveau applicatif, mais du niveau système. Certaines expérimentations d’iPad avec des configurations de fenêtres alternatives semblaient prometteuses, mais personnellement je ne les ai pas trouvées assez puissantes ni assez intuitives
Je ne comprends pas pourquoi davantage de power users ne considèrent pas cette configuration comme idéale. J’espère que Zen Browser deviendra une alternative solide
¹https://blogs.kde.org/2026/01/17/streamline-plasma-with-acti...
J’aime aussi le fait que les workspaces disposent d’un espace infini, ce qui évite d’avoir à en créer un nouveau simplement parce qu’un autre est devenu trop encombré
Sans pouvoir le prouver, il pense qu’il est peut-être à l’origine, ou du moins une inspiration, du fait qu’Apple ait « inexplicablement limité » Spaces à une seule rangée horizontale dans Leopard
En 2009, il a réalisé une vidéo de concept d’un gestionnaire de fenêtres linéaire avec navigation gestuelle ; elle est aujourd’hui presque oubliée, mais avait été assez relayée dans les médias tech à l’époque et a influencé quelques preuves de concept au début des années 2010
La gestion linéaire des fenêtres n’est pas du goût de tout le monde, mais il estime que l’idée reste valable. Cette sortie et les réactions l’ont encouragé, et il travaille justement sur quelque chose dans ce domaine en ce moment
J’ai passé une heure aujourd’hui à essayer de le faire fonctionner comme je l’attendais, mais il y a encore des choses bizarres. Même en désactivant le réordonnancement automatique basé sur l’usage, l’ordre dans l’aperçu du balayage à trois doigts et l’ordre réel des fenêtres ne correspondent pas. L’ordre visuel est conforme à ce qu’on attend, mais l’ordre du balayage n’est pas linéaire
https://github.com/mogenson/PaperWM.spoon
Je déteste vraiment ce design et ce qu’il a fait à Gnome. Une grille était bien meilleure
La gestion des fenêtres de macOS m’empêche de passer sur Mac. J’ai déjà essayé des solutions proches d’Aerospace, mais je n’ai jamais réussi à retrouver l’expérience rapide et sans friction que j’ai avec i3wm
Malheureusement, le gestionnaire de fenêtres de macOS ressemble aux notifications d’iOS. Avec le temps, on s’habitue à ce bazar qui fait chuter la productivité, mais on finit par passer à côté de solutions meilleures. Et comme probablement tous les développeurs macOS utilisent un Mac, il y a de fortes chances qu’ils ne voient pas, ou ne comprennent pas, d’autres approches pourtant meilleures
J’ai été sidéré par le niveau de stupidité de tout ce qui entoure cette fonctionnalité. Des choses qui étaient possibles il y a quelques années ne le sont plus aujourd’hui. Par exemple, passer d’un bureau ou d’un espace de travail à l’autre au clavier, ou encore des choses comme la grille
Avec l’app « AltTab », on peut au moins changer d’application sans souris, et on peut aussi disposer les fenêtres avec raycast, mais le fait que le basculement et l’agencement soient tellement plus lents sur macOS qu’avec un gestionnaire de fenêtres en mosaïque est pénible
Je suis convaincu que la plus grande menace pour une bonne UI, c’est la masse des designers UI professionnels. La moitié des designers UI sont sous la médiane, et ce sont ces gens-là qui ont choisi le design d’UI comme métier
Année après année, on ne peut pas faire progresser sa carrière en se contentant de défendre le statu quo, donc il faut concevoir quelque chose de nouveau. Que l’ancien fonctionne bien ou non, on le refait. Mais puisque la moitié des designers UI sont sous la médiane, il y a aussi une chance sur deux que le nouveau design soit une régression
Et ensuite on se retrouve avec quelqu’un sur scène lors d’un keynote Apple à vanter Liquid Glass. Ce qui est triste, c’est que beaucoup de designers semblent se focaliser uniquement sur le visuel et ne presque rien comprendre à l’utilisabilité. Par exemple, combien de designers qui arrivent aujourd’hui dans le secteur connaissent la loi de Fitts ? Combien ont résisté face aux problèmes d’utilisabilité pourtant évidents de Liquid Glass ? Honnêtement, à part de rares exceptions, le problème vient des designers
Tout ce qui touche à l’objectif du produit, à l’objectif de ce morceau d’UI, aux facteurs humains, à la conception des interactions, à l’expérience utilisateur au-delà de l’esthétique, entre là-dedans
On prétend accorder beaucoup d’importance à chacun de ces points, mais dans les faits ils sont peu pris en compte, parce que ce ne sont pas eux qui font gagner dans un portfolio d’entretien ou dans un document de reporting pour la direction. Au final, cela crée un système qui filtre fortement ce genre de considérations
C’est un peu hors sujet, mais l’ancienne Aqua UI était bien plus belle. Non seulement il était beaucoup plus facile de distinguer ce qui était un contrôle de ce qui était du texte, mais en plus c’était visuellement plus joli
Il y a des boutons qui ressemblent à des boutons pour chaque action possible, et en regardant la barre d’outils, on peut souvent comprendre l’ensemble des actions disponibles. Pas besoin de deviner si une partie du contenu est cliquable ou modifiable
Aujourd’hui, tout est rempli d’espaces blancs excessifs. L’interface moderne du panneau de configuration de Windows donne souvent l’impression d’un mur de texte sur plusieurs colonnes, avec beaucoup de vide et quelques interrupteurs dispersés. Pour faire tenir autant d’options que dans les anciennes UI, il a fallu soit masquer certains réglages au motif que « personne n’en a plus besoin », soit ajouter des étapes de navigation intermédiaires. Résultat : le nouveau panneau de configuration paraît plus lourd et moins utile
Ça résout une frustration que je subis des dizaines de fois par jour
La grille, c’est bien, mais encore mieux, c’est le basculement instantané entre écrans virtuels
Parmi les « mille petites irritations » du macOS moderne, il n’y a presque rien de pire que de devoir appuyer sur Ctrl→→→→→→→ et subir encore et encore cette animation répétitive
Je ne peux pas l’affirmer avec certitude, mais on a l’impression que les designers visuels sont immatures et pensent qu’on a envie de revoir leurs jolies animations non seulement dans une démo ou un tutoriel aperçu une fois, mais toute la journée, pendant des décennies
Ce n’est absolument pas le cas. Une fois suffisait. Je ne veux pas d’animations. Et l’implémentation de « Réduire les animations » est insultante. Le délai reste le même, ça devient juste un fondu flou
Je ne comprends pas comment une entreprise avec des ressources infinies et des designers talentueux peut produire ça
J’utilise Instant Space Switcher comme solution ciblée uniquement sur ce problème, et ça change la vie
Ctrl-UpArrow, puis cliquer sur le Space voulu. Ce n’est pas instantané, mais avec beaucoup de bureaux, ça peut être mieux que de les faire défiler un par unÀ mon avis, il est aussi indispensable de désactiver « Automatically rearrange Spaces based on most recent use »
Personnellement, je n’ouvre qu’une seule app par bureau et je n’utilise que Command-Tab. Si on garde Command enfoncé après Command-Tab, on peut choisir l’app sans faire défiler toutes les apps
defaults write com.apple.dock expose-animation-duration -float 0.05; killall DockQuand on dit que « l’expérience du bureau Mac d’il y a 20 ans était meilleure qu’aujourd’hui », il y a 20 ans, c’était 2006. J’utilise encore aujourd’hui la même expérience de bureau qu’il y a 20 ans
J’utilise Fvwm2, et les bureaux virtuels en grille qui manquent à l’auteur, j’en profite toujours grâce aux fonctionnalités de bureau virtuel de Fvwm2 et auparavant de Fvwm. Une des raisons de mon passage à Fvwm, c’était justement les bureaux virtuels en grille ; je ne me souviens plus exactement quand, mais c’était dans la seconde moitié des années 1990
J’ai peaufiné ma configuration Fvwm2 petit à petit au fil du temps, mais à aucun moment un designer d’entreprise n’a décidé que je ne devais plus utiliser une fonctionnalité dont je me servais
Les logiciels propriétaires n’ont pas l’intérêt des utilisateurs en tête. Ils ne regardent que le cours de l’action ou le chiffre d’affaires du trimestre suivant
Avant de passer à Plasma et Wayland, j’ai utilisé XFCE avec pratiquement la même configuration pendant presque 15 ans, sans être perturbé par les mises à jour
Quand Apple a supprimé les Spaces verticaux, je n’en revenais vraiment pas. Comme il fallait sauter par-dessus des écrans inutiles, cette fonctionnalité a cessé de me servir, et j’ai fini par arrêter de l’utiliser. Ce n’était pas pratique du tout