mir | natwm | |
---|---|---|
5 | 1 | |
580 | 4 | |
1.4% | - | |
9.9 | 10.0 | |
8 days ago | almost 4 years ago | |
C++ | C | |
GNU General Public License v3.0 only | BSD 3-clause "New" or "Revised" License |
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.
mir
-
GLFW has merged proper support for client-side window decorations on Wayland!
If you find the list "odd" feel free to change it on Wikipedia. Also Mir is literally a Wayland compositor as stated by the git repo. To my limited understanding (I never done anything with it, I only saw it on the Wikipedia list) it's quite similar to wlroots.
-
Interesting opinions on the shortcomings of Wayland
i see mir development still active on github tho https://github.com/MirServer/mir
- Can some one explain to me in basic terms why snaps are so disliked?
-
How X Window Managers Work, and How to Write One
People have already mentioned wlroots as a starting point, but there is a less opinionated and more compatible (NVIDIA-ready) library that I’m really quite fond of called Mir: https://github.com/MirServer/mir
One thing to note, Wayland, unlike X, does not support server side decorations yet, so compositor’s responsibilities are mostly just placing windows.
-
Linux development sucks
Mir is not dead, it's a Wayland Compositor : https://github.com/MirServer/mir
natwm
-
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
What are some alternatives?
hello-wayland - A hello world Wayland client (mirror)
spectrwm - A small dynamic tiling window manager for X11.
sowm - An itsy bitsy floating window manager (220~ sloc!).
herbstluftwm - A manual tiling window manager for X11
2bwm - A fast floating WM written over the XCB library and derived from mcwm.
tinywm - The tiniest window manager.
berry - :strawberry: A healthy, byte-sized window manager
kawa - A small Wayland compositor inspired by Plan 9's rio.
dwl - dwm for Wayland - ARCHIVE: development has moved to Codeberg