docs: add PipeWire integration instructions for snaps (#40019)

This commit is contained in:
Athul Iddya 2023-10-02 03:19:23 -07:00 committed by GitHub
parent 93bcb30c3e
commit 37c79ea844
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -91,14 +91,14 @@ version: '0.1'
summary: Hello World Electron app summary: Hello World Electron app
description: | description: |
Simple Hello World Electron app as an example Simple Hello World Electron app as an example
base: core18 base: core22
confinement: strict confinement: strict
grade: stable grade: stable
apps: apps:
electron-packager-hello-world: electron-packager-hello-world:
command: electron-quick-start/electron-quick-start --no-sandbox command: electron-quick-start/electron-quick-start --no-sandbox
extensions: [gnome-3-34] extensions: [gnome]
plugs: plugs:
- browser-support - browser-support
- network - network
@ -237,6 +237,34 @@ apps:
desktop: usr/share/applications/desktop.desktop desktop: usr/share/applications/desktop.desktop
``` ```
## Optional: Enabling desktop capture
Capturing the desktop requires PipeWire library in some Linux configurations that use
the Wayland protocol. To bundle PipeWire with your application, ensure that the base
snap is set to `core22` or newer. Next, create a part called `pipewire` and add it to
the `after` section of your application:
```yaml
pipewire:
plugin: nil
build-packages: [libpipewire-0.3-dev]
stage-packages: [pipewire]
prime:
- usr/lib/*/pipewire-*
- usr/lib/*/spa-*
- usr/lib/*/libpipewire*.so*
- usr/share/pipewire
```
Finally, configure your application's environment for PipeWire:
```yaml
environment:
SPA_PLUGIN_DIR: $SNAP/usr/lib/$CRAFT_ARCH_TRIPLET/spa-0.2
PIPEWIRE_CONFIG_NAME: $SNAP/usr/share/pipewire/pipewire.conf
PIPEWIRE_MODULE_DIR: $SNAP/usr/lib/$CRAFT_ARCH_TRIPLET/pipewire-0.3
```
[snapcraft-syntax]: https://docs.snapcraft.io/build-snaps/syntax [snapcraft-syntax]: https://docs.snapcraft.io/build-snaps/syntax
[electron-packager]: https://github.com/electron/electron-packager [electron-packager]: https://github.com/electron/electron-packager
[electron-forge]: https://github.com/electron/forge [electron-forge]: https://github.com/electron/forge