HN en accès libre : FlashSpace – une alternative rapide et open source à macOS Spaces
(github.com/wojciech-kulik)- FlashSpace est un gestionnaire d’espaces de travail virtuels qui améliore ou remplace macOS Spaces par défaut, avec pour objectif des changements d’espace rapides sans attendre les animations de macOS
- Il prend en charge la commutation indépendante sur plusieurs écrans en assignant des apps et des écrans à chaque espace de travail ; lors du basculement, les apps assignées à l’écran concerné sont affichées et les autres masquées
- Il propose Space Control, un Workspace Switcher basé sur
Option + Tab, Focus Manager, des profils, des gestes de balayage, Floating Apps, une configuration JSON/YAML/TOML, une CLI, ainsi que des intégrations SketchyBar et Raycast - Nécessite macOS 14.0 ou plus et le réglage « Displays have separate Spaces », et prend en charge l’installation via Homebrew, le téléchargement de binaires et la compilation depuis les sources
- Ne prend pas en charge les espaces de travail par fenêtre individuelle ni la gestion de layouts ; le design reste centré sur l’affichage/masquage des apps en raison de l’absence d’API publique macOS pour masquer certaines fenêtres et par souci de simplicité et de performances
Ce que fait FlashSpace
- FlashSpace est un gestionnaire d’espaces de travail virtuels pour macOS, conçu pour améliorer et remplacer macOS Spaces par défaut
- Son objectif est une commutation rapide entre espaces de travail sans attendre les animations de macOS
- Des apps peuvent être assignées à chaque espace de travail, et chaque espace peut lui-même être assigné à un écran spécifique
- Lors du passage à un espace de travail, les apps assignées sont automatiquement affichées, tandis que les autres apps présentes sur le même écran sont masquées
- Il est possible de changer d’espace indépendamment sur plusieurs écrans
Installation et flux d’utilisation de base
- Les prérequis sont macOS 14.0 ou plus et l’activation de « Displays have separate Spaces » dans les réglages système
Desktop & Dock - Les méthodes d’installation prises en charge sont Homebrew, le téléchargement de binaires de release et la compilation depuis les sources
- Commande d’installation Homebrew :
brew install flashspace - Les binaires sont disponibles sur la page Releases
- Commande d’installation Homebrew :
- Le flux d’utilisation de base est le suivant
- Déplacer toutes les apps vers un seul macOS Space par écran
- Créer des espaces de travail
- Assigner des apps
- Assigner un écran à chaque espace de travail ou utiliser le mode dynamique
- Définir des raccourcis pour une activation rapide
- Répéter le même processus pour les autres espaces de travail
- Basculer entre les espaces configurés via les raccourcis
- Pour conserver la même app dans plusieurs espaces de travail, on peut utiliser la fonction Floating Apps dans les réglages de l’app, ou ajouter l’app à plusieurs espaces depuis la fenêtre principale de l’app
Fonctionnalités principales
- Il offre une commutation rapide entre espaces de travail et la prise en charge du multi-écran
- Space Control permet de prévisualiser tous les espaces de travail sous forme de grille et de basculer entre eux
- Les touches
0-9et les flèches permettent de changer d’espace
- Les touches
- Workspace Switcher affiche la liste des espaces de travail et permet d’en changer, par défaut avec
Option + Tab- Son fonctionnement est similaire au sélecteur d’apps macOS
CMD + Tab
- Son fonctionnement est similaire au sélecteur d’apps macOS
- Focus Manager permet, via des raccourcis, de déplacer le focus dans la direction voulue entre les fenêtres, et prend aussi en charge les sauts entre écrans
- Les autres fonctionnalités incluent notamment
- L’activation d’un espace de travail après détection du focus sur une app
- Un Cursor manager qui recentre automatiquement le curseur sur la fenêtre active
- Des profils pour modifier rapidement plusieurs réglages
- Une barre de menu où l’on peut définir une icône et un texte par espace de travail
- La personnalisation du comportement des gestes de balayage du trackpad
- Une configuration via interface graphique et fichiers de configuration
- La prise en charge des formats de configuration JSON, YAML et TOML
- Le contrôle de l’app via CLI
- La prise en charge du Picture-in-Picture
- L’intégration avec SketchyBar
- La prise en charge de l’extension Raycast
Modes d’assignation des écrans
- FlashSpace prend en charge deux modes d’assignation des écrans : mode statique et mode dynamique
- Le mode statique est le mode par défaut et assigne chaque espace de travail à un écran spécifique
- Il convient aux utilisateurs qui veulent des espaces dédiés par écran, comme avec macOS Spaces
- Il peut devenir contraignant si l’on utilise plusieurs écrans et que l’on change souvent leur disposition
- Le mode dynamique assigne automatiquement chaque espace de travail à l’écran où se trouvent les apps de cet espace
- Un même espace de travail peut être affiché simultanément sur plusieurs écrans
- C’est utile si l’on veut réorganiser les espaces en déplaçant les apps d’un écran à l’autre
- Dans ce mode, il n’est pas possible d’afficher un espace de travail vide
- Le mode d’assignation des écrans peut être modifié dans la section Workspaces des réglages de l’app
Prise en charge du Picture-in-Picture et limites
- FlashSpace prend en charge le mode Picture-in-Picture, mais il s’agit d’une fonctionnalité expérimentale
- Cette fonctionnalité peut être désactivée dans
App Settings -> Workspaces - macOS ne fournit pas d’API publique pour masquer uniquement certaines fenêtres, et quand une app est masquée, sa fenêtre PiP l’est aussi
- Pour contourner ce problème, FlashSpace identifie si une app prend en charge PiP et cache dans un coin de l’écran toutes ses fenêtres sauf la fenêtre PiP
- Si aucune fenêtre PiP n’est visible, le comportement standard est appliqué
- Les navigateurs pris en charge sont Safari, Zen Browser, Chrome, Firefox, Brave, Vivaldi, Arc, Dia, Opera, Microsoft Edge et Comet
- Si la langue du navigateur n’est pas réglée sur English, cette fonctionnalité peut ne pas fonctionner
Principes de conception et choix de non-prise en charge
- Les valeurs du projet sont les performances, la simplicité, la stabilité, un comportement non intrusif et la philosophie UNIX
- FlashSpace considère la gestion des espaces de travail comme une seule tâche et cherche à bien faire cette tâche
-
Comportement non intrusif
- FlashSpace ne gère pas activement les fenêtres
- Si l’on appelle une app non assignée après avoir changé d’espace de travail, cette app s’affiche au-dessus des apps de l’espace courant
- Ce comportement permet un accès rapide à d’autres apps tout en évitant les glitches ou les changements d’espace inutiles
- Dans les gestionnaires de fenêtres en tuiles, les glitches peuvent être fréquents à cause de popups ou boîtes de dialogue non prévues
- FlashSpace interagit avec le système sans le perturber en ne gérant pas les fenêtres et apps non assignées
-
Pas de prise en charge des espaces de travail par fenêtre individuelle
- FlashSpace ne prend pas en charge la séparation des fenêtres individuelles d’une app par espace de travail
- C’est un choix intentionnel pour rester simple et rapide
- Il s’appuie sur les fonctions natives d’affichage/masquage pour gérer et changer d’espace efficacement
- Cette approche est favorable à la batterie et ne casse pas les fonctions système comme Mission Control
- Une prise en charge par fenêtre individuelle introduirait une forte complexité et pourrait nuire aux performances
- macOS ne dispose pas d’API publique pour masquer des fenêtres spécifiques, et les seules options actuelles sont de déplacer les fenêtres dans un coin de l’écran ou de les minimiser, ce qui n’offre pas une expérience idéale
-
Pas de prise en charge des layouts
- FlashSpace ne prend pas en charge le déplacement, le redimensionnement ou la modification de layout des fenêtres
- Cette fonctionnalité augmenterait fortement la complexité et pourrait nuire aux performances
- Il faudrait beaucoup de travail pour couvrir tous les edge cases et glitches
- Il peut être utilisé avec des apps de gestion de fenêtres comme Magnet, Rectangle ou Raycast, sans dupliquer ces fonctionnalités
Intégrations, CLI et compilation
- Il peut s’intégrer à SketchyBar et à d’autres outils, et exécute des scripts configurables lors des changements d’espace de travail
- La CLI prend en charge la gestion des espaces de travail, des apps et des profils
- Elle doit d’abord être installée depuis la section CLI des réglages de l’app
flashspace --helppermet de voir les commandes disponibles
- La compilation depuis les sources utilise XcodeGen pour générer le projet Xcode à partir de
project.yml- Après avoir cloné le dépôt, installez les dépendances avec
brew bundle - Exécutez
xcodegen generate, puis ouvrezFlashSpace.xcodeprojdans Xcode pour compiler - Il faut relancer
xcodegen generateà chaque changement de branche ou après unpull - Pour générer le projet avec les réglages de signature, on peut utiliser
XCODE_DEVELOPMENT_TEAM=YOUR_TEAM_ID xcodegen generate
- Après avoir cloné le dépôt, installez les dépendances avec
Conseils d’utilisation
- macOS a un bug où les apps peuvent apparaître sur le mauvais écran après une sortie de veille
- Cela se produit si les apps étaient masquées pendant la veille
- Allumer tous les écrans avant de se reconnecter après le réveil peut permettre aux apps de réapparaître sur le bon écran
- macOS 15 fournit des fonctions de déplacement et de redimensionnement des fenêtres sans app tierce
- Le sous-menu
Move & Resizeest disponible dansWindowde la barre de menu - La personnalisation des raccourcis est limitée ; pour davantage de souplesse, il est préférable d’utiliser des apps comme Raycast ou Magnet
- Le sous-menu
- Le raccourci macOS
Cmd + `permet de changer le focus entre les fenêtres d’une même app - SKHD est un outil CLI permettant de définir des raccourcis globaux personnalisés, utilisable avec la CLI de FlashSpace
- Les utilisateurs de Raycast peuvent gérer FlashSpace sans quitter le clavier grâce à l’extension Raycast
1 commentaires
Je me demande si c’est compatible avec Amethyst. Je veux un gestionnaire de fenêtres en tuiles, mais je ne veux pas de latence lors du changement d’espace
Très bien ! J’aimerais qu’une vue en grille des espaces de travail soit ajoutée. TotalSpaces me manque
Ça tombe bien. J’explorais à nouveau les options dans cet espace et j’avais choisi AeroSpace. Je vais essayer ce produit
Merci ! Je viens de l’installer et jusqu’ici ça fonctionne bien
J’utilise AeroSpace à cette fin depuis plus d’un an. J’ai désactivé toutes les fonctionnalités de tiling dans la configuration et je n’utilise que deux raccourcis : passer à un espace de travail et déplacer la fenêtre actuelle vers un espace de travail. C’est indispensable quand on travaille sur un petit écran