Una app que detecta cuándo dejas de trabajar y te lanza un aviso a pantalla completa hasta que vuelves a lo tuyo. Elige cómo la quieres:
config.json y cambia umbralSegundos (ej. 120 = 2 min). También el texto, el vídeo o cuánto oscurece.Constrúyeme una app de escritorio con Electron + Node.js y guíame paso a paso como si no supiera programar (Windows; que también valga en Mac).
OBJETIVO: una herramienta "anti-procrastinación". Detecta cuándo llevo un tiempo sin actividad (sin teclear ni mover el ratón EN TODO EL SISTEMA) y muestra un overlay a pantalla completa. Cuando vuelvo a moverme, desaparece solo.
DETECCIÓN:
- Usa powerMonitor.getSystemIdleTime() de Electron (NO librerías de terceros). Polling cada 1 segundo.
- Si el idle >= umbral y el overlay no está visible -> mostrarlo.
- Si el idle < umbral y el overlay está visible -> ocultarlo. (getSystemIdleTime se resetea con cualquier input.)
- Controla el estado con un booleano para que no parpadee.
OVERLAY (BrowserWindow sin marco, alwaysOnTop 'screen-saver', pantalla completa; overlay.html con HTML/CSS/JS plano):
- Muestra, según config: un TÍTULO, un VÍDEO (.mp4 con su audio) o IMAGEN, y un MENSAJE.
- El vídeo se reproduce solo CON sonido (app.commandLine.appendSwitch('autoplay-policy','no-user-gesture-required')).
- Una CAPA oscura semitransparente cubre toda la pantalla para que el aviso resalte (opacidad configurable).
- Dos modos: "suave" (NO bloquea: setIgnoreMouseEvents(true,{forward:true}), focusable:false, transparent:true) y "forzado" (opaco, capta foco).
CONFIG (config.json editable, créalo con defaults si no existe):
{ "umbralSegundos": 30, "modo": "suave", "media": "assets/aviso.mp4", "sonido": "", "titulo": "¡TE PILLÉ PROCRASTINANDO!", "mensaje": "Vuelve al trabajo", "opacidadSuave": 0.72, "volumen": 1.0, "todosLosMonitores": false }
BANDEJA (Tray): menú con Activar/Pausar, Abrir config.json, Recargar config, Salir. La app NO tiene ventana principal: vive en la bandeja. Instancia única (requestSingleInstanceLock). No te cierres al cerrar el overlay.
ESTRUCTURA: package.json, main.js (polling+tray+overlay), overlay.html, overlay.css, overlay.js, config.json, assets/, README.md.
AL TERMINAR, explícame en pasos simples: 1) instalar (npm install), 2) dónde pongo mi vídeo, 3) ejecutar (npm start), 4) cambiar los segundos en config.json, 5) pausar/reactivar desde la bandeja, 6) cerrarla y quitarla del todo.