- Shortcut: Cmd+Shift+C → Cmd+Shift+M (avoid Chrome DevTools conflict) - Preload: onData/onExit now return cleanup functions (fix memory leak) - PTY: resolve shell path at construction time, throw on missing claude CLI - Terminal: remove allowProposedApi, dedupe resize listeners, add cleanup - Main: debounce window move config writes (500ms), restart PTY on activate - CSS: remove unused orbGlow keyframes - Package: fix appId to com.apaam.myclaude, skip code signing, remove unused deps
29 lines
1.0 KiB
JavaScript
29 lines
1.0 KiB
JavaScript
const { contextBridge, ipcRenderer } = require('electron')
|
|
|
|
const api = {
|
|
pty: {
|
|
write: (data) => ipcRenderer.send('pty:write', data),
|
|
resize: (cols, rows) => ipcRenderer.send('pty:resize', cols, rows),
|
|
onData: (callback) => {
|
|
const handler = (_event, data) => callback(data)
|
|
ipcRenderer.on('pty:data', handler)
|
|
return () => ipcRenderer.removeListener('pty:data', handler)
|
|
},
|
|
onExit: (callback) => {
|
|
const handler = (_event, code) => callback(code)
|
|
ipcRenderer.on('pty:exit', handler)
|
|
return () => ipcRenderer.removeListener('pty:exit', handler)
|
|
},
|
|
},
|
|
window: {
|
|
expand: () => ipcRenderer.send('window:expand'),
|
|
collapse: () => ipcRenderer.send('window:collapse'),
|
|
setPosition: (x, y) => ipcRenderer.send('window:set-position', x, y),
|
|
setIgnoreMouseEvents: (ignore) => ipcRenderer.send('window:set-ignore-mouse', ignore),
|
|
close: () => ipcRenderer.send('window:close'),
|
|
minimize: () => ipcRenderer.send('window:minimize'),
|
|
},
|
|
}
|
|
|
|
contextBridge.exposeInMainWorld('petAPI', api)
|