diff --git a/README.adoc b/README.adoc index 3232c8b..1cc1cc0 100644 --- a/README.adoc +++ b/README.adoc @@ -1,41 +1,46 @@ kiwmi ===== -A fully manual tiling Wayland compositor. - -Concepts --------- - -Most *manual* window managers aren't *truly* manual. They behave like a dynamic one sometimes. However, kiwmi is fully manual. It doesn't do this. - -When a window is spawned without allocating space, it's put in an invisible queue. Then you allocate space for the window; when the window is pulled from the queue, it goes into the aforementioned space. This solves the classic problem with regular window managers, where the window with a longer start time will spawn in the current tag (workspace) instead of the one in which it was opened in. - -In kiwmi, empty spaces available for windows behave like a normal window does. You can resize and move around them. Ergo, you don't need to re-learn how a tiling window manager behaves and works. +A client controlled Wayland compositor. Configuration ------------- Configuration languages are confusing. They are neither flexible nor easy to use. Moreover, it adds a lot of complexity to the program itself. -`kiwmi` listens to a socket and offers a basic client, `seed`, to communicate with kiwmi. Much like how `bspwm` works. +kiwmi listens to a socket and offers a basic client, kiwmic, to communicate with kiwmi. Much like how bspwm works. This allows the user to write the configuration in any langauge, e.g. as a bash script, which allows for high flexibility. -More info soon(TM). +On top of that, kiwmi barely handles anything on it's own. +Instead it emmits events, to which the client can subscribe and react accordingly. +This allows for 100% flexibility and customizability, while comming at a little effort at first. +As soon as they exist I'll link a few user configurations, that are likely to help you get started. + +This means the user will end up using a big, monolithic frontend, or a collection of small scripts, to configure kiwmi. +If I get around to it I will probably create a small Python (probably) library, to make it easier to create a monolithic frontend. Dependencies ------------ -kiwmi depends on https://github.com/swaywm/wlroots-rs[wlroots-rs]. This means that all dependencies listed there are required. - -No further dependencies are needed. +- https://github.com/swaywm/wlroots[wlroots] +- meson (build) +- ninja (build) +- git (build, optional, to fetch the version) Building -------- +Make sure all dependencies are installed. Then run this. + ---- -$ git clone --recurse-submodules https://github.com/buffet/kiwmi -$ cd kiwmi -$ cargo build --release +$ meson build +$ ninja -C build +---- + +You can then install it like this. + +---- +# ninja -C build install ---- Contribution