MCPcopy Index your code
hub / github.com/buffet/kiwmi

github.com/buffet/kiwmi @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
572 symbols 1,024 edges 50 files 1 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

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.

Core symbols most depended-on inside this repo

arrange_layer
called by 8
kiwmi/desktop/layer_shell.c
arrange_layers
called by 7
kiwmi/desktop/layer_shell.c
cursor_refresh_focus
called by 6
kiwmi/input/cursor.c
luaC_setfuncs
called by 5
kiwmi/luak/lua_compat.c
luaK_get_kiwmi_object
called by 5
kiwmi/luak/luak.c
desktop_surface_get_pos
called by 4
kiwmi/desktop/desktop_surface.c
seat_focus_surface
called by 4
kiwmi/input/seat.c
view_set_pos
called by 3
kiwmi/desktop/view.c

Shape

Class 348
Function 202
Enum 22

Languages

C73%
C++27%

Modules by API surface

kiwmi/luak/kiwmi_view.c39 symbols
kiwmi/luak/kiwmi_server.c34 symbols
kiwmi/desktop/xdg_shell.c33 symbols
kiwmi/desktop/view.c30 symbols
kiwmi/input/cursor.c28 symbols
kiwmi/luak/kiwmi_output.c23 symbols
kiwmi/luak/kiwmi_cursor.c23 symbols
kiwmi/input/seat.c22 symbols
kiwmi/desktop/layer_shell.c22 symbols
include/desktop/view.h22 symbols
kiwmi/desktop/output.c21 symbols
kiwmi/luak/kiwmi_keyboard.c20 symbols

For agents

$ claude mcp add kiwmi \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact