Overview
NOTE: CATNIP IS STILL VERY EARLY IN DEVELOPMENT AND IS NOT CONSIDERED TO HAVE EVEN REACHED 0.1.0 YET. THIS PROJECT IS VERY MUCH A WIP AND THE DOCS HERE ARE MOST LIKELY OUTDATED IN MULTIPLE PLACES.
Catnip is a wlroots based Wayland compositor that allows users to customize their desktop via Lua.
The (Anti) Pitch
Catnip is not meant for users looking for an out-of-the-box functioning compositor. It is meant for extremists (like myself) who enjoy wasting copious amounts of time to customize their desktop for a deeply unique and personalized experience.
In particular, catnip strives to be:
Minimalistic
Catnip does not provide any default behavior, everything must be defined by the user. This keeps catnip lean, unobstructive, and explicit. However, it also means that catnip is verbose. The user may have to spend considerable time defining how the compositor should function.
Powerful
Catnip makes very few assumptions on what it should handle internally. Instead, it delegates most of the implementation effort to the user by exposing a low level API, allowing for complete control over compositor behavior.
Stable
Due to the extremity of catnip's minimalism, the need to make changes (and in particular, breaking changes) should be quite rare once v1.0 is reached. Additionally, since much of the compositor behavior is defined by the user, breaking changes in catnip can be destructive, even potentially rendering the compositor unusable. For this reason, catnip takes great strides to ensure users are given proper time and warning before breaking changes are rolled out.
*NOTE: Catnip should still be considered beta before v1.0. Breaking changes may happen between minor versions until v1.0 is reached.
Similar Projects
Catnip is not for everybody (and probably shouldn't be). There are plenty of other projects that will perfectly suffice for most users without requiring a large time investment and deep understanding of the compositor: