Updated readme

This commit is contained in:
buffet 2019-02-14 17:38:41 +01:00
parent f436e6b455
commit 15cbedb8f5

View file

@ -1,41 +1,46 @@
kiwmi kiwmi
===== =====
A fully manual tiling Wayland compositor. A client controlled 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.
Configuration Configuration
------------- -------------
Configuration languages are confusing. They are neither flexible nor easy to use. Moreover, it adds a lot of complexity to the program itself. 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. 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 Dependencies
------------ ------------
kiwmi depends on https://github.com/swaywm/wlroots-rs[wlroots-rs]. This means that all dependencies listed there are required. - https://github.com/swaywm/wlroots[wlroots]
- meson (build)
No further dependencies are needed. - ninja (build)
- git (build, optional, to fetch the version)
Building Building
-------- --------
Make sure all dependencies are installed. Then run this.
---- ----
$ git clone --recurse-submodules https://github.com/buffet/kiwmi $ meson build
$ cd kiwmi $ ninja -C build
$ cargo build --release ----
You can then install it like this.
----
# ninja -C build install
---- ----
Contribution Contribution