An open API service indexing awesome lists of open source software.

https://github.com/cudiph/cwcwm

Hackable wayland compositor
https://github.com/cudiph/cwcwm

lua wayland wayland-compositor wlroots

Last synced: 22 days ago
JSON representation

Hackable wayland compositor

Awesome Lists containing this project

README

          

# README

## About CwC

CwC is an extensible Wayland compositor with dynamic window management based on wlroots.
Highly influenced by [awesome window manager](https://awesomewm.org), CwC uses Lua for its
configuration and C plugins for extensions.

For new users, you may want to check out the [getting started][getting_started] page.

## Stability state

Crashes may happen so daily driving isn't recommended unless you're okay with them.
If you encounter any crashes, please report them by [creating an issue][github-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][conventional-commits].
APIs that derived from AwesomeWM are unlikely to get a change therefore
guaranteed not to break your configuration.

## Features

- 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 with hotplugging and restore.

## Building and installation

Required dependencies:

- wayland
- wlroots 0.19
- 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)

### Manual

```console
$ git clone https://github.com/Cudiph/cwcwm/
$ cd cwcwm
$ make
$ sudo make install
```

CwC now should be available in your display manager or execute `cwc` in a tty.

To clear the installation and build artifacts, you can execute:

```console
$ sudo make uninstall
$ make clean
```

### AUR

AUR package is available under the package name [cwc][cwc] or [cwc-git][cwc-git] for the git version.

```console
$ yay -S cwc
$ yay -S cwc-git
```


Screenshot


screenshot

## Credits

CwC contains verbatim or modified works from these awesome projects:

- [awesome](https://github.com/awesomeWM/awesome)
- [dwl](https://codeberg.org/dwl/dwl)
- [Hikari](https://hub.darcs.net/raichoo/hikari)
- [Hyprland](https://github.com/hyprwm/Hyprland)
- [Sway](https://github.com/swaywm/sway)
- [TinyWL](https://gitlab.freedesktop.org/wlroots/wlroots)

See [LICENSE.md](LICENSE.md) for license details.

[getting_started]: https://cudiph.github.io/cwc/apidoc/documentation/00-getting-started.md.html
[github-issue]: https://github.com/Cudiph/cwcwm/issues
[conventional-commits]: https://www.conventionalcommits.org/en/v1.0.0/#commit-message-with--to-draw-attention-to-breaking-change
[cwc]: https://aur.archlinux.org/packages/cwc
[cwc-git]: https://aur.archlinux.org/packages/cwc-git