Document screen sharing across the website and handbook
This commit is contained in:
1 parent
e7d92280d6
commit
a88d05a9f2
5 files changed
+47
-3
No files matched your search
@@ -28,6 +28,8 @@ cohesive experience—beautiful by default and unmistakably yours.
|
|||||||
motion that update without restarting your session.
|
motion that update without restarting your session.
|
||||||
- **Ready for real setups:** gestures, multi-monitor support, fractional
|
- **Ready for real setups:** gestures, multi-monitor support, fractional
|
||||||
scaling, screenshots, background services and session locking.
|
scaling, screenshots, background services and session locking.
|
||||||
|
- **Screen sharing:** a native display picker and PipeWire video streams for
|
||||||
|
portal-compatible recording and conferencing apps.
|
||||||
|
|
||||||
## Make it yours
|
## Make it yours
|
||||||
|
|
||||||
@@ -92,6 +94,7 @@ Settings → Shortcuts** to change them or assign gestures to other actions.
|
|||||||
- [Desktop widgets](docs/desktop-widgets.md)
|
- [Desktop widgets](docs/desktop-widgets.md)
|
||||||
- [Notifications](docs/notifications.md)
|
- [Notifications](docs/notifications.md)
|
||||||
- [Native locker](docs/locking.md)
|
- [Native locker](docs/locking.md)
|
||||||
|
- [Screen sharing and recording](docs/screen-sharing.md)
|
||||||
|
|
||||||
## Development
|
## Development
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,9 @@ Applications use the standard desktop portal to request a display, then receive
|
|||||||
video through PipeWire. A recorder or conferencing application handles encoding,
|
video through PipeWire. A recorder or conferencing application handles encoding,
|
||||||
saving files, or sending video; those tasks do not run inside the compositor.
|
saving files, or sending video; those tasks do not run inside the compositor.
|
||||||
|
|
||||||
|
There is no built-in Record button or video-file recorder in the shell yet.
|
||||||
|
Start recording from an application that supports the Wayland ScreenCast portal.
|
||||||
|
|
||||||
## Start sharing
|
## Start sharing
|
||||||
|
|
||||||
Use a Wayland screen-sharing or recording source in your application. Ferese
|
Use a Wayland screen-sharing or recording source in your application. Ferese
|
||||||
@@ -55,6 +58,32 @@ or multiple-display recording can therefore use significant CPU and memory
|
|||||||
bandwidth. A paused stream checks capture availability once per second so locking
|
bandwidth. A paused stream checks capture availability once per second so locking
|
||||||
also ends sessions without an active consumer.
|
also ends sessions without an active consumer.
|
||||||
|
|
||||||
|
## Development checks
|
||||||
|
|
||||||
|
Build the backend after installing the native dependencies in the
|
||||||
|
[installation guide](installation.md#requirements):
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cargo build --release --locked -p xdg-desktop-portal-ferese
|
||||||
|
cargo test --locked -p xdg-desktop-portal-ferese
|
||||||
|
```
|
||||||
|
|
||||||
|
The opt-in integration test opens a temporary nested compositor and uses a
|
||||||
|
private D-Bus session. It requires built Ferese and locker binaries, Python
|
||||||
|
GI/GStreamer with `pipewiresrc`, `dbus-daemon`, `xdg-desktop-portal`, and `bwrap`.
|
||||||
|
It checks capture delivery, cancellation, frontend loss, and lock revocation:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
FERESE_TEST_PORTAL=1 \
|
||||||
|
FERESE_TEST_PORTAL_BINARY=target/release/xdg-desktop-portal-ferese \
|
||||||
|
python3 scripts/tests/test_portal_isolated.py
|
||||||
|
```
|
||||||
|
|
||||||
|
Add `FERESE_TEST_PORTAL_CONSENT=1` to exercise the native picker and restricted
|
||||||
|
PipeWire connection. Select the temporary display and click **Share** when
|
||||||
|
prompted. Tests capture only the nested preview and leave host PAM policies and
|
||||||
|
D-Bus activation unchanged.
|
||||||
|
|
||||||
## Troubleshooting
|
## Troubleshooting
|
||||||
|
|
||||||
Confirm that `XDG_CURRENT_DESKTOP` contains `Ferese`, PipeWire is running, and
|
Confirm that `XDG_CURRENT_DESKTOP` contains `Ferese`, PipeWire is running, and
|
||||||
|
|||||||
+2
-1
@@ -18,7 +18,8 @@ site sources or Markdown guides, then refresh the browser.
|
|||||||
|
|
||||||
- `site/index.html` and `site/styles.css`: homepage and shared visual design.
|
- `site/index.html` and `site/styles.css`: homepage and shared visual design.
|
||||||
- `site/content/index.md`: handbook introduction.
|
- `site/content/index.md`: handbook introduction.
|
||||||
- `docs/{installation,configuration,desktop-widgets,notifications}.md`: source guides.
|
- `docs/{installation,configuration,desktop-widgets,notifications,locking,screen-sharing}.md`:
|
||||||
|
source guides.
|
||||||
- `scripts/build-site.py`: renders Markdown, resolves links, generates section
|
- `scripts/build-site.py`: renders Markdown, resolves links, generates section
|
||||||
navigation, previous/next links, and the search index.
|
navigation, previous/next links, and the search index.
|
||||||
- `site/app.js`: handbook search and code copying. Reading and navigation work
|
- `site/app.js`: handbook search and code copying. Reading and navigation work
|
||||||
|
|||||||
@@ -43,6 +43,13 @@ If you prefer a text editor, your configuration lives at:
|
|||||||
|
|
||||||
Ferese reloads changes as you make them. An invalid edit keeps the last working configuration. Settings also preserves a backup of your previous save. See [Saving and validation](configuration.md#saving-and-validation).
|
Ferese reloads changes as you make them. An invalid edit keeps the last working configuration. Settings also preserves a backup of your previous save. See [Saving and validation](configuration.md#saving-and-validation).
|
||||||
|
|
||||||
|
## Share your screen
|
||||||
|
|
||||||
|
Use Ferese’s native display picker to share a monitor with a portal-compatible
|
||||||
|
recording or conferencing app. The app handles saving or sending video; Ferese
|
||||||
|
does not yet have a Record button in the shell. See [Screen sharing and
|
||||||
|
recording](screen-sharing.md) for setup, stopping a session, and supported sources.
|
||||||
|
|
||||||
## Keep a recovery path
|
## Keep a recovery path
|
||||||
|
|
||||||
Keep another desktop session available while testing hardware behavior. Save your work before logging out: `feresectl exit` and **Super + Shift + E** end the current session immediately.
|
Keep another desktop session available while testing hardware behavior. Save your work before logging out: `feresectl exit` and **Super + Shift + E** end the current session immediately.
|
||||||
@@ -59,5 +66,3 @@ cargo fmt --all --check
|
|||||||
```
|
```
|
||||||
|
|
||||||
The [source repository](https://github.com/ferese-wm/ferese) is the place to explore implementation details and report issues. When reporting a problem, include how to reproduce it, whether you used the nested or DRM backend, and relevant logs.
|
The [source repository](https://github.com/ferese-wm/ferese) is the place to explore implementation details and report issues. When reporting a problem, include how to reproduce it, whether you used the nested or DRM backend, and relevant logs.
|
||||||
|
|
||||||
[Screen sharing](screen-sharing.md) covers display consent, PipeWire streams, and recording support.
|
|
||||||
@@ -112,6 +112,12 @@
|
|||||||
<a href="docs/installation.html#preview-and-logs">preview Ferese</a>
|
<a href="docs/installation.html#preview-and-logs">preview Ferese</a>
|
||||||
inside an existing Wayland session before installing.
|
inside an existing Wayland session before installing.
|
||||||
</p>
|
</p>
|
||||||
|
<p>
|
||||||
|
Share a display with recording and conferencing apps through Ferese’s
|
||||||
|
native screen-sharing portal. Choose what to share and stop at any time.
|
||||||
|
See <a href="docs/screen-sharing.html">screen sharing and recording</a>
|
||||||
|
for setup and current capabilities.
|
||||||
|
</p>
|
||||||
<p>
|
<p>
|
||||||
Built in Rust on Smithay. Development happens
|
Built in Rust on Smithay. Development happens
|
||||||
<a href="https://github.com/ferese-wm/ferese">on GitHub</a>.
|
<a href="https://github.com/ferese-wm/ferese">on GitHub</a>.
|
||||||
|
|||||||
Reference in new issue
Block a user