Files
aria 993bc0f88f Integrate native Rime and stabilize input, output, and rendering
- Add optional modifier-only Super binding whose tap is cancelled by
  other input, focus changes, grabs, locks, and session teardown.
- Ship the native ferese-rime user service, Rime defaults, installer
  inventory, package dependencies, session environment, and docs.
- Vendor Smithay 8a27023 with the SHM texture-cache format fix and add
  GPU regressions for format changes and resize snapshots.
- Release reused CRTC owners before staging output modes, then restore
  changed outputs before former owners when a transaction fails.
- Wait for resize-capture GPU completion, expand filtered surface
  damage, and preserve IME popup origin under fractional scaling.
- Mark weekends like holidays in both calendar layouts.
2026-10-30 03:13:43 +09:00

2.0 KiB

Anvil

A compositor used as a testing ground for new smithay features. For a simple example compositor consider reading smallvil

Dependencies

You'll need to install the following dependencies (note, that those package names may vary depending on your OS and linux distribution):

  • libwayland
  • libxkbcommon

These are needed for the "Udev/DRM backend"

If you want to enable X11 support (to run X11 applications within anvil), then you'll need to install the following packages as well: - xwayland

Build and run

You can run it with cargo after having cloned this repository:

cd anvil;

cargo run -- --{backend}

The currently available backends are:

  • --x11: start anvil as an X11 client. This allows you to run the compositor inside an X11 session or any compositor supporting XWayland. Should be preferred over the winit backend where possible.
  • --winit: start anvil as a Winit application. This allows you to run it inside of an other X11 or Wayland session.
  • --tty-udev: start anvil in a tty with udev support. This is the "traditional" launch of a Wayland compositor. Note that this requires you to start anvil as root if your system does not have logind available.

Supported Environment Variables

Variable Example Backends
ANVIL_DRM_DEVICE /dev/dri/card0 tty-udev
ANVIL_DISABLE_10BIT any tty-udev
ANVIL_DISABLE_DIRECT_SCANOUT any tty-udev
ANVIL_GLES_DISABLE_INSTANCING any tty-udev
ANVIL_NO_VULKAN 1,true,yes,y x11
SMITHAY_USE_LEGACY 1,true,yes,y tty-udev
SMITHAY_VK_VERSION 1.3