NOTE
Koma 是基于 Smithay 与 Rust(1.100.0,Edition 2024)编写的独立键盘驱动 Wayland 平铺合成器。你完全可以只安装并日常使用 Koma 窗口管理器——可选伴侣进程 Jiku 与 Koma 零强依赖。

核心架构原则
Koma 将 Ring 0 合成器机制 与 用户 / 智能体策略 清晰解耦:
- 无栈 Lua 5.4 配置沙箱(Phodopus):每次加载
~/.config/koma/init.lua都在纯 Rust 编写、带单调指令燃料(Instruction Fuel)与内存上限(默认4 MiB)的影子沙箱中预求值,全部规则与正则校验通过后才原子切换生效。 - 统一场景图与多模式布局引擎(
koma-model+koma-render):支持按工作区独立选择"dwindle"(有头工作区默认)、"scrolling"(无限横向滚动列)、"deck"(全视口单窗堆栈 + 后台 Stash)或"bsp",配合 Dual-Kawase 模糊、圆角、投影、焦点环与阻尼弹簧动画。 - 人类优先零延迟抢占(
< 1 ms):任意物理键鼠操作或按下Mod + G会立即中止自动化操作,并通过单调递增的Epoch租约(4091 ERR_HUMAN_PREEMPTED)阻断过期并发指令。 - 零可避免
unsafe安全基线:核心模型、Lua 桥接、虚拟座席、CLI、全局概览与 MCP 桥接共 6 个 crate 强制#![forbid(unsafe_code)],协议层与主进程使用#![deny(unsafe_code)]并以安全rustix原语替代裸libc调用。
Workspace Crate 清单
| Crate | 类型 | 职责范围 | unsafe 策略 |
|---|---|---|---|
koma-proto |
库 | 双套接字帧协议、SCM_RIGHTS memfd/SHM 传输、CapabilityToken 与 Epoch 错误码 |
#![deny(unsafe_code)] |
koma-model |
库 | dwindle/scrolling/deck/bsp 布局引擎、浮动层、弹簧物理、窗口规则 |
#![forbid(unsafe_code)] |
koma-lua |
库 | Phodopus Lua 5.4 沙箱桥接、宿主 API 与 LuaCATS 类型生成器 |
#![forbid(unsafe_code)] |
koma-render |
库 | Smithay 场景图、Dual-Kawase GLES2 模糊、圆角裁剪与受保护表面遮罩 | #![deny(unsafe_code)] |
koma-seat |
库 | 虚拟座席按键账本与 3 级 TextInjectStrategy 文本注入策略调度 |
#![forbid(unsafe_code)] |
koma |
二进制 | --tty DRM/KMS 与 --winit 嵌套后端、Wayland 协议全局注册、calloop IPC 服务 |
#![deny(unsafe_code)] |
komactl |
二进制 | validate、reload、gen-types、inventory、capture、token mint、sandbox |
#![forbid(unsafe_code)] |
koma-mcp |
二进制 | 桥接 koma-agent.sock 的标准 stdio JSON-RPC 2.0 MCP 服务 |
#![forbid(unsafe_code)] |
koma-overview |
二进制 | 基于 wlr-layer-shell 的空间工作区全局概览伴侣界面 |
#![forbid(unsafe_code)] |
手册导航
| 章节 | 内容概览 | 页面链接 |
|---|---|---|
| 安装与渠道 | cdn.komawm.org APT 源、.deb/.rpm/.apk、Arch/AUR、BSD、源码编译 |
多发行版安装与渠道 |
| 快速启动 | --session/--winit/--tty 模式、完整默认键位、Mod + Tab 概览与 Mod + G |
会话启动与默认快捷键 |
| 硬件与平台 | Apple Silicon (M1–M4) 与 Intel MacBook Linux、ARM64、FreeBSD 15.1、OpenBSD |
ARM64、MacBook Linux 与 BSD |
| Lua 配置 | Phodopus 沙箱、布局外观、多显示器 2D 配置、窗口规则与 koma-types 补全 |
Lua 沙箱、布局与视觉外观 |
| 协议与工具 | Layer Shell、锁屏、截屏、Portal、IME、komactl 与 koma-overview |
Wayland 协议、Portal 与输入法 |
| IPC 与排障 | koma-admin.sock / koma-agent.sock、Epoch 租约、MCP 与常见排障 FAQ |
双通道套接字、Epoch 租约与 MCP |
离线自检命令
可在不改动当前桌面会话的前提下直接构建并校验二进制入口:
git clone https://github.com/komawm/koma.git
cd koma
cargo +1.100.0 build --release --locked -p koma -p komactl -p koma-mcp -p koma-overview
./target/release/koma --headless-check
./target/release/komactl gen-types > /tmp/koma-types-check.lua
源码与渠道归属
本三语手册与规范文档托管于 komawm/docs,并通过确定性构建发布至 Cloudflare R2(https://cdn.komawm.org)。多发行版打包脚本位于 komawm/packaging,LuaLS 类型快照位于 komawm/koma-types,可选伴侣守护进程位于 komawm/jiku。