Koma and Jiku are built on portable POSIX and Wayland primitives (Smithay, libseat/seatd, libinput, rustix SCM_RIGHTS + File I/O, and pure-Rust Phodopus Lua 5.4) so support extends cleanly across x86_64, aarch64 (ARM64), MacBook Linux hardware, and BSD operating systems.
NOTE
Verification Scope: At v0.0.1, x86_64 Arch Linux (koma --tty + seatd + llvmpipe software KMS) and FreeBSD 15.1-RELEASE (cargo check / cargo test workspace build) are verified in isolated QEMU/KVM VMs. Bare-metal Apple Silicon, Intel MacBook, ARM64 SBCs, and OpenBSD 8+ runtime tests remain pending hardware/VM acceptance.
Apple Silicon MacBook (M1–M4, Asahi / Fedora / Arch ARM)
Linux distributions running on Apple Silicon (aarch64) differ from desktop x86_64 PCs in display geometry, memory page size, and trackpad ergonomics:
- Notch & Camera Cutout
safe_areaInsets: Built-in Liquid Retina XDR panels include top camera housing cutouts (eDP-1). Configuresafe_areainkoma.monitor({...})so tiled layouts andwlr-layer-shellbars stay clear of the notch:koma.monitor({ output = "eDP-1", scale = "auto", safe_area = { top = 38, bottom = 0, left = 0, right = 0 }, allow_non_desktop = false, }) 16 KiBKernel Page Alignment: Apple Silicon Linux kernels use16 KiBpages (PAGESIZE = 16384). Koma'sSCM_RIGHTSmemfd/ SHM frame transport queries runtime page alignment rather than hardcoding4096-byte pages, andPhodopusLua heaps require zero JITmprotectexecutable pages (W^Xsafe).- Force Touch Clickpad Ergonomics: Enable
click_method = "clickfinger"and tunedpinch_sensitivityinkoma.input({ touchpad = { ... } })for one/two/three-finger clickfinger parity alongside3/4-finger workspace & overview gestures. - Apple DRM / Mesa Stack: Requires kernel
apple_drm/dcp+ Mesaasahi(GL_OES_EGL_image/zwp_linux_dmabuf_v1).
Intel MacBook Linux (T2 & Non-T2)
- HiDPI Fractional Scaling: Retina
2560x1600/2880x1800/3072x1920panels usescale = "auto"(or explicitscale = 2.0/1.6) viawp-fractional-scale-v1+wp-viewporter. - Non-Desktop Connectors: Touch Bar / virtual VR connectors marked non-desktop are skipped automatically (
allow_non_desktop = false). - Dual-GPU / Hybrid Macs: Set
max_bpc = 10if needed on external Thunderbolt displays, and test--ttyon a spare VT before migrating fromseatd/systemd-logind.
Generic ARM64 (aarch64) Linux
- Packaging recipes in komawm/packaging define
aarch64/arm64targets across Debian/Ubuntu, Arch Linux ARM, Fedora/Copr, Alpine, NixOS (aarch64-linux), and Homebrew. - Keep
koma.appearance({ blur = { enabled = false } })on low-power ARM64 SBCs if Dual-Kawase multipass blur saturates memory bandwidth.
FreeBSD 15.1-RELEASE & OpenBSD 8+
| OS | Status at v0.0.1 |
Seat & Input Stack | Notes |
|---|---|---|---|
FreeBSD 15.1-RELEASE |
VM Verified (cargo check / cargo test PASS) |
seatd + libudev-devd + libinput + evdev |
Uses rustix shm_open (koma-proto/src/scm_unix.rs), kqueue/polling fallback for config reload (config_watcher.rs), and LOCAL_PEERCRED/getpeereid for same-UID socket checks |
OpenBSD 8+ |
Experimental Template | wscons / libinput / pledge-aware path |
Ports template in komawm/packaging/openbsd/; runtime DRM/seatd verification pending |
On FreeBSD, ensure seatd is running (sysrc seatd_enable="YES" && service seatd start), your user belongs to video, and XDG_RUNTIME_DIR points to a user-owned 0700 directory before testing koma.