CopyCat OS

Global menu bar. Spatial desktop environment. Classic desktop design with features that make you go, “I’ve seen this before?” Yes. CopyCat OS. Keeping the classic desktop paradigm alive, and bringing the best real Mac-like experience to Linux.

X11 and Wayland in one session. GameScope-ready. Optimized for the Steam Deck and Lenovo Legion Go.

Get notified Read the dev blog
Compositor

MoonRock

An OpenGL compositor and window manager. The desktop is spatial — windows hold their positions, the surface is a place.

  • Native X11 via XLibre. Wayland clients run in the same session; both ecosystems coexist without picking sides.
  • Written in C. Built with Meson. 2D rendering via Cairo and Pango. Compositing via OpenGL through GLX with custom GLSL shaders.
  • Owns all window chrome — title bars, shadows, decorations, traffic-light state — so applications can only draw into their content surface.
  • Routes input from the system input daemon to the focused surface. Applications never see raw evdev.
  • Hosts the MoonBase IPC endpoint at $XDG_RUNTIME_DIR/moonbase.sock (mode 0600, peer-credential checked against the session UID).

Source: github.com/kyleblizzard/MoonRock

MoonBase
Application framework

MoonBase

The runtime, framework, and sandbox every application links against.

  • Distributed as libmoonbase.so.1 inside MoonBase.framework; always provided by the OS, never vendored by an app.
  • Two sandbox tiers — native and webview. There is no third tier and no path that skips the sandbox.
  • Every app process starts under bwrap --unshare-all --die-with-parent --new-session with a seccomp filter applied. Filesystem, network, devices, and IPC are deny-by-default.
  • Entitlements declared in Info.appc describe what the app needs (e.g. hardware:camera, network:outbound:*); the sandbox decides how that translates into bwrap flags and seccomp edits.
  • Consent is lazy: a declared entitlement does not grant access on its own. First use opens a native consent sheet; the grant persists if the user allows it.
  • IPC to MoonRock speaks one protocol on one socket — AF_UNIX SOCK_STREAM, length-prefixed CBOR frames, big-endian framing, integer-keyed maps, 1 MiB maximum frame.
  • Hosts the theme engine: system-wide and per-app theming, with applications adapting to the host DE’s theme conventions when launched off CopyCat OS.
Application bundle

CopyCat.app

One application bundle for every Linux distribution. Develop once, launch everywhere.

  • Single-file on-disk layout: a static ELF stub at the head, a squashfs image appended, and a trailer at EOF — [stub] [squashfs] [trailer].
  • Double-clicking dispatches to moonbase-launch, which reads the trailer, mounts the squashfs at $XDG_RUNTIME_DIR/moonbase/mounts/<bundle-id>-<pid>/ via squashfuse, then execs the app under bubblewrap.
  • Inside the bundle: Contents/Info.appc (TOML manifest, max 64 KiB), the executable under Contents/CopyCatOS/, Contents/Resources/AppIcon.icns with localized .lproj directories, and optionally Contents/Frameworks/ for vendored shared libraries.
  • Apps integrate with MoonRock, MoonBase, and the theme engine at runtime — those layers are always provided by the OS, never vendored inside the bundle.
  • On CopyCat OS, the app inherits the system theme by default and can declare a per-app override. On any other Linux desktop environment, the app adapts to the host DE's theme conventions instead.
  • Shipping .app files carry the application icon as an extended attribute on the file itself, so the file viewer, dock, search, and desktop icons render the real icon without mounting the squashfs.
  • No installation step. No package manager. No PPA. The file is the app; deleting it removes the app entirely. Email it to a friend; they double-click and it runs.
Gaming

Built for handheld play

GameScope-ready, with the desktop session optimized for the Steam Deck and the Lenovo Legion Go.

  • Games hand off from MoonRock to GameScope for fullscreen play — fixed-refresh scanout, HDR passthrough, integer scaling, and per-game resolution overrides.
  • Hardware-aware: gamepad bindings, performance and TDP profiles, and DPI/scale presets tuned for 7-inch and 8-inch handheld displays.
  • Touchscreen-first input paths in the shell — controls that account for thumbs, not just cursors.
  • Clean handoff back to the spatial desktop session when the game exits — no compositor reset, no orphaned windows.
Releases

Get notified.

One email when the first build is available.