const { app, BrowserWindow, ipcMain, clipboard } = require('electron') const path = require('node:path') let mainWindow = null function createWindow () { const windowOptions = { width: 600, height: 400, title: 'Clipboard copy', webPreferences: { preload: path.join(__dirname, 'preload.js') } } mainWindow = new BrowserWindow(windowOptions) mainWindow.loadFile('index.html') mainWindow.on('closed', () => { mainWindow = null }) } ipcMain.handle('clipboard:writeText', (event, text) => { clipboard.writeText(text) }) app.whenReady().then(() => { createWindow() app.on('activate', function () { if (BrowserWindow.getAllWindows().length === 0) createWindow() }) }) app.on('window-all-closed', function () { if (process.platform !== 'darwin') app.quit() })