// Fenster anlegen (KONZEPT § 4.2). Das Fenster zeigt an, sonst nichts — // kein Node-Zugriff, contextIsolation an, alles läuft über die Brücke // (src/bruecke) und den MessagePort zum Kern. // „Zustand merken" (Position/Größe) kommt mit den Einstellungen im UI (W-5). import { BrowserWindow } from 'electron' import { join } from 'node:path' export function fensterErstellen(): BrowserWindow { const fenster = new BrowserWindow({ width: 1000, height: 700, minWidth: 720, minHeight: 480, show: true, autoHideMenuBar: true, // Dunkler Grund SOFORT — sonst blitzt beim Start ein weißes Rechteck, // bevor React lädt. Das warme Bühnen-Schwarz des Kino-Mixes // (oklch(0.13 0.012 60), siehe fenster/stil.css). backgroundColor: '#171412', title: 'Rippy', webPreferences: { preload: join(__dirname, '../bruecke/index.js'), contextIsolation: true, nodeIntegration: false, sandbox: true, }, }) // electron-vite: Im dev-Modus bedient ein Vite-Server das Fenster // (ELECTRON_RENDERER_URL), gebaut wird aus out/fenster geladen. const devUrl = process.env['ELECTRON_RENDERER_URL'] if (devUrl !== undefined && devUrl.length > 0) { void fenster.loadURL(devUrl) } else { void fenster.loadFile(join(__dirname, '../fenster/index.html')) } return fenster }