Electron IPC Communication
Inter-process communication between Electron main and renderer processes.
Overviewβ
The Gauzy desktop app uses Electron's IPC (Inter-Process Communication) for:
- Timer controls from renderer β main
- Screenshot capture from main β renderer
- Activity data collection
- Settings synchronization
Architectureβ
Common IPC Channelsβ
| Channel | Direction | Description |
|---|---|---|
timer:start | Renderer β Main | Start timer |
timer:stop | Renderer β Main | Stop timer |
timer:status | Main β Renderer | Timer state update |
screenshot:taken | Main β Renderer | Screenshot captured |
settings:update | Both | Settings changed |
app:minimize | Renderer β Main | Minimize to tray |
Renderer β Mainβ
// In Angular component/service
const { ipcRenderer } = window.require("electron");
ipcRenderer.send("timer:start", {
projectId: "uuid",
taskId: "uuid",
});
ipcRenderer.on("timer:status", (event, data) => {
// Update UI with timer state
});
Main β Rendererβ
// In Electron main process
ipcMain.on("timer:start", (event, data) => {
timerService.start(data);
// Send status back
mainWindow.webContents.send("timer:status", { running: true });
});
Related Pagesβ
- Desktop Overview β desktop guide
- Desktop Server Mode β embedded server