Skip to content

Commit f11a24b

Browse files
committed
Update README to reflect recent improvements
1 parent 56d1db7 commit f11a24b

File tree

1 file changed

+37
-2
lines changed

1 file changed

+37
-2
lines changed

README.md

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,13 @@ Install [Pixman](https://pixman.org/) before selecting the corresponding rendere
7979
* macOS: `brew install pixman`
8080
* Ubuntu Linux / Debian: `sudo apt install libpixman-1-dev`
8181

82-
In the meantime, ensure that you choose a graphics backend and install the necessary packages beforehand.
82+
`Mado` supports multiple graphics backends. Choose one based on your deployment scenario:
83+
- SDL: Cross-platform desktop development with hardware acceleration
84+
- Linux framebuffer (fbdev): Direct hardware access for embedded Linux
85+
- VNC: Remote display via Virtual Network Computing protocol
86+
- Headless: Testing and automation without display output
87+
88+
### Backend-Specific Dependencies
8389

8490
For SDL backend, install the [SDL2 library](https://www.libsdl.org/).
8591
* macOS: `brew install sdl2`
@@ -93,13 +99,29 @@ $ tools/build-neatvnc.sh
9399
For Linux framebuffer backend, install `libudev` and `libuuid`:
94100
* Ubuntu Linux / Debian: `sudo apt install libudev-dev uuid-dev`
95101

102+
For the headless backend, no additional dependencies are required. This backend uses shared memory for rendering and can be controlled programmatically via `headless-ctl`.
103+
104+
For detailed information about each backend's features, use cases, and configuration options, see [docs/backends.md](docs/backends.md).
105+
96106
### Configuration
97107

98-
Configure via [Kconfiglib](https://pypi.org/project/kconfiglib/), you should select either SDL video, the Linux framebuffer, or VNC as the graphics backend.
108+
`Mado` uses [Kconfiglib](https://github.com/sysprog21/Kconfiglib) for flexible build configuration. Choose from multiple graphics backends: SDL, Linux framebuffer, VNC, or headless (for testing/automation).
109+
110+
For interactive configuration with a terminal menu:
99111
```shell
100112
$ make config
101113
```
102114

115+
For quick scripted configuration (recommended for most users):
116+
```shell
117+
$ make defconfig
118+
$ python3 tools/kconfig/setconfig.py --kconfig configs/Kconfig \
119+
BACKEND_SDL=y \
120+
DEMO_MULTI=y
121+
```
122+
123+
For detailed configuration options and advanced usage, see [docs/kconfig-usage.md](docs/kconfig-usage.md).
124+
103125
### Build and execution
104126

105127
Build the library and demo program:
@@ -139,6 +161,19 @@ $ ./demo-vnc
139161
This will start the VNC server. You can use any VNC client to connect using the specified IP address (default is `127.0.0.1`) and port (default is `5900`).
140162
The IP address can be set using the `MADO_VNC_HOST` environment variable, and the port can be configured using `MADO_VNC_PORT`.
141163

164+
To run demo program with the headless backend (for testing/automation):
165+
166+
```shell
167+
$ ./demo-headless &
168+
$ ./headless-ctl status # Check backend status
169+
$ ./headless-ctl shot output.png # Capture screenshot
170+
$ ./headless-ctl shutdown # Graceful shutdown
171+
```
172+
173+
The headless backend uses shared memory for rendering without display output. Use `headless-ctl` to monitor, control, and capture screenshots.
174+
Ideal for CI/CD pipelines, automated testing, and memory debugging.
175+
See [docs/backends.md](docs/backends.md) for advanced usage including event injection and live monitoring.
176+
142177
## License
143178

144179
`Mado` is available under a MIT-style license, permitting liberal commercial use.

0 commit comments

Comments
 (0)