A fully programmable Wayland Compositor
Find a file
2022-07-30 21:30:45 +00:00
include Cleanup unneeded code after switching to wlr_scene 2022-07-30 19:22:58 +00:00
kiwmi view: allow imove/iresize with subsurfaces 2022-07-30 21:30:45 +00:00
kiwmic Add kiwmic IPC 2020-01-03 18:40:11 +00:00
protocols Fix incompatibilities with wlroots 0.13 2021-04-24 11:53:05 +00:00
.cirrus.yml Fix format CI test 2021-08-26 12:42:18 +00:00
.clang-format Add ForEachMacros to .clang-format 2019-12-30 21:46:50 -07:00
.editorconfig Add cirrus CI 2021-08-13 17:59:54 +00:00
.gitignore Basic C comp 2019-02-17 13:19:28 +01:00
CONTRIBUTING.md Contributing: add a note about code formatting 2021-12-09 14:32:36 +00:00
kiwmi.desktop Add kiwmi.desktop 2021-07-30 19:46:58 +00:00
LICENSE Initial commit 2018-12-31 15:25:17 +01:00
lua_docs.md Remove API that relies on our rendering 2022-07-30 19:06:25 +00:00
meson.build meson.build: check git exit status 2022-04-04 14:26:32 +00:00
meson_options.txt Allow user to change their lua version 2020-05-11 15:11:23 +00:00
README.md Fix link to wlroots repository 2022-01-13 20:35:40 +00:00

kiwmi

A fully programmable Wayland Compositor


Stars Build Status GitHub Issues GitHub Contributors

kiwmi is a work-in-progress extensive user-configurable Wayland Compositor. kiwmi specifically does not enforce any logic, allowing for the creation of Lua-scripted behaviors, making arduous tasks such as modal window management become a breeze. New users should be aware of the steep learning curve present, however this will be reduced as the project matures.

Got any questions or want to discuss something? Join us in #kiwmi on irc.libera.chat!

Documentation

Documentation for the API can be found in lua_docs.md.

Additionally kiwmic can be used to send a single lua string to kiwmi for direct evaluation.

For example:

$ kiwmic 'return kiwmi:focused_view():id()'
94036737803088.0

Getting Started

The dependencies required are:

  • wlroots
  • lua or luajit
  • pixman
  • meson (build)
  • ninja (build)
  • git (build, optional)

Building

After cloning/downloading the project and ensuring all dependencies are installed, building is as easy as running

$ meson build
$ ninja -C build

If you plan to use luajit instead, use the following commands instead.

$ meson -Dlua-pkg=luajit build
$ ninja -C build

Installing is accomplished with the following command:

# ninja -C build install

Contributing

Contributions are welcomed, especially while the project is in a heavy WIP stage. If you believe you have a valid concern, read the CONTRIBUTING document and please file an issue on the issues page.

For clarifications or suggestions on anything, please don't hesitate to contact me.