Skip to content

Notification and package#19

Merged
CilginSinek merged 9 commits into
mainfrom
notification-and-package
Jul 6, 2026
Merged

Notification and package#19
CilginSinek merged 9 commits into
mainfrom
notification-and-package

Conversation

@CilginSinek

Copy link
Copy Markdown
Collaborator

Added notification system, impove native screen share package, Added tray mode and native key press event package for push to talk

Copilot AI review requested due to automatic review settings July 6, 2026 20:57
@CilginSinek CilginSinek merged commit edbf331 into main Jul 6, 2026
1 check passed
@CilginSinek CilginSinek deleted the notification-and-package branch July 6, 2026 20:58

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR expands the Electron desktop app with a notification system (custom iframe notifications + OS notifications), adds tray/minimize-to-tray behavior, introduces push-to-talk support via a global key hook, and swaps the custom native screenshare addon for the electron-native-screenshare package while reorganizing preload scripts.

Changes:

  • Added NotificationManager + notification IPC/preload wiring for in-app and OS notifications.
  • Implemented tray mode and push-to-talk key handling via uiohook-napi.
  • Replaced the in-repo native capture addon with electron-native-screenshare and updated preload structure/build packaging.

Reviewed changes

Copilot reviewed 20 out of 22 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
Windows.js Enables devtools only in development and adjusts preload path; tightens update-check environment gating.
utils.js Updates BrowserWindow preload paths for screenshare and OSS windows.
preloads/screenshare.js Adds dedicated screenshare preload exposing stream APIs via IPC.
preloads/oss.js Adds dedicated OSS preload exposing OSS/external-link IPC APIs.
preloads/notification.js Adds notification window preload for click/close/event IPC wiring.
preloads/main.js Renames/extends main preload APIs, adds PTT + notification response listeners, and intercepts getDisplayMedia for native audio routing.
preloads/loading.js Adds loading window preload with close IPC.
NotificationManager.js Introduces queued multi-notification window manager + OS notification helper.
main.js Adds tray mode, global error forwarding, PTT via uiohook-napi, notification IPC, and switches capture module to electron-native-screenshare.
linuxscript.js Updates desktop protocol entry and adds --disable-dev-shm-usage + icon handling; disables older sandbox/shm helpers.
package.json Bumps version, adds new native deps, modifies start scripts, and updates build file inclusion for preloads and native module.
package-lock.json Updates dependency tree for new native deps and removes old local native addon link; version fields changed.
electron-builder.config.js Updates packaged files/native unpacking and excludes uiohook-napi from this config’s build output.
native/topluyo-capture/src/wasapi_capture.h Removes legacy in-repo WASAPI capture header.
native/topluyo-capture/src/wasapi_capture.cpp Removes legacy in-repo WASAPI capture implementation.
native/topluyo-capture/src/addon.cpp Removes legacy N-API addon entrypoint.
native/topluyo-capture/package.json Removes legacy native addon package metadata.
native/topluyo-capture/package-lock.json Removes legacy native addon lockfile.
native/topluyo-capture/index.js Removes legacy JS wrapper for the native addon.
native/topluyo-capture/binding.gyp Removes legacy node-gyp build config.
native/topluyo-capture/.gitignore Removes legacy ignore rules.
native/.gitignore Removes legacy ignore rules.
Files not reviewed (1)
  • native/topluyo-capture/package-lock.json: Generated file

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread main.js
Comment on lines +8 to +11
const os = require("os");
const { uIOhook, UiohookKey } = require('uiohook-napi');
const notificationManager = require("./NotificationManager");
let currentPttKey = 'G'; // default
Comment thread package.json
Comment on lines 6 to 9
"scripts": {
"start": "NODE_ENV=production electron .",
"dev": "set NODE_ENV=development&& electron .",
"start": "ELECTRON_DISABLE_SANDBOX=1 NODE_ENV=production electron . --disable-dev-shm-usage --no-sandbox",
"dev": "ELECTRON_DISABLE_SANDBOX=1 NODE_ENV=development electron . --disable-dev-shm-usage --no-sandbox",
"start:win": "set NODE_ENV=production&& electron .",
Comment thread NotificationManager.js
Comment on lines +100 to +106
hasShadow: false,
show: false, // Don't show until ready to slide in
webPreferences: {
nodeIntegration: true,
contextIsolation: false,
preload: path.join(__dirname, 'preloads', 'notification.js')
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants