deck/
├── server.js # Point d'entrée principal
├── config.json # Configuration des boutons
├── package.json
├── routes/
│ ├── config.js # Route GET /config
│ ├── apps.js # Routes GET /find-app/:appName et /icon/:appName
│ └── run.js # Route POST /run
├── utils/
│ ├── appFinder.js # Logique de recherche d'applications
│ └── iconExtractor.js # Extraction d'icônes Windows
├── public/
│ ├── index.html # Interface Stream Deck
│ ├── css/
│ │ └── styles.css # Styles de l'interface
│ ├── js/
│ │ └── app.js # Logique frontend
│ └── icons/ # Cache des icônes extraites
└── temp/ # Scripts PowerShell temporaires
- findApp(appName) - Recherche intelligente d'applications
- clearCache() - Nettoie le cache des chemins
- getCacheStats() - Statistiques du cache
Méthodes de recherche (dans l'ordre):
- Commande
where(PATH système) - Registre Windows (App Paths)
- Dossiers communs (Program Files, AppData)
- extractIcon(exePath, outputPath) - Extrait l'icône d'un .exe
- getSafeIconName(appName) - Génère un nom de fichier sécurisé
GET /config- Récupère la configuration des boutons
GET /find-app/:appName- Recherche une applicationGET /icon/:appName- Récupère/génère l'icône d'une app
POST /run- Lance une application
- createDeckButton(app) - Crée un bouton complet
- createIcon(app) - Génère l'élément icône (img ou emoji)
- createLabel(name) - Génère l'élément label
- handleButtonClick(button, app) - Gère les clics et animations
- runApplication(app) - Appelle l'API pour lancer une app
- loadDeck() - Charge la config et génère tous les boutons
Styles pour l'interface Stream Deck :
- Layout en grille 8 colonnes
- Boutons avec gradients et ombres
- Animations au survol et au clic
- Icônes 48x48px