tinywm
2bwm
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
tinywm
- TheDesk Desktop Environment
-
Fedora Workstation 41 to No Longer Install Gnome X.org Session by Default
> Nobody's requiring Wayland.
Yet. Defaulting to it is one step on the path towards removing support for X and independent window managers forever.
I deeply, deeply care about running an independent window manager. A minimal X window manager is a page of code: https://github.com/mackstann/tinywm/blob/master/tinywm.c (yes, plus xlib); a minimal Wayland compositor is tens of thousands of lines of code.
> contrary to your statements, it's perfectly ready for prime time
These comments are full of folks mentioning issues. Wayland does not support my window manager; thus it is demonstrably not ready for prime time for me.
> Wayland is the way forward
It may actually be. I’m not as opposed to Wayland as I may sound! But do you understand how you and other Wayland advocates sound — like advocates? ‘Wayland is the way forward’; ‘there's no future for Xorg’; these things are arguably true, but they are also rather cruel to say (a bit like ‘inevitably you and everyone will die’: it really is true, but it’s also not at all a nice thing to say).
I do think that Wayland or something very like it may be the way forward, but it needs to be an evolution, not a revolution. I know that the party line is that that’s not possible, but I suspect that rather than not possible it is just very hard. It’s always easier to greenfield, and it is always hell to be 100% backwards compatible.
But that’s what it needs to be.
-
RubyWM – an X11 window manager in pure Ruby
Hah. I didn't think this was quite HN worthy at this point - the code is still a mess, and has plenty of bugs. It was however the wm I actually use since I got frustrated with bspwm and did a very minimalist rewrite of TinyWM [1] in Ruby [2] and expanded it from there. It was painful the first few days until I'd had time to add multiple desktops and the start of a tiling mode. But at this point, it's "almost" pleasant for me.
The warnings are real, though, apart from the initial hyperbole - this is likely to break for you in all kinds of horrible ways still. I use very few applications beyond (my own) terminal, (my own) polybar replacement, (my own) file manager, and a browser, and so once Chrome and my own apps mostly started working ok I've had very little incentive to make sure it behaves nicely with anything else and I know the distinction between different EWMH window types is incomplete and broken - just not in ways that usually affect my own use.
[1] https://github.com/mackstann/tinywm/blob/master/tinywm.c
[2] https://gist.github.com/vidarh/1cdbfcdf3cfd8d25a247243963e55...
- What’s something simple but interesting I can build with c
-
WM like i3wm
picking a random bare bones wm tinywm
- TinyWM – A tiny window manager in around 50 lines of C
-
I cannot find the desktop environment for me
Or Check out TinyWM. Its just a few lines of code.
2bwm
- I like using bspwm, it's snappier and more responsive than other window managers
-
ESPNCricinfo (the leading website for all things cricket) deploys some of the most trackers for tracking your activity across websites. [Also posted in Daily Discussion in case the mods feel it is not completely relevant here].
Distro is Arch Linux and WM is 2bwm
- What is the most customizable yet easy to configure stacking (floating) window manager?
-
How X Window Managers Work, and How to Write One
This is a great article and I remember reading it numerous times while I was implementing my own window manager.
For someone interested in working on a really fun and rewarding hobby project a WM is a great one to look into since there are so many resources starting from really small implementations:
- https://github.com/mackstann/tinywm
- https://github.com/venam/2bwm
- https://github.com/dylanaraps/sowm
- https://github.com/dcat/swm
- https://github.com/JLErvin/berry
Which are great at introducing the concepts and allowing you to grok the required libraries.
There are also a bunch of more full featured window managers which will introduce you to more advanced topics:
- https://github.com/baskerville/bspwm
- https://github.com/herbstluftwm/herbstluftwm
- https://www.nongnu.org/ratpoison/
- https://github.com/conformal/spectrwm
Gradually as you get more familiar with the ecosystem a few questions will come up:
Should I use X11 or XCB? - I personally used XCB and didn't find it too difficult to interface with, and there are a large number of implementations which use it (2bwm, bspwm, ratpoison, etc) so you shouldn't have an issue with learning more about it. But the documentation is pretty limited. If you are just wanting to write a toy WM than X11 is perfectly fine.
X or Wayland? - If you're wanting to write your first WM as a hobby project than I would recommend X over wayland just due to the much larger amount of reference material and documentation. You will have a much easier time getting your feet wet. Ignore the comments about X dying as it doesn't really matter for a hobby project, since the whole point is to have fun.
Feel free to check out my window manager which is an example of what just reading this blog post and getting inspired can result in: https://github.com/cfrank/natwm
-
[2bwm] 爪ㄩㄒ丨几ㄚ
wm: 2bwm
-
[OC] Most used WM's in this subreddit out of 1000 posts.
It's a pity 2bwm does not get the love :) https://github.com/venam/2bwm
What are some alternatives?
chadwm - Making dwm as beautiful as possible!
berry - :strawberry: A healthy, byte-sized window manager
dwm-xcb - A port of dwm to XCB.
hello-wayland - A hello world Wayland client (mirror)
sowm - An itsy bitsy floating window manager (220~ sloc!).
wlroots - A modular Wayland compositor library
FrankenWM - 🖼️ Fast dynamic tiling X11 window manager
spectrwm - A small dynamic tiling window manager for X11.
wayland-rs - Rust implementation of the wayland protocol (client and server).
unclutter-xfixes - Hides the cursor on inactivity (rewrite of unclutter)