https://github.com/cococry/vortex
https://github.com/cococry/vortex
Last synced: 21 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/cococry/vortex
- Owner: cococry
- Created: 2025-10-02T19:09:51.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-10-02T22:20:46.000Z (10 months ago)
- Last Synced: 2025-10-03T00:21:00.122Z (10 months ago)
- Language: C
- Size: 376 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# vortex
**vortex** is an independent wayland compositor written in C.
---
## Overview
Vortex is currently under active development as a high-performance, modern Wayland compositor
focused on creating a visually appealing Wayland desktop experience.
The project's goal is to create a self-contained, independent platform dedicated entirely to desktop compositing.
In other words, the compositor is responsible only for compositing and its related aspects (such as window animations and IPC),
while components like the desktop shell are intentionally abstracted away from it.
## Build & Run
Make sure you have the required dependencies installed (debian packages shown):
```
meson ninja-build libwayland-dev libdrm-dev libgbm-dev libegl1-mesa-dev libinput-dev libudev-dev libxkbcommon-dev libglfw3-dev libcglm-dev libfreetype-dev libharfbuzz-dev
```
Clone & build:
```
git clone --recurse-submodules https://github.com/cococry/vortex.git
cd vortex
meson setup build
meson compile -C build
sudo meson install -C build
```
To run Vortex:
```
./build/vortex # Start the compositor
WAYLAND_DISPLAY=wayland-1 weston-simple-shm # Start a simple client
```
Note: Use the wayland display that is logged by the output of **./vortex --verbose** as the WAYLAND_DISPLAY variable
when starting clients.
Note: The sink backend is automatically chosen at runtime, depending on context.
Supported sink backends are:
- *DRM/KMS* (hardware scanout)
- *Wayland* (nested session)
---
## CLI options
### Usage
```bash
vortex [option:s] (value:s)
```
### Options
| Option | Description |
|--------|--------------|
| `-h, --help` | Show this help message and exit |
| `-v, --version` | Show version information |
| `-vb, --verbose` | Log verbose (trace) output for debugging |
| `-lf, --logfile` | Write logs to a logfile located in:
`~/.local/state/vortex/logs/` or `$XDG_STATE_HOME/vortex/logs` |
| `-q, --quiet` | Run in quiet mode (no logging) |
| `-vo, --virtual-outputs [val]` | Specify the number of virtual outputs (windows) in nested mode |
| `-b, --backend [val]` | Specify the compositor’s sink backend.
Valid options: `drm`, `wl`. Example:
`vortex -b drm` |
| `-bp, --backend-path [val]` | Specify the **path to a `.so` file** to load as a custom sink backend |
| `-expt, --exclude-protocol [val(s)]` | Specify the optional protocols (space seperated) you wish to not support during runtime |
## Sink Backend Configuration
The compositor supports **pluggable sink backends** that can be discovered at runtime.
### Valid Backends
Valid options for backends are:
- drm
- wl
You can specify one directly:
```bash
vortex -b drm
```
Or load a custom shared object backend manually:
```bash
vortex -bp /usr/lib/vortex/backends/libcustom.so
```
---