# User Story: Robust Cross-Platform Game Detection **Som** utvecklare av Electron-appen **vill jag** implementera en sofistikerad logik för att identifiera aktiva spelprocesser **så att** jag kan visa användarens aktuella status utan att inkludera falska positiva (som Spotify eller systemprocesser). ### Acceptanskriterier #### 1. Cross-Platform Exekvering - [ ] Lösningen ska fungera sömlöst på både **Windows** (Win32 API) och **Linux** (X11/Wayland). - [ ] Använda Node.js-bibliotek som har stöd för binära tillägg (t.ex. `ps-list` eller `ffi-napi`) i Electron Main-processen. #### 2. Eliminering av Falska Positiva - [ ] **Sökvägsverifiering:** Appen ska prioritera processer som körs från kända spelmappar (t.ex. `SteamLibrary`, `Epic Games`, `/home/.local/share/Steam`). - [ ] **Blacklisting:** Hårdkoda en lista över vanliga processer som ofta misstas för spel (t.ex. `spotify.exe`, `chrome.exe`, `discord.exe`). - [ ] **Fönster-validering:** Endast processer som äger ett synligt GUI-fönster (inte bakgrundstjänster med nummer-namn) ska flaggas som aktiva spel. #### 3. Detekteringsprecision - [ ] **Fokus-detektering:** Identifiera vilket fönster som är i *foreground* (överst) för att avgöra vad användaren faktiskt spelar just nu. - [ ] **Metadata-matchning:** Matcha exekverbara filnamn mot en verifierad databas (t.ex. GameDig eller IGDB) istället för att bara lita på fönstertiteln. #### 4. Prestanda & Resursanvändning - [ ] Polling-intervallet ska vara optimerat (t.ex. var 15:e sekund) för att inte belasta CPU:n. - [ ] Implementationen ska köras asynkront för att aldrig blockera Electron-appens UI. ### Tekniska Anteckningar - Använd `desktopCapturer` som ett sekundärt filter för att verifiera att processen faktiskt renderar grafik. - För Linux: Hantera skillnader mellan `/proc`-avläsning och `xprop` för fönstertitlar.