84 lines
4 KiB
TOML
84 lines
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.
|
|
#
|
|
# In-process mode (apps/wm-all, iOS and the web): the same desk hosts app
|
|
# crates linked in as MODULES (libs/app_module), one splash isolate each,
|
|
# drawn into the desk's own texture. This crate is a LIBRARY for that: the
|
|
# `wm` binary here is the desktop build (src/main.rs), and an all-in-one
|
|
# project links `makepad-app-wm` plus its app crates and sets the `WmBuild`
|
|
# (src/build.rs). No app crate is a dependency of wm itself.
|
|
#
|
|
# 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-app-wm"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
license = "MIT"
|
|
default-run = "makepad-app-wm"
|
|
|
|
[lib]
|
|
name = "makepad_app_wm"
|
|
path = "src/lib.rs"
|
|
|
|
[[bin]]
|
|
name = "makepad-app-wm"
|
|
path = "src/main.rs"
|
|
|
|
# The deploy's prebuild of what the WM starts (the AI Hub, its apps, the JIT tool), each with the
|
|
# WM's own start command as a build (deploy_build.rs).
|
|
[[bin]]
|
|
name = "makepad-wm-build"
|
|
path = "src/bin/makepad_wm_build.rs"
|
|
|
|
[features]
|
|
default = ["tweaker"]
|
|
# The design overlay (Shift+F10 with the dev overlays on). On for development
|
|
# builds; the Builder's releases build without it (--no-default-features).
|
|
tweaker = ["dep:makepad-widgets-tweaker", "makepad-widgets/data", "makepad-widgets/dock", "makepad-widgets/fab"]
|
|
|
|
[dependencies]
|
|
makepad-widgets = { path = "../../widgets", default-features = false, features = ["charts", "color", "data", "dates", "chat", "dock", "rich_text", "dropzone", "vector", "glass", "nav_menus", "command_palette"] }
|
|
makepad-widgets-tweaker = { path = "../../widgets/families/tweaker", optional = true }
|
|
makepad-studio-protocol = { path = "../../platform/studio" }
|
|
makepad-network = { path = "../../platform/network" }
|
|
makepad-wm-api = { path = "../../libs/wm_api" }
|
|
makepad-desk-link = { path = "../../libs/desk_link" }
|
|
makepad-app-registry = { path = "../../libs/app_registry" }
|
|
makepad-app-host = { path = "../../libs/app_host" }
|
|
# 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" }
|
|
makepad-ai-hub = { path = "../../libs/ai/hub", default-features = false }
|
|
# The shell's drawing kit and the AI hub control panel (shared with the AI Hub app).
|
|
makepad-shell-kit = { path = "../../libs/shell_kit" }
|
|
makepad-ai-hub-panel = { path = "../../libs/ai/hub_panel" }
|
|
makepad-desk-link-panel = { path = "../../libs/desk_link_panel" }
|
|
# In-process hosting (aicontrol §3): the module contract and the palette
|
|
# applied into each instance's isolate. Which modules a build links is the
|
|
# binary's say (src/build.rs), never a feature of this crate.
|
|
makepad-app-module = { path = "../../libs/app_module" }
|
|
makepad-civil-time = { path = "../../libs/civil_time" }
|
|
# The headset IMU reader (src/headset_imu.rs) inflates the tracker board's
|
|
# zlib config JSON.
|
|
makepad-fast-inflate = { path = "../../libs/fast_inflate" }
|
|
|
|
# Foreign Wayland windows (src/wayland_host): the WM serves the protocol itself.
|
|
[target.'cfg(target_os = "linux")'.dependencies]
|
|
makepad-wayland-server = { path = "../../libs/wayland_server" }
|
|
makepad-xkb-keymap = { path = "../../libs/xkb_keymap" }
|
|
|
|
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
|
|
# Serving Desk Link (listener, TLS, fleet credentials): native desktops only
|
|
makepad-desk-link = { path = "../../libs/desk_link", features = ["server"] }
|
|
makepad-hal = { path = "../../platform/hal" }
|