A fully programmable Wayland Compositor
Find a file
tiosgz 520dd5ce02 Only render mapped surfaces
This targets only surfaces under kiwmi_view, thus only XDG shell. Other
surfaces to be fixed later.

The new code here is copied over from wlroots, with only small
modifications.
2021-08-27 13:13:37 +00:00
include Only render mapped surfaces 2021-08-27 13:13:37 +00:00
kiwmi Only render mapped surfaces 2021-08-27 13:13:37 +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 Replaced README and CONTRIBUTING files 2019-12-21 21:36:48 -05: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 Add scoll event 2021-08-14 18:42:35 +00:00
meson.build Add hacky lazy damage tracking implementation 2021-08-14 19:44:20 +00:00
meson_options.txt Allow user to change their lua version 2020-05-11 15:11:23 +00:00
README.md Add build passing shield 2021-08-18 18:43:25 +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.

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.