Simplify documentation and website; expand shortcut guides
This commit is contained in:
1 parent
46509f880a
commit
4d60c296a7
26 files changed
+1060
-1032
No files matched your search
@@ -0,0 +1,80 @@
|
||||
# Development
|
||||
|
||||
Install the [build dependencies](installation.md#requirements), then run:
|
||||
|
||||
```sh
|
||||
cargo build --release --locked --workspace
|
||||
cargo test --workspace --locked
|
||||
cargo fmt --all --check
|
||||
```
|
||||
|
||||
Use release builds for performance and animation checks. Preview changes in a
|
||||
[nested session](installation.md#preview-and-logs) before testing hardware behavior.
|
||||
Keep another desktop available for direct-session recovery.
|
||||
|
||||
## Test guides
|
||||
|
||||
- [Animation checks](animation-validation.md): transitions, interruption, and hit testing.
|
||||
- [Nested resize checks](nested-resize-testing.md): wallpaper and bar responsiveness.
|
||||
- [Client soak testing](native-soak-testing.md): repeated client lifecycle and resource growth.
|
||||
- [Performance measurements](performance-baseline.md): sampling and historical results.
|
||||
|
||||
The [compositor](ferese-window-manager-spec.md), [shell](ferese-shell-design.md),
|
||||
and [theme](ferese-theme-ui-spec.md) references describe the main code boundaries.
|
||||
|
||||
## Portal checks
|
||||
|
||||
Run backend unit tests and compare D-Bus contracts against installed portal XML:
|
||||
|
||||
```sh
|
||||
cargo test --locked -p xdg-desktop-portal-ferese
|
||||
python3 scripts/tests/test_portal_contracts.py
|
||||
```
|
||||
|
||||
The contract test uses a private bus. It checks signatures, appearance changes,
|
||||
invalid-config retention, and caller authorization. It does not prove complete
|
||||
compatibility with every app or open consent dialogs.
|
||||
|
||||
With release binaries built, run isolated integration checks:
|
||||
|
||||
```sh
|
||||
FERESE_TEST_SHORTCUTS=1 python3 scripts/tests/test_shortcuts_isolated.py
|
||||
FERESE_TEST_WINDOW_CAPTURE=1 python3 scripts/tests/test_window_capture_isolated.py
|
||||
FERESE_TEST_INHIBIT=1 python3 scripts/tests/test_inhibit_isolated.py
|
||||
FERESE_TEST_RESTORE=1 python3 scripts/tests/test_restore_isolated.py
|
||||
FERESE_TEST_WINDOW_STREAM=1 python3 scripts/tests/test_window_stream_isolated.py
|
||||
```
|
||||
|
||||
These cover shortcut cleanup, window capture, inhibitors, restored permissions,
|
||||
and live window streams. Check each script's dependencies before running it.
|
||||
They use disposable nested sessions or private buses.
|
||||
|
||||
For monitor streaming and lock revocation, install Python GI/GStreamer with
|
||||
`pipewiresrc`, `dbus-daemon`, `xdg-desktop-portal`, and `bwrap`, then run:
|
||||
|
||||
```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 picker. Choose the temporary
|
||||
display and click **Share**. Tests must target the nested preview, not the host desktop.
|
||||
|
||||
Check real encoding and the private InputCapture transport:
|
||||
|
||||
```sh
|
||||
cargo test --locked -p xdg-desktop-portal-ferese --bin ferese-record encoder_finishes_a_real_webm -- --ignored
|
||||
cargo test --locked -p ferese input_capture::tests
|
||||
cargo test --locked -p xdg-desktop-portal-ferese eis::tests -- --ignored
|
||||
```
|
||||
|
||||
Encoding needs the recorder's GStreamer plugins. The transport test needs libei
|
||||
and uses synthetic input over a private socket pair. Hardware pointer barriers,
|
||||
multiple monitors, display sleep, and live authentication still need session tests.
|
||||
|
||||
## Report a bug
|
||||
|
||||
Include the commit or installed release, reproduction steps, backend (nested or
|
||||
direct), monitor scales/transforms, and relevant logs. Avoid publishing passwords,
|
||||
access tokens, or private window content.
|
||||
Reference in new issue
Block a user