82 lines
3.3 KiB
Markdown
82 lines
3.3 KiB
Markdown
# Screen sharing and recording
|
|
|
|
Share a monitor or window from a Wayland-compatible recording or conferencing app,
|
|
or save a video using the top bar. [Installation](installation.md) includes the
|
|
portal and PipeWire dependencies.
|
|
|
|
## Record from the top bar
|
|
|
|
1. Click the recording icon.
|
|
2. Select a monitor and click **Share**.
|
|
3. Click the stop square to finish.
|
|
|
|
Videos are saved as VP8 WebM files in your XDG Videos folder under `Ferese`.
|
|
A notification shows the saved path. Audio and region recording are not supported
|
|
by the built-in recorder; other recording apps can handle audio separately.
|
|
If recording fails, a notification reports the error and any unfinished
|
|
`.webm.part` file.
|
|
|
|
## Start sharing
|
|
|
|
Select a Wayland screen-sharing source in your application. In Ferese's picker,
|
|
choose a display or window and click **Share**. Nothing is selected initially.
|
|
Apps requesting multiple sources can select up to eight.
|
|
|
|
A shared display includes everything visible on it, including notifications.
|
|
A shared window includes only that app's content and subsurfaces, even when
|
|
covered or on another workspace. Separate popups and compositor decorations are
|
|
excluded. Resizing a shared window updates its video size; closing it ends sharing.
|
|
|
|
The picker follows your shell colors, font, corners, opacity, and blur.
|
|
|
|
## Stop sharing
|
|
|
|
Click **Stop sharing** in the sharing window, or close that window. The built-in
|
|
recorder uses the top-bar stop button instead. Sharing also ends when the app
|
|
closes or Ferese locks. Disconnecting a shared monitor or changing its capture
|
|
size ends its stream; start sharing again afterward.
|
|
|
|
## Remember permissions
|
|
|
|
When an app requests saved display permissions, the picker offers **Allow without
|
|
asking**, off by default. Approval lasts for the duration requested by the app.
|
|
The portal manages stored permissions and revocation.
|
|
|
|
A different app, changed display, or changed cursor option needs approval again.
|
|
Nested previews and displays without a reliable identity always ask. Window
|
|
permissions are not saved. Stopping a stream does not erase a saved permission.
|
|
|
|
## Requirements and limits
|
|
|
|
Install PipeWire, WirePlumber, `xdg-desktop-portal`, and `xdg-desktop-portal-gtk`.
|
|
The built-in recorder also needs GStreamer's PipeWire, base, and good plugins;
|
|
see the [package lists](installation.md#requirements).
|
|
|
|
The installer supplies Ferese's portal backend and selects it for screen sharing.
|
|
Log into a new Ferese session after installation.
|
|
|
|
Streams run at up to 30 fps and support hidden or embedded cursors. Capture copies
|
|
frames through CPU-accessible buffers, so large or multiple streams can use
|
|
substantial CPU and memory bandwidth.
|
|
|
|
## Troubleshooting
|
|
|
|
- Confirm PipeWire and WirePlumber are running.
|
|
- Confirm `XDG_CURRENT_DESKTOP` includes `Ferese`.
|
|
- Check that `FERESE_ENABLE_SCREENCOPY` was not set to `0` before session startup.
|
|
- Check for portal overrides in `~/.config/xdg-desktop-portal/`.
|
|
|
|
The installed preference is `/usr/share/xdg-desktop-portal/ferese-portals.conf`.
|
|
Its ScreenCast entry should select Ferese:
|
|
|
|
```ini
|
|
[preferred]
|
|
default=gtk;
|
|
org.freedesktop.impl.portal.ScreenCast=ferese;
|
|
```
|
|
|
|
`xdg-desktop-portal-ferese --sources` lists displays on the current
|
|
`WAYLAND_DISPLAY` without starting a stream. Nested previews do not replace the
|
|
host desktop's portal environment. See [Development](development.md#portal-checks)
|
|
for isolated sharing tests.
|