A fully programmable Wayland Compositor
Find a file
tiosgz ff762668a6 Fix xdg_shell_view_get_size
If the view doesn't set its size explicitly (e.g. imv), it returned 0
2021-09-15 17:05:05 +00:00
include Update pointer focus more often 2021-09-05 10:51:58 +00:00
kiwmi Fix xdg_shell_view_get_size 2021-09-15 17:05:05 +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 note about the IRC channel 2021-09-13 11:24:20 +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.