Dwl: Dwm for Wayland

(codeberg.org)

108 points | by theycallhermax 2 days ago ago

83 comments

  • exiguus 2 days ago ago

    I am a big fan of dwm and have used it for years on all of my Free- and OpenBSD desktops before switching to sway. The suckless people clearly stated that they would not support Wayland on dwm. At the time, I considered sway as the successor to dwm, at least for me, because it already had an ecosystem around it, and its behavior could be configured similarly if it wasn't already. I also took a look at dwl at the time, I think it was three years ago. I am now happy to revisit it.

    • IgnaciusMonk a day ago ago

      RHEL and friendly clones like Alma linux do run totally without X11 already !! Only wayland. so no need to remove x11 after installing distro. (on some distros it is not even possible, distro will break.) so finally we can have "clean" distros. it can provide nicer experience.

  • xwiz 2 days ago ago

    Looks like a great project. I'm a big TWM fan, so I would also like to direct attention to my daily driver, Niri. https://github.com/YaLTeR/niri

    • stevefolta a day ago ago

      Another interesting one is Scroll, a scrolling-tiling fork of Sway: https://github.com/dawsers/scroll/

    • christophilus a day ago ago

      Niri has been my daily driver for a while now. It’s excellent and keeps getting better.

      • aquariusDue a day ago ago

        Same here (on Fedora), coupled with Kando (which recently got Niri support) for mouse gestures, shortcuts and macros it's a total powerhouse.

        Sadly I can't seem to find a config I like for waybar, if anyone has any tips or dotfiles please share them!

        • christophilus 8 hours ago ago

          My waybar just shows the time in the center, my network status, and my battery health. It’s very minimalist. I went without entirely for a while, but I missed having the time there at a glance.

        • VTimofeenko a day ago ago

          I never found a config either and decided to go without any sort of a bar. That was two years ago and seems to be working fine for me.

          I wrote a couple of tiny IPC watchers that send notifications on workspace change and whatnot. The rest is handled by centerpiece:

          https://github.com/friedow/centerpiece/issues

    • lll-o-lll a day ago ago

      Niri is pretty, but I find sway to be faster. Hotkeys and instant switch is just better (for me). I will continue to experiment, but sway feels more productive currently.

      • cycomanic 20 hours ago ago

        You can disable animations in Niri, which makes switching instantaneous. Since switching from sway to niri (with a minor detour via hyprland), I found that Niri's scrolling tiling matches much more closely how I work with windows.

        As a side note, I found that Niri uses less battery for me than both sway and hyprland.

      • the_gipsy a day ago ago

        I feel the opposite! Everything just works, and so ever fast!

    • Babkock 2 days ago ago

      Niri is awesome!

    • theycallhermax 2 days ago ago

      niri's nice too. I used to daily drive it, but I don't remember why I stopped using it. Nowadays, I just WM hop, I've used Hyprland, labwc, and Pop Shell with GNOME so far, but dwl looks promising to me.

  • jauntywundrkind 2 days ago ago

    Pretty awesome that this is a 3200 line single .c file implementation, atop wlroots and it's newer scene graph API. It is not hard to build a good Wayland impl at this point!

  • alex-moon 2 days ago ago

    Big big fan of dwm, but this wasn't mature when I tried it. I switched to Hyprland and I have to say it has many improvements over dwm.

    • davidbanham 3 hours ago ago

      I have also been very happy with Hyprland as a past dwm user.

  • cnity 2 days ago ago

    I wonder if it was considered to submit this as a dwm patch instead.

    • mort96 2 days ago ago

      An X window manager and a Wayland compositor are so radically different beasts that it would probably require a monumental refactor of DWM to make it capable of having an X back-end and a wlroots back-end. Probably easier to just re-create DWM's interface on top of wlroots, like what Sway did with i3.

      Also, DWM has an explicit goal of being minimal and to not grow too big. There's no way in hell that Suckless would accept a patch which makes the code way more complex and over 2x larger to make DWM work as a Wayland compositor.

      • bravetraveler 2 days ago ago

        Suspect you're right, from Acknowledgements:

            dwl began by extending the TinyWL example provided (CC0) by the sway/wlroots developers. This was made possible in many cases by looking at how sway accomplished something, then trying to do the same in as suckless a way as possible.
      • kelvinjps10 2 days ago ago

        Why did you get downvoted?

    • woodrowbarlow 2 days ago ago

      i think fork was the correct approach -- it was written in such a way that many of the popular dwm patches can be applied cleanly to dwl.

      (i used dwl for quite a while. strong recommend.)

      • arp242 a day ago ago

        It's not really a fork in any meaningful sense, because rewriting dwm (or any other X11 WM) to Wayland means re-doing almost all code. A "dmw with Wayland" would basically be "if (x11) { x11_code() } else { wayland_code() }".

      • cnity 2 days ago ago

        > it was written in such a way that many of the popular dwm patches can be applied cleanly to dwl.

        That is very nice!

    • ivanjermakov 2 days ago ago

      Implementation difference is so big that is makes no sense. Also, Wayland support is obviously out of scope for dwm.

    • epr 2 days ago ago

      I guess people downvoting this don't get the joke?

      • Philpax 2 days ago ago

        What's the joke?

        • epr a day ago ago

          dwm and the community around it tend to use patches for absolutely everything, unlike most other projects. For most projects/codebases, maintaining patch sets is done for security, customizations, etc., but rarely are users expected to configure their window manager by modifying the source code. dwm is well known for being very minimalist, with many features people would expect from other window managers not being included out of the box. To get something more fully featured, users are meant to cobble together their own version of dwm with multiple patches. I'm not saying this workflow doesn't work for dwm and other suckless software projects, it's just that it's pretty out of the ordinary.

          So, having some experience with the project and how different x and wayland are, when I saw this commenter had brought up the idea of making the switch from x to wayland a patch, it made me laugh out loud. The idea of leaning even further into the borderline degenerate amount of patching already done with suckless software to the point where you're practically rewriting the majority of it was very funny, and so I was confused about the downvotes.

  • gundamdoubleO a day ago ago

    Used dwm for so long it was basically the only reason I didn't switch to Wayland. Very happy with dwl since I found it, made the switch (almost) painless.

    • mosquitobiten 21 hours ago ago

      You coul say the switch was suckless.

  • chiffre01 2 days ago ago

    I want to like Wayland...

  • dannyobrien a day ago ago

    See also https://github.com/engstrand-config/dwl-guile -- a fork with Guile Scheme support.

  • snvzz 2 days ago ago

    hopefully with utf-8 support?

    • ivanjermakov 2 days ago ago

      What do you need Unicode for in a WM?

      • pm215 2 days ago ago

        In an X11 window manager, the classic use case is "printing the title of the window in its titlebar". Programs like Firefox put the current tab's title in the titlebar text, which can have any random unicode in it.

        • yjftsjthsd-h a day ago ago

          Actually, that's an interesting question - in wayland, I think it's common to just say that windows have to draw their own ("client-side window decorations"), so the compositor could just... not handle the window titles at all?

          • RGBCube a day ago ago

            Server-side declarations are a thing now & are used widely (in anything other than GNOME)

      • zhengyi13 2 days ago ago

        Window titles come immediately to mind.

  • undefined a day ago ago
    [deleted]
  • dodomodo 2 days ago ago

    [flagged]

    • dang a day ago ago

      "Please don't post shallow dismissals, especially of other people's work. A good critical comment teaches us something."

      https://news.ycombinator.com/newsguidelines.html

      • dodomodo a day ago ago

        I was wrong to word myself the way I did, but my comment is simple not shallow, what I'm trying to say is that the amount of work done is not worth the architectural advantages of Wayland. It's a simple argument that people in the replies didn't fail to understand, but did fail to have a good response too. My real violation of the guidelines is this in my opinion: "Be kind. Don't be snarky. Converse curiously; don't cross-examine. Edit out swipes."

        • dang a day ago ago

          Thanks for that! I appreciate the guideline swap, and also your original intention.

          Btw, it's not uncommon that a commenter (you in this case) will respond to a mod (me in this case) with substantive information that they didn't include in their original comment, which explains what they really meant to say. We call this the 'rebound' phenomenon (https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...).

          It's a pity that the comment doesn't come out this way to begin with! But it's hard to remember that the state in one's head isn't transmitted automatically, and also hard to figure out which bits of it need to be put into a comment. Something about getting resistance (like a mod reply) stimulates this process. Maybe someday we'll figure out how to activate it more proactively.

    • temp0826 2 days ago ago

      Wayland has been around for 15+ years now and I've been using it daily for probably 10. At this point I have to assume comments like this are unserious.

      • hodgehog11 2 days ago ago

        Good for you. Meanwhile, many other people have been encountering _serious_ issues for much of those 10 years. This is well documented. Downplaying the issues of other users is a great way to make people dislike the product.

        • mort96 a day ago ago

          And I encounter _serious_ issues when I use X. Neither is perfect, but this insistence that Wayland is "not ready" because it doesn't have certain people's pet features ignores the silent majority for whom it just works and works better than X ever did.

          This is not me downplaying those issues some people encounter in Wayland. But I think you're sort of doing the opposite.

          (And, Wayland is not a "product".)

          • rcxdude a day ago ago

            Because wayland is 'ready' when X can be properly killed, i.e. wayland is working for essentially all users. As it stands a huge fraction of users have issues with it, because most users have at least one 'pet feature' which they are not willing to give up.

            • mort96 a day ago ago

              As far as I'm concerned, a technology being "ready" (for mainstream adoption or whatever) means that it works better than or equally well as what it's replacing for most people and at least "well enough" for a significant majority. As far as I can tell, we've been there for a while with Wayland. The vast majority of people don't have to care that they're on Wayland.

            • lern_too_spel a day ago ago

              X doesn't work for essentially all users. It works for substantially fewer users than Wayland does. There are several features that X is missing, and you might call them "pet features" but they are features that the vast majority of graphical desktop users expect these days.

              • hodgehog11 11 hours ago ago

                That's quite the claim; maybe you operate in different circles than I do, but most power users I know still avoid Wayland like the plague. X doesn't have support most of the modern fancy features, yes. But on older hardware, which people with less money usually have, X works.

        • exiguus 2 days ago ago

          What are this issues beside VNC or ssh -X does not work? Or my Software Y (still) does not support Wayland?

          • yjftsjthsd-h a day ago ago

            Actually I don't think any of those are problems?

            * VNC is covered by wayvnc (unless you're on GNOME or maybe? KDE, but those have their own implementations)

            * ssh -X should be covered by waypipe

            * application software should generally work in XWayland (which okay is a little cheaty but if it works it works)

            The two pain points I'm currently aware of are:

            * Unified vs fractured ecosystem: In practice, everyone on X11 used Xorg and every window manager and desktop environment had the same basic features because of it. You could always control the keyboard layout via setxkbmap, every screenshot tool worked everywhere, xrandr/arandr were always available to configure displays, etc. In Wayland there is never one answer to anything; not every compositor lets you configure the keyboard and if they do each one has their own way to do it, there are 3 different screenshot protocols (supposedly KDE and wlroots are converging so only GNOME will be doing their own thing but I'm not holding my breath), display configuration is completely up to compositor choice, etc.

            * The accessibility story isn't there. There's work on it, so eventually the outcome will probably be "just throw out the a11y tools you're used to and switch to these new ones", but for now the current status is "they're working on it but it isn't there yet".

          • Zambyte 2 days ago ago

            > ssh -X

            waypipe

        • undefined 2 days ago ago
          [deleted]
        • zveyaeyv3sfye 2 days ago ago

          Link to any open issue you are encountering so we can discuss it then.

          • hodgehog11 11 hours ago ago

            I said "most" of those 10 years, since it has become much better now, especially on AMD. Nvidia is still a disaster on Wayland though, basic screen sharing apps like Zoom are broken for many users, even with PipeWire.

            The response to this is usually "that program is bad, it has problems and that isn't the fault of Wayland, don't use it". But Wayland broke userspace. If these programs all work well on X, that is a Wayland problem.

      • gen2brain 2 days ago ago

        Protocol, maybe, and there was no "Wayland"; there was Gnome and KDE. I was only recently able to try Labwc with LxQt, and I occasionally try to see if there are some improvements because it is not usable currently. The biggest issue is that every implementation is different; there is not even a shared common library. If Xorg developers are now working exclusively on Wayland, when are they going to start programming?

      • dodomodo 2 days ago ago

        You have to understand that I don't really care about the internals of my DE. The same of true for 95% of Linux users and 99.999% of general computer users, so when I see a huge amount of effort goes into basically seemingly pointless refactoring, instead of tackling issues that are actually important to users, it is disappointing to me. I just installed KDE Manjaro and guess what? It stills uses X, and no one has an answer to what benefit Wayland has for me.

        • yyyk a day ago ago

          Software bitrots. Sometimes it's compiler stuff, sometimes the very usecase changes (few used the network design of X, or server-side fonts, etc. etc.). The way X got no 'attention' (so to speak) made the new technical design (passing away responsibilities) inevitable. It would have just happened slower had Wayland not existed.

        • simlevesque 2 days ago ago

          Security.

          You said you did your research so I have to believe that you don't care about security.

          But most people care.

          • dodomodo a day ago ago

            The threats models I have seen are easy enough to deal with inside the X ecosystem. And investing all your resources into a new system that is not backward compatible is something no serious security person would do as it leaves your existing users vulnerable

          • johnisgood 2 days ago ago

            Thankfully you no longer have to be root to start X.

          • yyyk a day ago ago

            That particular scenario (listening in on other apps) is very theoretical, can you recall any attack ever using it? IIRC Windows still has the same 'ability' - and nobody cares.

        • gf000 2 days ago ago

          Well, do you also second guess your surgeon? Why do you think you have enough domain and technical knowledge to consider your "seemingly pointless" to be relevant?

          • johnisgood 2 days ago ago

            You should definitely second guess your doctor, or get a second opinion[1]. I mean everyone knows you should NEVER abruptly stop benzodiazepines due to lethal/fatal withdrawal symptoms, right? Guess what? Most of the psychiatrists I have encountered do not give a damn. It is coming from both first-hand and second-hand experiences. So yeah, you are right to second guess. Were it up to my doctors, I would have been long dead. And because I was not in the right state to second guess my doctor, I am forever left with immobility issues. I should have gotten a week long corticosteroid therapy for MS relapse. I did not, because the doctor did not give a fuck, and I was too stupid to NOT second guess. Unfortunately they do not give a damn about you here, but you should. FWIW everything I have said do not require me to have a PhD or Dr. next to my name. It is on Wikipedia, books on psychiatry, pharmacology, and so forth. It is "common knowledge" in the field that you are supposed to taper off these medications gradually, never abruptly.

            [1] You would never guess the amount of times I have encountered doctors questioning the practices of another doctor. :P It happened so many times...

        • gosub100 a day ago ago

          > seemingly pointless refactoring, instead of tackling issues that are actually important to users

          its not a dichotomy. Xorg was built on X11R6, a platform that was written circa 1993. You cannot "tackle issues important to users" based on an outdated stack. They were painted into numerous corners that only a rewrite would fix.

      • macawfish 2 days ago ago

        It's probably a distro thing. I'm on a rolling release distro (arch) and I've been using wayland on arch and it's worked great. There are still some things I struggle with, but for ~7 years I've been using wayland without major issue. Things iron themselves out pretty quickly these days when you're using a rolling release distro. This is not so for popos/ubuntu/debian etc.

        • mystifyingpoi a day ago ago

          I don't want to be rude, but "it's worked great" and "still some things I struggle with" need some clarification.

          • macawfish a day ago ago

            The things I struggle with are very niche, like remote desktop via pipewire over ssh.

            Day to day stuff is way better than x11. Remember how much fiddling used to be necessary to configure x11 for your specific devices? I've never once done that and I don't miss it at all.

            By the way, pipewire is amazing.

            • undefined 17 hours ago ago
              [deleted]
            • yjftsjthsd-h a day ago ago

              > Remember how much fiddling used to be necessary to configure x11 for your specific devices?

              Er. No, I don't remember that. Are you talking about needing to make a xorg.conf once upon a time? Because that hasn't been generally needed for... over a decade? Maybe two at this point?

              • mystifyingpoi a day ago ago

                Me neither, and I had my first Linux machine in 2008. That was true maybe in 1995. Of course anecdotal evidence.

    • yyyk 2 days ago ago

      X withering away was inevitable once you consider the 'economic' situation - very few people worked on it once the commercial Unix vendors went down. There was little practical enthusiasm for a common layer. Even before Wayland, its role was reduced more and more. Wayland is natural evolution of this where most of the work is offloaded to more resourced Desktop environments and the org mostly sets standards.

      • o11c a day ago ago

        And X11 is all the better now that fewer people are working on it. I don't need new features in my windowing system, I just need it to stay out of my way.

      • slackfan 2 days ago ago

        X wasn't withering away, it was pointedly being poisoned.

        • gf000 2 days ago ago

          Feel free to include any kind of source for that. Otherwise, it is just FUD.

          • slackfan a day ago ago

            Sure, the developer culture of the people working on X has been "This is too difficult/obscure/shitty therefore it should die." There have been repeated posts about this to various forums, news.ycombinator.com included. Refusal to accept fixes, as well as a full pivot of the project to a targeted sundown instead of any attempt to attract developers to the project. Sources: The X project itself, hackernews discussions, both in articles and in comments. It's not my job to educate you.

    • fruitworks 2 days ago ago

      At some point of development, the only way to progress without spiraling complexity is to break backwards compatibility. You might be interested in studying the internals of X11 and wayland to learn more.

      In a commercial project like windows, this sort of project is a total no-go. However in a collaborative community project like linux userspace, developers have more freedom to make design decisions in spite of short-term consequences.

      >The people that develop Linux desktop are deeply unserio

      The person who experiences greatness must have a feeling for the myth he is in. He must reflect what is projected upon him. And he must have a strong sense of the sardonic. This is what uncouples him from belief in his own pretensions. The sardonic is all that permits him to move within himself. Without this quality, even occasional greatness will destroy a man.

      -Frank Herbert

      Don't take yourself too seriously, it might ruin you!

      • vlovich123 2 days ago ago

        In a commercial project like Windows this has been done many times - both Windows and MacOS switched to compositing window managers and have done deep surgery under the hood you never see. The difference is that internals can be mandated top down whereas in a bazaar model with lots of casual non interested observers throwing pot shots and no budget to support the work, relying on largely volunteer time, it’s much harder and takes longer to accomplish.

        • saidinesh5 a day ago ago

          > on largely volunteer time

          Are Linux desktop projects still run mostly by volunteers these days anymore?

          The kernel itself is heavily funded by, contributed to by so many large companies. A lot of user space projects are all maintained by companies or maintainers who work for companies like Redhat, Canonical, Suse etc ...

          Didn't Wayland itself get popular during Nokia/Intel Meego days? I remember there being automotive compositors, Jolla Phone all using wayland.

      • asveikau 2 days ago ago

        People do large rewrites that subtly break expectations and need to slowly add back features to get parity with the old thing at Microsoft all the time. Source: I worked there at the end of the 2000s.

        Sometimes it's very visible, like they are pushing a new UI framework. Other times it's under the hood, like they changed how a lot of GDI works.

      • dodomodo 2 days ago ago

        You got it backwards, once you have users, they are your "greatness", if you go to the path of self gratification, are are betraying your users. Of course some times sacrifices have to be made, but you have to understand the graveness of them. I don't like the current state of Windows, but Microsoft won't ever break such a huge portion of applications that run of Windows just for the sake of some refactoring.

      • undefined 2 days ago ago
        [deleted]
    • ongy 2 days ago ago

      The core devs were all paid to work on it when I was still active.

      Not sure how many of the gnome (mutter) people are paid. Last I checked, the nvidia support was donated by nvidia (paid) for both KDE and Gnome.

      I think KDE got some work sponsored by valve (before gamescope), though I'm not quite sure on that.

      Overall, outside the sway/wlroots group I was a part of at the time, people generally worked adjacent or directly on wayland for day jobs.