Koma 与 Jiku 基于高度可移植的 POSIX 与 Wayland 原语构建(Smithay、libseat/seatd、libinput、rustix SCM_RIGHTS + File I/O 以及纯 Rust Phodopus Lua 5.4),架构上覆盖 x86_64、aarch64(ARM64)、MacBook Linux 硬件以及 BSD 操作系统。
NOTE
当前验证边界(v0.0.1):目前已在隔离的 QEMU/KVM 虚拟机中完成 x86_64 Arch Linux(koma --tty + seatd + llvmpipe 软件 KMS 冒烟)以及 FreeBSD 15.1-RELEASE(全 workspace 编译与测试检查)。Apple Silicon 裸机、Intel MacBook、ARM64 开发板及 OpenBSD 8+ 的真实硬件运行验证仍待后续验收。
Apple Silicon MacBook(M1–M4、Asahi / Fedora / Arch ARM)
在 Apple Silicon(aarch64)上运行 Linux 与传统 x86_64 PC 存在三项关键差异:
- 刘海屏安全区(
safe_area)避让:内置 Liquid Retina XDR 屏幕(eDP-1)顶部带有摄像头凹槽。可在koma.monitor({...})中配置安全内边距,避免平铺窗口或状态栏被遮挡:koma.monitor({ output = "eDP-1", scale = "auto", safe_area = { top = 38, bottom = 0, left = 0, right = 0 }, allow_non_desktop = false, }) 16 KiB内存页对齐:Apple Silicon Linux 内核采用16 KiB页大小(PAGESIZE = 16384)。Koma 的SCM_RIGHTSmemfd/SHM 帧传输按运行时页大小对齐而不写死4096,且PhodopusLua 沙箱无需任何 JITmprotect可执行页(原生兼容严格W^X)。- Force Touch 触控板体验:可在
koma.input({ touchpad = { ... } })中配置click_method = "clickfinger"与pinch_sensitivity,配合 3/4 指工作区和全局概览手势。 - 驱动栈:依赖内核
apple_drm/dcp与 Mesaasahi(zwp_linux_dmabuf_v1)。
Intel MacBook Linux(含 T2 与非 T2 机型)
- HiDPI 分数缩放:Retina
2560x1600/2880x1800/3072x1920面板可通过scale = "auto"或显式数值(如scale = 1.6/2.0)走wp-fractional-scale-v1+wp-viewporter。 - 非桌面连接器过滤:Touch Bar 或 VR 头显等非桌面显示器默认跳过(
allow_non_desktop = false)。 - 外接 Thunderbolt 显示器:可按需设置
max_bpc = 10限制色彩位深,建议先在备用 VT 用--tty验证后再切换主会话。
通用 ARM64(aarch64)Linux
- komawm/packaging 为 Debian/Ubuntu、Arch Linux ARM、Fedora/Copr、Alpine、NixOS(
aarch64-linux)及 Homebrew 均提供了aarch64/arm64构建定义。 - 在内存带宽受限的 ARM64 SBC 上,可配置
koma.appearance({ blur = { enabled = false } })关闭多通道 Dual-Kawase 模糊以降低 GPU 带宽占用。
FreeBSD 15.1-RELEASE 与 OpenBSD 8+
| 操作系统 | v0.0.1 状态 |
座席与输入栈 | 技术说明 |
|---|---|---|---|
FreeBSD 15.1-RELEASE |
虚拟机验证通过(cargo check / cargo test) |
seatd + libudev-devd + libinput + evdev |
使用 rustix shm_open(koma-proto/src/scm_unix.rs)、跨平台轮询热重载路径(config_watcher.rs)及 LOCAL_PEERCRED/getpeereid 同 UID 套接字鉴权 |
OpenBSD 8+ |
实验性模板 | wscons / libinput |
Ports 模板位于 komawm/packaging/openbsd/,待真实运行时 DRM/seatd 验证 |
在 FreeBSD 上运行前,请先启用 seatd(sysrc seatd_enable="YES" && service seatd start),将用户加入 video 组,并确保 XDG_RUNTIME_DIR 指向权限 0700 的用户自有目录。