These days I'm playing a bit with an experiment started some years ago: #McCLIM running directly on the Linux DRM stack without #X11 or #wayland."
@admich that's a very cool and impressive experiment!

@jackdaniel

Thanks. Of course it is incomplete and full of bugs. And for some bugs all the system freezes, without the possibility to resume, and I need to force the power off of the laptop. Therefore I want to switch the development in a VM with emacs in the host that connects to slynk on the VM.

@admich this would be an even better software stack than Android, especially if you could get Emacs Lisp applications to run in Common Lisp.

I am also curious how difficult this would be to port to FreeBSD.

@ramin_hal9001 I think that the port to FreeBSD would be easy. As I understand FreeBSD and linux share many user space library. Through cffi I use with the following libs:

- libdrm
- libseat
- libudev
- libinput
- xkbcommon
- epoll

Of these I think that only epooll is linux specific.

The difficult part is to have something complete and solid.

I use #BSD and hence #kqueue instead of epoll.
But I also use #libevent via ffi (from a couple/few
different langs) and it abstracts over epoll/kqueue
very nicely.

https://libevent.org/

#OpenBSD uses it in some of their daemons
which gives it very good street cred w/unix.

tmux uses it too.
libevent

@ramin_hal9001 @admich
yeah Android is pretty neat if you stick to the FOSS stuff, even if I've never cared for touchscreen-centric computers* and the OS's source code takes up ~100 GB.

Would be even better if someone made a F-Droid frontend that replaces the silly "privacy-respecting home screen"-descriptions with ones that actually mean something.

* my first monitor was a 15 inch 1024x768 touchscreen, but I mostly treated that feature as a novelty
@admich this is great! Out of curiosity, is FFI needed?
@admich ugh, I wasn't fully awake. I was more curious if it is using libdrm directly or something else 🤦‍♂️
@charliemac definitively a lot of ffi:
- libdrm
- libseat
- libudev
- libinput
- xkbcommon
- epoll