makepad/apps/wm/Cargo.toml

53 lines
2.4 KiB
TOML

# wm — makepad window manager. An Omarchy-behaving tiling window manager
# built as a Makepad app.
#
# Nested mode (this crate, all desktop OSes): wm owns one OS window,
# fullscreen it and it is the desktop. Tiles host other Makepad apps as
# child processes through the Studio runview mechanism: a tiny in-process
# websocket hub accepts `--stdin-loop` clients, each tile shares a GPU
# swapchain (IOSurface / DXGI handle / DMA-BUF) with its child and forwards
# input over the studio protocol.
#
# Session mode (later, Linux only): the same layout/chrome/protocol with a
# Wayland compositor display backend instead of a Makepad window. The
# layout tree, keybindings, theming and client management are kept free of
# nested-mode assumptions for that reason.
[package]
name = "makepad-wm"
version = "0.1.0"
edition = "2021"
default-run = "wm"
[[bin]]
name = "wm"
path = "src/main.rs"
[dependencies]
makepad-widgets = { path = "../../widgets" }
makepad-studio-protocol = { path = "../../platform/studio" }
makepad-network = { path = "../../platform/network" }
makepad-wm-api = { path = "../../libs/wm_api" }
# The AI services wire only: the WM relays frames between the aichat child and the apps.
makepad-ai-services = { path = "../../libs/ai/services" }
makepad-strict-json = { path = "../../libs/strict_json" }
# In-process hosting (aicontrol §3): the module contract, the palette applied
# into each instance's isolate, and the modules this build links.
makepad-app-module = { path = "../../libs/app_module" }
makepad-wm-theme = { path = "../../libs/wm_theme" }
makepad-sheets = { path = "../sheets", default-features = false, optional = true }
makepad-photos = { path = "../photos", default-features = false, optional = true }
# The assistant as a module, seated in the pane in-process: the web build's
# only chat, a desktop option. Without the engine feature: no model runtime,
# NoModel and the tool console (the child process keeps the real models).
makepad-aichat = { path = "../aichat", default-features = false, optional = true }
[features]
default = ["app-sheets", "app-photos", "app-aichat"]
# Sheets linked in as a module (hosting is still Process unless switched).
app-sheets = ["dep:makepad-sheets"]
# Photos (the picture wall) linked in as a module, the same way.
app-photos = ["dep:makepad-photos"]
# The aichat module linked in (the pane seats it in-process where there are
# no processes, or when `aichat` is switched to module hosting).
app-aichat = ["dep:makepad-aichat"]