MCPcopy Index your code
hub / github.com/Aromatic05/we-layerd

github.com/Aromatic05/we-layerd @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
415 symbols 789 edges 47 files 12 documented · 3%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

we-layerd

we-layerd is a Rust daemon for running Wallpaper Engine wallpapers on Wayland through the native wallpaper-engine-renderer library.

What it does

  • Builds the bundled wallpaper-engine-renderer submodule
  • Presents renderer output through Wayland layer-shell
  • Supports DMA-BUF and SHM frame presentation
  • Forwards pointer input to interactive wallpapers
  • Exposes ctl status and doctor diagnostics for the native runtime
  • Ships a GUI companion, we-gui, for workshop browsing and config generation

Build

Initialize the bundled renderer submodule and build the workspace:

git submodule update --init --recursive
cargo build --workspace --release
WE_LAYERD_INSTALL_PREFIX=/usr cargo build --workspace --release

Arch Linux packages

For this repository itself:

sudo pacman -S --needed \
  rustup gcc cmake pkgconf git \
  wayland wayland-protocols libxkbcommon \
  gtk3 xdotool

For the renderer build:

sudo pacman -S --needed \
  vulkan-headers vulkan-icd-loader mesa libglvnd \
  gstreamer gst-plugins-base-libs \
  lz4 pango fontconfig freetype2 \
  directx-shader-compiler cef

Notes:

  • BUILD_WEWEB=ON is forced during the upstream configure step.
  • gtk3 is needed by the current tray/GUI stack on Linux.
  • directx-shader-compiler satisfies the upstream DXC probe used by the renderer submodule.

Install binaries

cargo xtask install follows the prefix recorded by the build. The default build prefix is ~/.local.

cargo xtask install
sudo cargo xtask install --prefix /usr
DESTDIR="$pkgdir" cargo xtask install --prefix /usr

Installed layout:

$prefix/bin/we-layerd
$prefix/bin/we-gui
$prefix/lib/libwallpaper-engine-renderer.so
$prefix/lib/we-cef-helper
$prefix/share/gnome-shell/extensions/we-layerd@aromatic/

Config

Start from:

cp config.example.toml ~/.config/we-layerd/config.toml

The important paths are:

  • renderer.library_path
  • renderer.source
  • renderer.assets_path
  • renderer.cache_path

Leave renderer.library_path = "" to enable automatic lookup.

See docs/CONFIGURATION.md for the config model.

Runtime commands

we-layerd ctl stop
we-layerd ctl pause
we-layerd ctl resume
we-layerd ctl reload
we-layerd ctl status
we-layerd doctor --config ~/.config/we-layerd/config.toml

More docs

Extension points exported contracts — how you extend this code

WallpaperBackend (Interface)
(no doc) [2 implementers]
src/backend/traits.rs

Core symbols most depended-on inside this repo

push
called by 61
src/runtime/input.rs
snapshot
called by 17
src/backend/layer_shell/state.rs
sync_launch_settings
called by 12
apps/we-gui/src/main.rs
clear
called by 9
src/runtime/input.rs
push_unique
called by 9
crates/we-core/src/install_layout.rs
recompute_geometry
called by 8
src/backend/wayland_common/output.rs
update_render_extent
called by 7
src/backend/layer_shell/state.rs
check_status
called by 7
crates/we-renderer/src/lib.rs

Shape

Function 195
Method 130
Class 66
Enum 23
Interface 1

Languages

Rust89%
TypeScript11%

Modules by API surface

src/app.rs31 symbols
crates/we-renderer/src/lib.rs30 symbols
src/config.rs27 symbols
apps/we-gui/src/main.rs27 symbols
crates/we-renderer-sys/src/lib.rs26 symbols
src/ipc.rs24 symbols
crates/we-core/src/config.rs24 symbols
src/backend/wayland_common/output.rs20 symbols
src/backend/layer_shell/state.rs16 symbols
contrib/gnome-shell-extension/we-layerd@aromatic/extension.js16 symbols
contrib/gnome-shell-extension/we-layerd@aromatic/windowManager.js15 symbols
xtask/src/main.rs13 symbols

For agents

$ claude mcp add we-layerd \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact