You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
README.md now focuses on SDL2 as the primary development backend with
a simple quick-start guide. Full backend documentation (SDL, fbdev, VNC,
headless) with dependencies, build, and run instructions is now in
docs/backends.md.
Copy file name to clipboardExpand all lines: README.md
+13-62Lines changed: 13 additions & 62 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -79,100 +79,51 @@ Install [Pixman](https://pixman.org/) before selecting the corresponding rendere
79
79
* macOS: `brew install pixman`
80
80
* Ubuntu Linux / Debian: `sudo apt install libpixman-1-dev`
81
81
82
+
### Graphics Backend
83
+
82
84
`Mado` supports multiple graphics backends. Choose one based on your deployment scenario:
83
85
- SDL: Cross-platform desktop development with hardware acceleration
84
86
- Linux framebuffer (fbdev): Direct hardware access for embedded Linux
85
87
- VNC: Remote display via Virtual Network Computing protocol
86
88
- Headless: Testing and automation without display output
87
89
88
-
### Backend-Specific Dependencies
90
+
`Mado` uses SDL2 as the primary development and demonstration backend, providing cross-platform graphics with hardware acceleration. For other backend options (Linux framebuffer, VNC, headless), see [docs/backends.md](docs/backends.md).
89
91
90
-
For SDL backend, install the [SDL2 library](https://www.libsdl.org/).
92
+
Install the [SDL2 library](https://www.libsdl.org/):
91
93
* macOS: `brew install sdl2`
92
94
* Ubuntu Linux / Debian: `sudo apt install libsdl2-dev`
93
95
94
-
For the VNC backend, please note that it has only been tested on GNU/Linux, and the prebuilt [neatvnc](https://github.com/any1/neatvnc) package might be outdated. To ensure you have the latest version, you can build the required packages from source by running the script:
95
-
```shell
96
-
$ tools/build-neatvnc.sh
97
-
```
98
-
99
-
For Linux framebuffer backend, install `libudev` and `libuuid`:
100
-
* Ubuntu Linux / Debian: `sudo apt install libudev-dev uuid-dev`
101
-
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
-
106
96
### Configuration
107
97
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).
98
+
`Mado` uses [Kconfiglib](https://github.com/sysprog21/Kconfiglib) for flexible build configuration.
109
99
110
-
For interactive configuration with a terminal menu:
100
+
For quick setup with defaults (SDL backend enabled):
111
101
```shell
112
-
$ make config
102
+
$ make defconfig
113
103
```
114
104
115
-
For quick scripted configuration (recommended for most users):
105
+
For interactive configuration (to explore all options):
For detailed configuration options and advanced usage, see [docs/kconfig-usage.md](docs/kconfig-usage.md).
124
-
125
-
### Build and execution
110
+
### Build and Execution
126
111
127
112
Build the library and demo program:
128
113
129
114
```shell
130
115
$ make
131
116
```
132
117
133
-
To run demo program with SDL backend:
118
+
Run the demo program:
134
119
135
120
```shell
136
121
$ ./demo-sdl
137
122
```
138
123
139
-
Once the window appears, you should be able to move the windows and interact with the widgets.
140
-
141
-
To run demo program with the Linux framebuffer backend:
142
-
143
-
```shell
144
-
$ sudo ./demo-fbdev
145
-
```
146
-
147
-
Normal users don't have access to `/dev/fb0` so require `sudo`. Alternatively, you can add the user to the video group to avoid typing `sudo` every time:
148
-
149
-
```shell
150
-
$ sudo usermod -a -G video $USERNAME
151
-
```
152
-
153
-
In addition, the framebuffer device can be assigned via the environment variable `FRAMEBUFFER`.
154
-
155
-
To run demo program with the VNC backend:
156
-
157
-
```shell
158
-
$ ./demo-vnc
159
-
```
160
-
161
-
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`).
162
-
The IP address can be set using the `MADO_VNC_HOST` environment variable, and the port can be configured using `MADO_VNC_PORT`.
163
-
164
-
To run demo program with the headless backend (for testing/automation):
Normal users don't have access to `/dev/fb0`, requiring `sudo`. Alternatively, add the user to the video group:
71
+
```shell
72
+
sudo usermod -a -G video $USERNAME
46
73
```
47
74
75
+
The framebuffer device can be assigned via the environment variable `FRAMEBUFFER`.
76
+
48
77
**Use Cases:**
49
78
- Embedded Linux systems
50
79
- Kiosk applications
@@ -61,13 +90,30 @@ Provides remote display capabilities through the VNC (Virtual Network Computing)
61
90
- Built-in authentication
62
91
- Compression support
63
92
93
+
**Dependencies:**
94
+
Install [neatvnc](https://github.com/any1/neatvnc). Note: The VNC backend has only been tested on GNU/Linux, and prebuilt packages might be outdated. To ensure the latest version, build from source:
0 commit comments