XMonad for Wayland — call for help

Should we get started with making bindings for wlroots? I’ve been learning Haskell for a little over a year now in my spare time, I want get my hands dirty and try and do something real.

I’m intimidated though because I don’t have experience making a big application.

I started looking at writing bindings for wlroots but I need to learn about how to properly manage the C types on the Haskell side, how to free memory on the c side, how to ensure that C and Haskell are in sync.

HSroots looks dead

Yes, why not! I’m a little intimidated too, to be honest, but you never know until you try.

At this point is it worth creating a separate thread to coordinate things?

1 Like

Yes, we have some things to discuss. Like:

  • should we fork hsroots?
  • should we start from scratch?
  • which version of wlroots should we target releases
  • should the bindings be very low-level or should they try to provide a nicer extraction? There are some projects that were started and then looked like they died because of the imperative nature of what they were doing
  • I don’t think this involves just wlroots, I think it involves bindings to wayland too, which may already be done.
    • there was this project Sudbury, but I’m not sure what happened to it sudbury

I’m still a Haskell beginner, and my xmonad config is super simple, hardly changed from the example. So, I’m an xmonad beginner too.

I’ve only ever used Stack + Nix, so I was trying to see how to do just Cabal + Nix earlier repo. I was thinking Nix Flakes could be nice because Nix can manage our C dependencies for us.

1 Like

OK, I’ve created a new thread, starting with my thoughts on those points: Haskell wlroots bindings

3 Likes

Is there any other work that could be done by a relative beginner to support this effort in addition to working on the Wlroots bindings?

So far, I don’t think so. Practically everything else depends on having a working set of wlroots bindings.

You posted this last October. Are you still looking for paid help? I have been using Linux for the past 20 years, and as of last year switched to Wayland. Due to my large screen workflows, I have been eagar to do something with XMonad – which prompted me to learn Haskell – and would love to work on this.

What sayeth you?

Currently we’re busy working on bindings to wlroots: Haskell wlroots bindings

4 Likes

Hi,
I see that the project of writing wlroots bindings is going pretty slow (and in my opinin risks to go nowhere, frankly speaking), I think that in the meantime the focus should be to made xmonad usable maybe under Xwayland.
A new xmonad for wayland should have all the function inluded in xmonad-contrib and xmonad-extras ,because xmonad without the -contrib and the -extars its just another tiling wm , and , considering that the port on Wayland had no great progressions since months from the staring of this thread, emulate all the current function of xmonad of wayland will be very hard

It’s still not possible for a window manager in XWayland to manage native Wayland windows, AIUI. They can only be managed by a compositor plug-in.

2 Likes

That make things harder.

Can a point about the current status of the wayland port be made, and also about the future plans for the current xmonad project?

Thank you, I really appreciate your work!

@geekosaur is correct: this is not possible. XWayland is just an implementation of the X server for Wayland: it can display individual windows, but is not designed to do any kind of higher-level management or positioning (which is the responsibility of the compositor).

Work continues… steadily, but slowly. You can follow the discussion in the dedicated thread, and in the GitHub repo. Currently we’re working on Haskell bindings to wlroots, which are boring and laborious to make. Most of the actual work has been done by @anarchymatt and @bullishOnFunctional.

(This reminds me — there was some discussion on the GitHub about how to handle the XML files which specify the wlroots protocols. When I get more time this afternoon, I should make a post about that in the other thread.)

2 Likes

Are there any updates on this effort? Did it stale or is it still something that is being actively researched or worked on?

As above, most work is going on over here, but the main person working on it is injured and so it’s on hold for the moment. I suggest you follow that thread instead.