2018-03-04 21:33:45 +00:00
|
|
|
# wlroots
|
2017-04-25 15:32:52 +00:00
|
|
|
|
2018-04-13 01:29:45 +00:00
|
|
|
Pluggable, composable, unopinionated modules for building a
|
2018-11-24 20:24:20 +00:00
|
|
|
[Wayland](http://wayland.freedesktop.org/) compositor; or about 50,000 lines of
|
2018-04-13 01:29:45 +00:00
|
|
|
code you were going to write anyway.
|
2017-04-25 15:32:52 +00:00
|
|
|
|
2018-04-13 01:29:45 +00:00
|
|
|
- wlroots provides backends that abstract the underlying display and input
|
2021-02-23 19:43:17 +00:00
|
|
|
hardware, including KMS/DRM, libinput, Wayland, X11, and headless backends,
|
|
|
|
plus any custom backends you choose to write, which can all be created or
|
|
|
|
destroyed at runtime and used in concert with each other.
|
2018-04-13 01:29:45 +00:00
|
|
|
- wlroots provides unopinionated, mostly standalone implementations of many
|
2021-02-23 19:43:17 +00:00
|
|
|
Wayland interfaces, both from wayland.xml and various protocol extensions.
|
|
|
|
We also promote the standardization of portable extensions across
|
|
|
|
many compositors.
|
2018-04-13 01:33:51 +00:00
|
|
|
- wlroots provides several powerful, standalone, and optional tools that
|
2021-02-23 19:43:17 +00:00
|
|
|
implement components common to many compositors, such as the arrangement of
|
|
|
|
outputs in physical space.
|
2018-04-13 01:29:45 +00:00
|
|
|
- wlroots provides an Xwayland abstraction that allows you to have excellent
|
2021-02-23 19:43:17 +00:00
|
|
|
Xwayland support without worrying about writing your own X11 window manager
|
|
|
|
on top of writing your compositor.
|
2018-04-13 01:29:45 +00:00
|
|
|
- wlroots provides a renderer abstraction that simple compositors can use to
|
2021-02-23 19:43:17 +00:00
|
|
|
avoid writing GL code directly, but which steps out of the way when your
|
|
|
|
needs demand custom rendering code.
|
2017-08-13 12:29:04 +00:00
|
|
|
|
2018-04-13 01:29:45 +00:00
|
|
|
wlroots implements a huge variety of Wayland compositor features and implements
|
|
|
|
them *right*, so you can focus on the features that make your compositor
|
|
|
|
unique. By using wlroots, you get high performance, excellent hardware
|
2018-05-03 20:43:54 +00:00
|
|
|
compatibility, broad support for many wayland interfaces, and comfortable
|
2018-04-13 01:29:45 +00:00
|
|
|
development tools - or any subset of these features you like, because all of
|
|
|
|
them work independently of one another and freely compose with anything you want
|
|
|
|
to implement yourself.
|
|
|
|
|
2018-10-12 12:27:09 +00:00
|
|
|
Check out our [wiki](https://github.com/swaywm/wlroots/wiki/Getting-started) to
|
|
|
|
get started with wlroots.
|
2017-08-13 12:29:04 +00:00
|
|
|
|
2018-04-13 01:29:45 +00:00
|
|
|
wlroots is developed under the direction of the
|
|
|
|
[sway](https://github.com/swaywm/sway) project. A variety of wrapper libraries
|
|
|
|
[are available](https://github.com/swaywm) for using it with your favorite
|
|
|
|
programming language.
|
2017-06-06 14:54:53 +00:00
|
|
|
|
|
|
|
## Building
|
|
|
|
|
|
|
|
Install dependencies:
|
|
|
|
|
2018-04-13 01:29:45 +00:00
|
|
|
* meson
|
2017-06-06 14:54:53 +00:00
|
|
|
* wayland
|
|
|
|
* wayland-protocols
|
|
|
|
* EGL
|
|
|
|
* GLESv2
|
2018-04-13 01:29:45 +00:00
|
|
|
* libdrm
|
2017-06-06 14:54:53 +00:00
|
|
|
* GBM
|
|
|
|
* libinput
|
2018-04-13 01:29:45 +00:00
|
|
|
* xkbcommon
|
2017-06-06 14:54:53 +00:00
|
|
|
* udev
|
2017-08-09 14:24:28 +00:00
|
|
|
* pixman
|
2017-06-06 14:54:53 +00:00
|
|
|
* systemd (optional, for logind support)
|
2017-09-22 17:16:11 +00:00
|
|
|
* elogind (optional, for logind support on systems without systemd)
|
2021-01-05 19:11:23 +00:00
|
|
|
* libuuid (optional, for xdg-foreign support)
|
2018-04-13 01:29:45 +00:00
|
|
|
|
|
|
|
If you choose to enable X11 support:
|
|
|
|
|
2018-05-05 05:25:11 +00:00
|
|
|
* xcb
|
|
|
|
* xcb-composite
|
|
|
|
* xcb-xfixes
|
2018-11-10 23:30:37 +00:00
|
|
|
* xcb-xinput
|
2018-05-05 05:25:11 +00:00
|
|
|
* xcb-image
|
|
|
|
* xcb-render
|
2018-04-13 01:29:45 +00:00
|
|
|
* xcb-errors (optional, for improved error reporting)
|
2021-02-04 22:18:25 +00:00
|
|
|
* xcb-icccm (optional, for improved Xwayland introspection)
|
2017-06-06 14:54:53 +00:00
|
|
|
|
|
|
|
Run these commands:
|
|
|
|
|
2021-02-23 19:36:26 +00:00
|
|
|
meson build/
|
|
|
|
ninja -C build/
|
2017-10-09 22:23:43 +00:00
|
|
|
|
2018-04-13 01:29:45 +00:00
|
|
|
Install like so:
|
2017-11-16 20:39:48 +00:00
|
|
|
|
2021-02-23 19:36:26 +00:00
|
|
|
sudo ninja -C build/ install
|
2017-11-16 20:39:48 +00:00
|
|
|
|
2018-04-13 01:29:45 +00:00
|
|
|
## Contributing
|
2017-11-16 20:39:48 +00:00
|
|
|
|
2018-04-13 01:29:45 +00:00
|
|
|
See [CONTRIBUTING.md](https://github.com/swaywm/wlroots/blob/master/CONTRIBUTING.md).
|