# mirada

> A sovereign Wayland compositor + tiling window manager, in Rust, on [Llimphi](https://github.com/tawasuyu/llimphi).

`mirada` (Spanish *look, gaze*) is the display stack: a tiling Wayland compositor, an XDG desktop portal (generic file pickers / screenshare), a PAM login greeter, and the control CLI. The architecture splits cleanly in two:

- **Cuerpo** (`mirada-body` + `mirada-compositor`) — the Wayland surface over [`smithay`](https://github.com/Smithay/smithay). Manages outputs and surfaces, translates commands into backend operations. DRM/KMS native, or nested inside a host Wayland for development.
- **Cerebro** (`mirada-brain`) — the desktop orchestrator: virtual desktops, windows, focus, tiling. Consumes `BodyEvent`, emits `BrainCommand`. **Agnostic of smithay and of any toolkit** — it can drive a remote Cuerpo over `mirada-link`.

All UI (greeter, portal dialogs, menus) renders on Llimphi-HAL, so the same scene tree runs on Wayland and on Wawa bare-metal.

<p align="center">
  <img src="docs/mirada_showreel.gif" alt="mirada showreel — one desktop layout morphing across Windows XP, macOS, KDE, Hyprland and CDE looks" width="900">
  <br>
  <sub>one compositor, every desktop — the same layout across XP · macOS · KDE · Hyprland · CDE &nbsp;<em>(stylized concept render, not a live capture)</em></sub>
</p>

## Run

```sh
cargo run --release -p mirada-compositor   # the compositor (nested in a host Wayland for dev)
cargo run --release -p mirada-greeter      # PAM login greeter (real backend + mock)
cargo run --release -p mirada-ctl -- ...   # control the running compositor (swaymsg/hyprctl style)
```

DRM/KMS needs seat permissions — launch from a greeter/seat, not a plain user terminal. Nested mode (inside an existing Wayland session) is the friendly dev path.

## Features

- **Tiling WM** (Hyprland-like): directional navigation, multi-monitor, workspace move/swap-master, configurable borders, hot-reload of `config.ron`.
- **Multi-monitor, multi-DPI**: per-output wallpaper / order / scale / fit; logical layout across mixed 1×/2× outputs; hotplug.
- **Openbox-style root menu** with nested submenus; autohide bottom bar.
- **Greeter MVP**: remembers last user/desktop, `↑`/`↓` switch desktops, configurable *Matrix*-rain background, real PAM backend + mock.
- **Robust VT switching** (`Ctrl+Alt+F1…F12`) with libseat pause/resume, keymap-independent.
- **Complete XDG portal**: any app gets file pickers via the portal with no app-specific code.

## Scope of this repository

This is the **lean** build of mirada — the compositor, WM, greeter, portal and CLI. The AI desktop assistant (`mirada-asistente`, which pulls an LLM stack) and the experimental WebAssembly status bar (`mirada-bar-web`) are **not** included here; the compositor does not depend on them.

## Caveats (honest state)

- **Not a `sway`/`weston` replacement in stability** — yet. It replaces them in *Llimphi-HAL compatibility*.
- DRM/KMS path validated on **Intel** only. NVIDIA proprietary and multi-GPU/Optimus are untested.
- Production DRM/KMS hardening beyond the MVP is ongoing.

## License

MIT. Builds on [Llimphi](https://gitea.gioser.net/sergio/llimphi) (pulled as a git dependency).
