Présentation
GridSnap est une application macOS qui reproduit les fonctions de découpage de fenêtres de Divvy, mais sous licence MIT et sans dépendance réseau. L’utilisateur déclenche l’affichage d’une grille par raccourci clavier, sélectionne les cellules désirées et la fenêtre se repositionne instantanément. Un raccourci dédié (⌃⌥F) active un préréglage plein écran, et chaque préréglage possède son propre raccourci global.
Architecture et fonctionnement
L’application s’exécute depuis la barre de menus, ne crée aucun icône Dock et se lance au démarrage si l’utilisateur le souhaite. Elle repose sur l’API d’Accessibilité macOS pour déplacer les fenêtres d’autres processus, ce qui nécessite l’autorisation d’Accessibilité au premier lancement. La grille est dessinée comme une superposition translucide ; sur macOS 14 et versions ultérieures le matériau « glass » est utilisé, tandis que sur les versions antérieures la superposition apparaît sous forme de panneau givré. La largeur des gouttières indique les divisions en moitiés, tiers et quarts, facilitant le positionnement précis.
Le moteur de snapping suit le curseur et propose un aperçu en temps réel : si l’utilisateur annule l’opération, la fenêtre revient à sa position initiale. Le système supporte plusieurs écrans ; la grille apparaît sur l’écran sous le curseur, et le raccourci déplace la fenêtre vers cet écran si le curseur a été déplacé avant l’activation.
Processus de construction et de signature
GridSnap se compile avec les outils en ligne de commande Xcode et le SDK macOS 26, sans projet Xcode dédié. Le script build.sh invoque swiftc directement sur les fichiers source (main.swift, AX.swift, Grid.swift, etc.) et produit GridSnap.app. La signature de code par défaut est ad‑hoc, ce qui entraîne la perte de l’autorisation d’Accessibilité à chaque reconstruction. Les développeurs peuvent créer un certificat auto‑signé (« GridSnap Dev ») via le Trousseaux d’accès, puis le spécifier avec la variable d’environnement CODESIGN_IDENTITY pour stabiliser la permission.
brew install --cask konieczkow/tap/gridsnap
./build.sh installLa distribution s’effectue via Homebrew Cask ou en téléchargeant l’archive zip de la version la plus récente, puis en glissant l’application dans le dossier Applications. Aucun compte utilisateur, aucune télémétrie et aucune connexion réseau ne sont requis.
Limites et perspectives
Les fenêtres en plein écran ne sont pas concernées par le snapping, ce qui limite l’usage avec les applications qui privilégient le mode plein écran. De plus, certaines applications imposent une taille minimale de fenêtre ; dans ces cas la fenêtre ne peut pas être réduite au niveau d’une cellule et chevauche les cellules adjacentes. La prise en charge d’Apple Silicon et d’Intel assure une compatibilité matérielle large, mais la dépendance à l’API d’Accessibilité implique que toute modification du modèle de sécurité macOS pourrait affecter le fonctionnement.
En l’état, GridSnap offre une solution légère, configurable (colonnes, lignes, espace en points) et extensible via des préréglages, tout en restant entièrement open source et sans composant serveur.