A fully programmable Wayland Compositor
Find a file
2019-03-07 15:38:41 -08:00
include/kiwmi Basic cursor handling 2019-03-07 19:25:38 +01:00
kiwmi Merge branch 'master' of https://github.com/buffet/kiwmi 2019-03-07 19:27:41 +01:00
.clang-format clang-format 2019-02-19 11:50:46 +01:00
.gitignore Basic C comp 2019-02-17 13:19:28 +01:00
CONTRIBUTING.adoc added contributing.adoc 2019-02-19 11:55:14 +01:00
LICENSE Initial commit 2018-12-31 15:25:17 +01:00
meson.build Supress UNUSED parameter warnings 2019-03-07 18:51:33 +01:00
meson_options.txt Basic C comp 2019-02-17 13:19:28 +01:00
README.adoc Add execution details to README.adoc 2019-03-07 15:38:41 -08:00

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 its 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.

Dependencies

  • 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

Using kiwmi

Execution

kiwmi can be run in X or another Wayland compositor, and will automatically use an appropriate backend.

WARNING: kiwmi cannot yet be run in a TTY. Running kiwmi in a TTY at this time will softlock the machine.

Sending commands from kiwmic to kiwmi

kiwmic is not implemented at this time.

When kiwmic is implemented, it will use the interface kiwmic COMMAND [PARAMETERS]...

Configuring kimwi

kimwi is not yet configurable.

Recommended configurations will be supplied to make setup easier.

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 CONTRIBUTING.adoc.

If anything is unclear, feel free to contact me.

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