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
- Host: GitHub
- URL: https://github.com/cudiph/cwcwm
- Owner: Cudiph
- License: other
- Created: 2024-12-20T10:43:15.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-02T10:43:30.000Z (12 months ago)
- Last Synced: 2025-02-02T11:24:54.579Z (12 months ago)
- Topics: lua, wayland, wayland-compositor, wlroots
- Language: C
- Homepage: https://cudiph.github.io/cwc/apidoc/
- Size: 381 KB
- Stars: 31
- Watchers: 2
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: COPYING
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
## 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