- JavaScript 100%
| .forgejo/workflows | ||
| build | ||
| src | ||
| .gitignore | ||
| Dockerfile.release | ||
| main.js | ||
| package-lock.json | ||
| package.json | ||
| preload.js | ||
| README.md | ||
Sunburn Desktop
Desktop client for Sunburn with per-app audio capture for screen sharing.
Features
- Full voice/video/screen sharing (Chromium WebRTC)
- Per-app audio capture — share audio from a specific application, not your entire system
- Linux: PipeWire integration
- Windows: WASAPI per-process capture
- Custom screen share picker with audio source selection
- Auto-updates — notifies you when a new version is available
- Persistent login sessions
Install
Linux (AppImage)
Download the latest AppImage from Releases.
chmod +x Sunburn-*.AppImage
./Sunburn-*.AppImage
To add to your app launcher:
# Move to a permanent location
mkdir -p ~/.local/bin
mv Sunburn-*.AppImage ~/.local/bin/sunburn
Or install AppImageLauncher for automatic desktop integration:
# Arch Linux
yay -S appimagelauncher
Then double-click the AppImage and it will offer to integrate into your app menu.
Windows
Download Sunburn-Setup-*.exe from Releases and run the installer.
Note: Per-app audio capture requires Windows 10 Build 2004 (May 2020) or later.
Updates
The app checks for updates automatically every 30 minutes. When an update is available, a banner appears at the top of the app. Click "Restart to update" to apply it.
Development
npm install
npm start
Building
# Linux AppImage
npm run build:linux
# Windows installer (cross-compile via Wine)
npm run build:win
# Both
npm run build:all
Releasing
Releases are automated by CI (.forgejo/workflows/release.yml). To ship an
update:
- Bump
versioninpackage.json. - Merge to
master.
On push to master the runner builds both platforms and publishes them to the
rolling latest Forgejo release; the auto-updater picks it up automatically.
The job skips if latest already serves the current version. Requires a
RELEASE_TOKEN repo secret with release-write access.
Per-App Audio Capture
When screen sharing, the app shows a custom picker with two sections:
- Screens/Windows — select what to share visually
- Audio Sources — select which app's audio to include
How it works
- Linux: Creates a PipeWire loopback that routes the selected app's audio output to a virtual capture source
- Windows: Uses WASAPI
application-loopbackto capture audio from a specific process ID