50 lines
2.1 KiB
Text
50 lines
2.1 KiB
Text
![]() |
wmaffle
|
||
|
=======
|
||
|
|
||
|
A fully manual tiling window manager for the X window system.
|
||
|
|
||
|
Why?
|
||
|
----
|
||
|
|
||
|
There's not enough so called "manual" tiling window managers and none of the existing ones is *fully* manual.
|
||
|
|
||
|
When a new window opens, without having space assigned, I don't want my WM to suddenly be dynamic and just put it _somewhere_ or even on top something that's already existing.
|
||
|
|
||
|
Where's the source at?
|
||
|
--------------------
|
||
|
|
||
|
In `lit/`.
|
||
|
|
||
|
wmaffle is a literate program. It's a cool thing by Knuth. I'm not going to explain this, since https://en.wikipedia.org/wiki/Literate_programming[this] does it better anyways.
|
||
|
I'm using the https://github.com/zyedidia/Literate[Literate] utility for this, since it gets the job done, while keeping a light syntax for me.
|
||
|
|
||
|
Why? Literate programming is awesome. This allows people to learn from my stuff while making it easy to contribute.
|
||
|
Also it's easier to write documentation like this. Who does comments anyway?
|
||
|
|
||
|
Concepts
|
||
|
--------
|
||
|
|
||
|
I don't know what you expect to find here.
|
||
|
|
||
|
It's a window manager: there's tags (workspaces), windows and they get arranged.
|
||
|
|
||
|
So what happens when a window is created when there's no space yet?
|
||
|
It's put in a queue, from where it can be popped into available space (which is also getting a cool name soon).
|
||
|
This also solves the problem of creating a window and moving the focus before it spawns, since you can assign future queue positions to available space.
|
||
|
|
||
|
I plan on having available space behave like a window, so that you don't have to think about stuff, but we'll see about that.
|
||
|
|
||
|
Configuration
|
||
|
-------------
|
||
|
|
||
|
Configuration languages suck and they add a lot of complexity to a program.
|
||
|
`wmaffle` listens to a socket and offers a basic client (called `syrup`) to communicate with the WM.
|
||
|
|
||
|
This allows you to write your configuration in any language you want, while also removing the task of listening to keybinds for me, since you can use tools like https://github.com/baskerville/sxhkd[sxhkd] to do that.
|
||
|
|
||
|
Contribution
|
||
|
------------
|
||
|
|
||
|
I'll add contribution guidelines later, when it's clear where the project is going.
|
||
|
For now feel free to open issues.
|