<div dir="ltr"><div>Hi All, <br></div><div><br></div><div>I would like to present the Taiwins wayland compositor, a tiling window manager based on libweston. I created this project aiming for a compact but yet versatile wayland window manager, like a swiss army knife. It offers a built-in shell for providing wallpaper, panel, widgets and locker. A launcher for launching applications, running commands and finding files. Today, the compositor is configurable through lua script. It exposes some interfaces of the compositor so you can extend and change its behavior through the lua configuration. It also implements a flexible keybinding system on top of libweston. You can bind functions with a key sequence like in Emacs. <br></div><div><br></div><div>Here I would like to address some questions people may have. <br></div><div><br></div><div>1. what is the difference between taiwins and popular compositor like Sway or weston? <br></div><div><br></div><div>Sway and weston are clearly much more popular, weston is the reference compositor of wayland, for a long time it was the only well-functioning wayland compositor. Sway took the approach of forking the behavior from i3wm, it is popular design, back in the days, I was more of a awesome wm fan. But essentially, the big difference between taiwins and sway or weston, I think, is that taiwins focus wayland client code. <br></div><div><br></div><div>I created this sub-project called twclient for writing wayland client. It offers a render loop, GL initializers, wl_shell/xdg_shell implementation, a immediate GUI system(nuklear), font/image loading, etc. I used this GUI system to create the wallpaper, panel, locker for taiwins. twclient is small and quite embeddable yet it lifts the weight of binding wl_globals, taking care of shm buffer, EGL for you. Creating a window in wayland takes less than 20 lines of code.<br></div><div><br></div><div>2. Most people seemed to opt in wlroots based, why taiwins is built upon libweston?<br></div><div><br></div><div>I was originally developing taiwins using wlc, and rewrote in libweston in 2018. Back then wlroots was in quite early stage so I didn't make a switch, like Drew DeVault once pointed out, libweston was split from weston, it has the middle layer design. Interestingly wlroots has way more compositors built from it, as for right now I don't find good example for libweston rather than weston itself. <br></div><div><br></div><div>To be honest I don't actually find in what way libweston is limiting my compositor design right now, It does lack of some functions I need but it is not part of problem of design. At same time, libweston does offer most of the abstractions I need in creating wayland compositors. I am not sure if I would make the switch in the future, but at the moment, I am closely following the weston development, sometimes I send a patch. If people are not giving up on weston, patches are accepted, libweston is continuously a viable backend.<br></div><div><br></div><div><div>It feels kind of awkward to advertise my project on this mailing list, however I don't find a better place for people with common interests in wayland. Right now taiwins is usable and under actively development. I Hope there could be anyone interested. Checkout the code here: <br></div><div><br></div><div><a href="https://github.com/taiwins/taiwins">https://github.com/taiwins/taiwins</a></div><div><br></div><div>Thanks,</div><div>Xichen<br></div><div><br></div><div><br></div></div></div>