kiwmi
=====

A client controlled Wayland compositor.

Configuration
-------------

Configuration languages are confusing. They are neither flexible nor easy to use. Moreover, they add significant complexity to the program itself.
kiwmi listens to a socket and offers a basic client, kiwmic, to communicate with kiwmi, similarly to 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.

kiwmi handles almost nothing on it's own, and instead it emits events, to which the client can subscribe and react accordingly.
This allows for 100% flexibility and customizability, while requiring little overhead effort.
New user configurations will be linked as they are created, to help new users get started.

kiwmi will end up being configured by a monolithic frontend, or collection of small scripts.
A small (probably) Python library may be created to aid creating a monolithic frontend.

*WARNING*: Right now you shouldn't run kiwmi from a TTY, as you won't be able to exit it.

Dependencies
------------

- https://github.com/swaywm/wlroots[wlroots]
- meson (build)
- ninja (build)
- git (build, optional, to fetch the version)

Building
--------

Make sure all dependencies are installed.

Run:

----
$ meson build
$ ninja -C build
----

Install with:

----
# ninja -C build install
----

Contribution
------------

You want to contribute? Great!

Future requests, bug reports and PRs are always welcome.
Note that pull requests without a valid issue are ignored to decrease the amount of duplicate work.
Also read link:CONTRIBUTING.adoc[CONTRIBUTING.adoc].

If anything is unclear, feel free to contact me.

If you don't program but want to contribute to kiwmi, spread the word about kiwmi and star the repo.
