const { BrowserWindow, screen } = require('electron'); const path = require('path'); const HUD_URL = process.env.FOX_HUD_URL || 'https://fox.pxo.at/hud'; let hudWindow = null; function createHud() { const { width, height } = screen.getPrimaryDisplay().workAreaSize; hudWindow = new BrowserWindow({ width, height, x: 0, y: 0, frame: false, transparent: true, alwaysOnTop: true, show: false, skipTaskbar: true, hasShadow: false, webPreferences: { preload: path.join(__dirname, 'preload.js'), contextIsolation: true, nodeIntegration: false, webSecurity: false, allowRunningInsecureContent: true, }, }); hudWindow.setAlwaysOnTop(true, 'screen-saver'); hudWindow.setVisibleOnAllWorkspaces(true, { visibleOnFullScreen: true }); hudWindow.loadURL(HUD_URL); hudWindow.on('closed', () => { hudWindow = null; }); return hudWindow; } function showHud() { if (!hudWindow) createHud(); hudWindow.show(); hudWindow.focus(); hudWindow.webContents.send('hud-show'); } function hideHud() { if (!hudWindow) return; hudWindow.webContents.send('hud-hide'); setTimeout(() => { if (hudWindow) hudWindow.hide(); }, 600); } module.exports = { createHud, showHud, hideHud };