apps/photos (lib + bin) puts libs/image_tiles' TileGrid in a tile: it opens a baked library found by name (IMAGE_TILES_HOME, the cwd's local/image-tiles, the checkout the binary was built in — the smbc collection first), shows a status line with the bake command when there is none, and exposes photos.search (every query word in a title or link), photos.show (the camera glides onto one picture) and photos.summary — the same answer for the port and for the module's executor. PhotosModule mints the view inside an isolate with an open schema that takes a collection name, never a path; the WM links it behind app-photos and lists it in the menu. image_tiles learned to decode GIF and WebP and to read a manifest's pictures from disk, so the bake can take local/smbc's mirror: the last 300 comics are baked under local/image-tiles/smbc (293; seven of the mirror's files are saved error pages). fabric joins the launcher with a title and a polite close. Driven hidden: the wall in a process tile beside the left pane, panned and zoomed; search and show cards; the same wall as an in-process module; fabric launched and closed; standalone photos with the F10 overlay on the left. photos 7, image_tiles 5, wm 152; the photos lib checks for wasm32. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
53 lines
2.4 KiB
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"]
|