Restructure the Electron application by separating concerns into new modules (windows, ipc, sentinel), introduce TypeScript types for IPC, and update build configurations and entry points for desktop applications. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 9203795e-937a-4306-b81d-b4d5c78c240e Replit-Commit-Checkpoint-Type: intermediate_checkpoint Replit-Commit-Event-Id: 714c0a0f-ae39-4276-a53a-1f68eb5443fa Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/7c94b7a0-29c7-4f2e-94ef-44b2153872b7/9203795e-937a-4306-b81d-b4d5c78c240e/CdxgfN4 Replit-Helium-Checkpoint-Created: true
35 lines
748 B
JavaScript
35 lines
748 B
JavaScript
import { app, globalShortcut } from "electron";
|
|
import {
|
|
createMainWindow,
|
|
createOverlayWindow,
|
|
toggleMainVisibility,
|
|
} from "./windows.js";
|
|
import { registerIpcHandlers } from "./ipc.js";
|
|
import { startClipboardSentinel, stopClipboardSentinel } from "./sentinel.js";
|
|
|
|
app.whenReady().then(() => {
|
|
registerIpcHandlers();
|
|
|
|
createMainWindow();
|
|
createOverlayWindow();
|
|
|
|
startClipboardSentinel();
|
|
|
|
globalShortcut.register("Alt+Space", toggleMainVisibility);
|
|
});
|
|
|
|
app.on("window-all-closed", () => {
|
|
stopClipboardSentinel();
|
|
if (process.platform !== "darwin") {
|
|
app.quit();
|
|
}
|
|
});
|
|
|
|
app.on("activate", () => {
|
|
createMainWindow();
|
|
});
|
|
|
|
app.on("will-quit", () => {
|
|
globalShortcut.unregisterAll();
|
|
stopClipboardSentinel();
|
|
});
|