wlroots/README.md

84 lines
3.0 KiB
Markdown
Raw Normal View History

2018-03-04 21:33:45 +00:00
# wlroots
2017-04-25 15:32:52 +00:00
Pluggable, composable, unopinionated modules for building a [Wayland]
2021-09-08 11:20:40 +00:00
compositor; or about 60,000 lines of 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.
2021-04-24 10:43:07 +00:00
Check out our [wiki] to get started with wlroots. Join our IRC channel:
[#sway-devel on Libera Chat].
2017-08-13 12:29:04 +00:00
wlroots is developed under the direction of the [sway] project. A variety of
[wrapper libraries] are available 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
2021-10-26 13:04:48 +00:00
* EGL and GLESv2 (optional, for the GLES2 renderer)
* Vulkan loader, headers and glslang (optional, for the Vulkan renderer)
2018-04-13 01:29:45 +00:00
* libdrm
2017-06-06 14:54:53 +00:00
* GBM
2021-10-26 13:04:48 +00:00
* libinput (optional, for the libinput backend)
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
* [libseat]
2018-04-13 01:29:45 +00:00
If you choose to enable X11 support:
* xwayland (build-time only, optional at runtime)
* libxcb
* libxcb-render-util
* libxcb-wm
* libxcb-errors (optional, for improved error reporting)
2017-06-06 14:54:53 +00:00
Run these commands:
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
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
See [CONTRIBUTING.md].
[Wayland]: https://wayland.freedesktop.org/
[wiki]: https://github.com/swaywm/wlroots/wiki/Getting-started
[#sway-devel on Libera Chat]: https://web.libera.chat/gamja/?channels=#sway-devel
[Sway]: https://github.com/swaywm/sway
[wrapper libraries]: https://github.com/search?q=topic%3Abindings+org%3Aswaywm&type=Repositories
[libseat]: https://git.sr.ht/~kennylevinsen/seatd
[CONTRIBUTING.md]: https://github.com/swaywm/wlroots/blob/master/CONTRIBUTING.md