48 lines
1.4 KiB
Markdown
48 lines
1.4 KiB
Markdown
# Ferese
|
||
|
||
Ferese is an experimental Wayland tiling compositor written in Rust with
|
||
Smithay. The nested M0–M3 path is complete, including tiling, workspaces, and
|
||
timestamp-driven animated geometry. Development now targets the M4 early
|
||
hardware-session milestone in the
|
||
[window-manager specification](docs/ferese-window-manager-spec.md).
|
||
|
||
## Development
|
||
|
||
Install the native dependencies required by Smithay's winit and GLES backends,
|
||
then run:
|
||
|
||
```bash
|
||
cargo run -p ferese
|
||
```
|
||
|
||
Pass a client and its arguments after `--` to launch it inside Ferese:
|
||
|
||
```bash
|
||
cargo run -p ferese -- foot
|
||
```
|
||
|
||
Set `RUST_LOG=ferese=debug` for detailed compositor logging.
|
||
|
||
### Direct DRM session
|
||
|
||
Run the hardware backend from a spare TTY, outside another graphical session:
|
||
|
||
```bash
|
||
RUST_LOG=ferese=debug cargo run -p ferese -- --backend=drm -- foot
|
||
```
|
||
|
||
Do not run that command from a terminal inside the active desktop: the direct
|
||
backend requests control of the seat and primary DRM device. Use
|
||
Ctrl+Alt+F1–F12 to switch virtual terminals.
|
||
|
||
M4 validation requires the direct session to:
|
||
|
||
- start `foot` and render the same animated tiling workload as the nested path;
|
||
- retain keyboard and pointer input;
|
||
- pause when switching away and redraw after switching back; and
|
||
- log page-flip timing and any missed presentation deadlines on the reference
|
||
integrated GPU.
|
||
|
||
The direct path currently targets one connected output. Multi-output hotplug is
|
||
part of M5.
|