Discovery of the day: Blender has an SDL2 backend, just build it with -DWITH_GHOST_SDL=ON. If you also have GLEW built for Wayland…

Blender will run on Wayland!

Well, "run" — the window is glitchy as hell. The best thing though is that these glitches showed Dungeon Crawl Stone Soup tiles to me (since I launched DCSS before to test SDL — for some reason I had to downgrade to 2.0.7 to run most apps on Wayland.)

It is well known that Enlightenment/EFL is pretty awful. But I had to build it on my FreeBSD box since I'm testing a LuaJIT update and EFL does include LuaJIT support. So while I'm at it, I decided to add Wayland support to the port.

So at least it works, but its behavior is indeed kinda funny. Running their terminal with GL acceleration (ELM_DISPLAY=wl ELM_ACCEL=opengl terminology) actually does work. Running it without acceleration (ELM_DISPLAY=wl ELM_ACCEL=no terminology) results in the surface not showing up and… this message:

DRM_IOCTL_I915_GEM_APERTURE failed: Invalid argument
Assuming 131072kB available aperture size.
May lead to reduced performance or incorrect rendering.
get chip id failed: -1 [2]
param: 4, val: 0

It's no "SPANK! SPANK! SPANK!" but how exactly did it decide to use an Intel GPU related system call? On my machine that has a Radeon card?!?! When I asked for software rendering??

haha, Phoronix wrote about the stuff I posted on wayland-devel@. So yeah, I'm working on Rust bindings for libweston that would eventually allow me to write the best Wayland compositor ever :)

And fractional HiDPI scaling was pretty easy to add. Wayland apps look awesome. However, X11 apps are blurry now, and bypassing the scaling for Xwayland is not as easy… So I made some changes to my Ports fork to enable Wayland support in more apps. Turns out a lot of complex applications run fine — LibreOffice (!), Inkscape, MyPaint, RawTherapee, Darktable.

The Firefox Wayland support though… is not usable yet :( It looks awesome but EGL isn't working and, even worse, the screen doesn't refresh when it needs to — so you're typing and letters don't appear until you scroll or some time passes. Hopefully this will be fixed soon.

So there's no support in pretty much all Wayland compositors for fancy keyboard mapping utilities like xcape because no one wants a keylogging protocol extension. (Even an access-controlled one!! Why.)

Turns out it's better to just solve this on the evdev level. And I've done it in the coolest way possible: with a tiny sandboxed scripting environment. Meet evscript! It runs Dyon scripts in an environment with evdev, uinput, stdout and nothing else. xcape functionality is already provided in the "standard library" :)