Aperçu de l'architecture

Comment XDragMover transforme un geste modificateur+clic en une fenêtre déplacée ou redimensionnée, entièrement via des API macOS publiques et légèrement privées.

Pipeline

XDragMover s'exécute comme une application d'arrière-plan de la barre des menus qui installe un moniteur d'événements global via l'API Quartz Event Services, surveillant l'état des touches de modification et de la souris à l'échelle du système. Lorsqu'un geste valide est détecté, elle résout la fenêtre cible via l'API Accessibilité de macOS et pilote directement sa position ou son cadre.

Moniteur d'événements global Quartz Event Services
Event Tap Taps Move / Resize / Focus
Contrôleur Logique de geste & d'exclusion
API Accessibilité Position / taille AXUIElement
Fenêtre cible Fenêtre de n'importe quelle autre application

Une couche AppSettings partagée (adossée à UserDefaults) alimente en direct le modificateur actif, le délai d'immobilité et les motifs d'exclusion dans chaque paire tap/contrôleur, si bien que les changements dans les réglages s'appliquent immédiatement — aucun redémarrage requis. Un StatusMenuController fournit l'élément de la barre des menus et les fenêtres Réglages/Débogage autour de ce pipeline central.

Les étapes en détail

Autorisations

Parce qu'elle observe les événements d'entrée à l'échelle du système et repositionne des fenêtres appartenant à d'autres applications, XDragMover nécessite l'autorisation Accessibilité (Réglages Système → Confidentialité et sécurité → Accessibilité), accordée une fois au premier lancement. Aucun autre droit spécial, extension du noyau ou démon d'arrière-plan n'est utilisé.

← Retour à l'accueil