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