CwC is an extensible Wayland compositor with dynamic window management based on wlroots. Highly influenced by Awesome window manager, cwc use Lua for its configuration and C plugin for extension.
For new users, you may want to check out getting started page.
Crash may happen so daily driving isn't recommended unless you're okay with it and if you encounter one please report by creating issue with steps to reproduce. I will fix it as quickly as possible because I also daily drive it and I want my setup to be super stable.
API breaking change is documented with exclamation mark (!
) in the commit
message as per conventional commits specification.
APIs that derived from AwesomeWM are unlikely to get a change therefore
guaranteed not to break your configuration.
- Very configurable, fast, and lightweight.
- Hot reload configuration support.
- Can be used as floating/tiling window manager.
- Tabbed windows.
- Tags instead of workspaces.
- Documented Lua API.
- wlr protocols support.
- Multihead support + hotplugging (not heavily tested).
Required dependencies:
- wayland
- wlroots 0.19 (git)
- hyprcursor
- cairo
- xkbcommon
- libinput
- xxhash
- LuaJIT
- Xwayland
- xcb
Lua library dependencies:
- LGI
- cairo with support for GObject introspection
- Pango with support for GObject introspection
Dev dependencies:
- meson
- ninja
- wayland-protocols
- clang-format & EmmyLuaCodeStyle (formatting)
$ make all-release
$ sudo make install
CwC now should be available in the display manager or execute cwc
in the tty.
To clear the installation and build artifacts, you can execute this command:
$ sudo make uninstall
$ make clean
AUR package is available under the package name cwc-git.
$ yay -S cwc-git
CwC contains verbatim or modified works from these awesome projects:
See LICENSE.md for license details.