main

slighly less simple wayland compositing library

18 L
20 L
57 L
15 L

readme

neuswc

neuswc is a fork of swc created by wayland.fyi. it provides an easy C library interface to make a wayland compositor. it is much smaller than alternatives like wlroots, and easier to use. it is also portable to linux, freebsd, netbsd, and openbsd. if you want tohelp with that (or anything else) submit a patch to the mailing list

you can view a list of some compositors made with neuswc at the wayland.fyi website.

the refrence compositor implementation is tohu: it uses many of the new features and is small and simple to understand. if you want to make your own compositor, it can be a useful place to refrence how things work, or a base to customize.

neu features

  • z axis ordering
  • more cursor functions
  • zooming
  • experimental subsurface support
  • fullscreen
  • double window borders
  • screenshots
  • layer shell support
  • window decorations

neuswc is in active development, we plan to add many more features, and increase compatibility with new wayland protocols.

build

you will need:

  • A C99-compatible compiler
  • meson or muon
  • pkg-config
  • wayland-scanner, wayland-server, wayland-client
  • wayland-server, wayland-client
  • libdrm, pixman, xkbcommon
  • neuwld
  • libinput on Linux and wscons on BSD
  • xcb, xcb-composite, xcb-ewmh and xcb-icccm if you want Xwayland support.

to build, i use muon and samu. you can probably do something similar with meson and ninja. warning if you use muon, you will need a recent version built from their git for wayland module support, probably not your distro-packaged version. i do:

muon setup build
samu -C build
sudo samu -C build install

credits

an extremely large thank you to michael forney for creating the original swc and wld, without his amazing work none of this would be possible! once they are more stable, we hope some of the changes from our neu* forks will eventually be upstreamed into the original projects.

repositories

srcdump sourcehut