feat: implement Phase 5 system handlers (automation, power, recording)

- Implement window control, wallpaper reset, and power management.
- Add Aperture recording wrapper and displayplacer layout control.
- Add self-update logic stub for local/remote sources.
- Register and expose handlers via context bridge.
This commit is contained in:
Scott Idem
2026-01-30 11:34:53 -05:00
parent 3d7aa1ab92
commit fb8af70742
15 changed files with 803 additions and 15 deletions

9
dist/main/index.js vendored
View File

@@ -40,6 +40,7 @@ const config_loader_1 = require("./config_loader");
const api_client_1 = require("./api_client");
const shell_handlers_1 = require("./shell_handlers");
const file_handlers_1 = require("./file_handlers");
const system_handlers_1 = require("./system_handlers");
let mainWindow = null;
let cachedSeed = null;
let cachedFullConfig = null;
@@ -49,7 +50,7 @@ async function createWindow() {
cachedFullConfig = await (0, api_client_1.fetchFullConfig)(cachedSeed);
}
mainWindow = new electron_1.BrowserWindow({
width: 1400,
width: 1600,
height: 900,
title: 'OSIT Aether Launcher (Native)',
webPreferences: {
@@ -67,6 +68,7 @@ async function createWindow() {
const useHost = (host.includes('localhost')) ? host : 'demo.localhost:5173';
targetUrl = `http://${useHost}/events/${eventId}/launcher/${locationId}`;
}
mainWindow.webContents.openDevTools();
mainWindow.loadURL(targetUrl).catch(() => {
mainWindow?.loadURL('https://dev-demo.oneskyit.com/');
});
@@ -74,6 +76,7 @@ async function createWindow() {
}
(0, shell_handlers_1.registerShellHandlers)();
(0, file_handlers_1.registerFileHandlers)();
(0, system_handlers_1.registerSystemHandlers)();
electron_1.app.on('ready', createWindow);
electron_1.app.on('window-all-closed', () => {
if (process.platform !== 'darwin')
@@ -104,7 +107,9 @@ electron_1.ipcMain.handle('get-device-info', async () => {
cpus: os.cpus().length,
total_mem: os.totalmem(),
free_mem: os.freemem(),
ip_addresses: addresses
ip_addresses: addresses,
home_directory: os.homedir(),
tmp_directory: os.tmpdir()
};
});
//# sourceMappingURL=index.js.map