workspace-manager

Safari Compatibility

Stackly est compatible avec Safari 16.4+ (macOS Ventura+).

Fonctionnalités supportées

Gestion des workspacesBasculement entre workspacesImport/Export JSONStatistiques et historiqueThème clair/sombreOrganisation par dossiersSauvegarde automatique (toutes les 30s) ✅ Corbeille et récupérationPersonnalisation (icônes, couleurs) ✅ Déplacement d’onglets entre workspaces

Fonctionnalités non supportées

Suspension automatique des onglets

La fonction de suspension automatique utilise l’API chrome.tabs.discard() qui n’a pas d’équivalent dans Safari Web Extensions. Cette fonctionnalité est automatiquement désactivée lors de l’exécution sur Safari.

Impact : Les onglets restent actifs en mémoire. Safari dispose cependant de son propre système de gestion de la mémoire qui suspend automatiquement les onglets inactifs en arrière-plan.

Alternatives :

Build

Script de build automatisé

Le script scripts/build.sh génère les distributions pour les 3 navigateurs :

# Toutes les distributions
./scripts/build.sh all

# Safari uniquement
./scripts/build.sh safari

Cela copie les fichiers sources partagés dans dist/safari/ et génère un zip prêt à l’emploi.

Génération du projet Xcode

Safari exige une app macOS native pour distribuer une extension. Après le build :

xcrun safari-web-extension-converter dist/safari/ \
  --project-location dist/safari-xcode \
  --app-name Stackly

Cela génère un projet Xcode avec :

Ensuite :

  1. Ouvrir dist/safari-xcode/Stackly/Stackly.xcodeproj dans Xcode
  2. Signer avec votre certificat développeur Apple
  3. Build & Run pour tester localement
  4. Archive pour soumettre au Mac App Store

Note : Le répertoire dist/safari-xcode/ est dans le .gitignore car il est généré et volumineux.

Installation

Depuis le Mac App Store (à venir)

  1. Télécharger Stackly depuis le Mac App Store
  2. Ouvrir Safari → Préférences → Extensions
  3. Activer “Stackly”
  4. Accorder les permissions demandées

Installation en développement

Pour tester l’extension localement dans Safari :

  1. Activer le menu Développement : Safari → Préférences → Avancées → Afficher le menu Développement
  2. Développement → Autoriser les extensions non signées
  3. Générer le projet Xcode (voir section Build ci-dessus)
  4. Build & Run depuis Xcode
  5. Activer l’extension dans Safari → Préférences → Extensions

Différences d’interface

Sur Safari

Sur Chrome

Détection du navigateur

L’extension détecte automatiquement le navigateur au démarrage et adapte son comportement :

// Détection automatique (user-agent based)
BrowserDetect.isSafari; // true sur Safari
BrowserDetect.isFirefox; // true sur Firefox
BrowserDetect.isChrome; // true sur Chrome

// Détection des fonctionnalités
BrowserDetect.features.tabDiscard; // false sur Safari, true sur Chrome

Cette détection permet de désactiver proprement les fonctionnalités non supportées sans générer d’erreurs.

Problèmes connus

Aucun problème connu pour le moment.

Si vous rencontrez un bug :

  1. Vérifier que vous utilisez Safari 16.4+
  2. Consulter la console Safari (Développement → Afficher la console JavaScript)
  3. Signaler le problème sur GitHub Issues

Performance

L’extension fonctionne de manière fluide sur Safari. Les seules différences de performance :

Support technique

Prérequis système

Confidentialité

Toutes vos données restent locales sur votre Mac :

Pour plus de détails, consultez PRIVACY_POLICY.md.


Version : 8.1.0 Dernière mise à jour : Février 2026