Présentation

Window Sweaters est une application macOS qui dessine des bordures « knit » autour des fenêtres. Le rendu s’inspire des icônes des applications : chaque fenêtre reçoit une couleur extraite de son icône, puis transformée en fil de laine. Le catalogue officiel comprend 37 applications pré‑configurées et plus de 40 variantes de couleurs, toutes sélectionnées manuellement.

Fonctionnement technique

L’application s’appuie sur les API privées de macOS pour intercepter les événements de focus et redessiner les bordures en temps réel. Le processus d’extraction des couleurs s’effectue en arrière‑plan : le système lit le bitmap de l’icône, calcule une palette dominante et applique un filtre de désaturation avant de générer le fil. Si le calcul n’est pas terminé, une couleur de secours est utilisée.

Le rendu des mailles est réalisé par un moteur graphique intégré, invoqué via la cible make bench pour mesurer les performances. Le code source, écrit en Swift et Python, nécessite les Command Line Tools d’Apple (installés avec xcode-select --install) et Python 3 pour les scripts d’installation.

Claude = #D58561 atelier-claude

Ce fragment d’apps.conf montre la syntaxe de configuration : le nom de l’application, suivi d’un code couleur hexadécimal et du nom du motif.

Installation et personnalisation

L’application se déploie via Homebrew Cask :

brew trust saragordic/tap
brew install --cask saragordic/tap/window-sweaters

ou en téléchargeant le ZIP depuis les releases et en glissant Window Sweaters.app dans le dossier Applications. macOS bloque l’exécution tant que l’app n’est pas notarized ; il faut alors autoriser l’application dans System Settings → Privacy & Security → Open Anyway. Un accès d’accessibilité est également requis pour suivre le focus des fenêtres.

Les utilisateurs peuvent modifier les paramètres globaux dans ~/Library/Application Support/Knit Borders/apps.conf ou ajouter leurs propres motifs PNG dans le répertoire charts/. Un script de démarrage optionnel (~/.config/window-sweaters/sweatersrc) permet d’automatiser le lancement.

Analyse des limites et compatibilité

Window Sweaters supporte macOS 13 et versions ultérieures, sur Apple Silicon et Intel. Les tests officiels portent uniquement sur Apple Silicon avec macOS 26 ; les versions antérieures et les machines Intel n’ont pas été vérifiées de façon exhaustive, ce qui peut entraîner des dysfonctionnements, notamment lors du redimensionnement des fenêtres où les bordures disparaissent temporairement.

L’utilisation d’API privées expose l’application à des ruptures lors de mises à jour système, car Apple ne garantit pas la stabilité de ces interfaces. De plus, l’absence de notarisation augmente le risque de blocage par Gatekeeper, obligeant l’utilisateur à intervenir manuellement.

En termes de performances, le benchmark intégré indique un impact négligeable sur le CPU pour des résolutions d’écran standards, mais le rendu en temps réel peut devenir coûteux sur des écrans haute densité ou lors de l’ouverture simultanée de nombreuses fenêtres.