The modes

Per-window

Native mode

Linux desktop apps show up on your Home Screen and launch into their own iPadOS windows, each in its own host bundle. A Settings pane picks which apps get icons. What is still being validated is the physical host-window polish, not the launch path.

Our own shell

iosc desktop

The compositor's own tablet-first desktop: a panel with launchers, a dock, an overview, and a wallpaper. The lightest thing here, and the one that assumes a touchscreen rather than tolerating one.

Upstream

Bring your own desktop

Run a full upstream desktop environment. GNOME Shell 46 and KDE Plasma both sit on the same IOSurface and GPU foundation. This is the heavy path, and the closest to a normal Linux desktop.

Legacy

X11 compatibility

Xwayland against iosc for X11 clients, rendering through glamor and ANGLE rather than on the CPU. Useful for old X apps that have no Wayland story.

The package manager is the chooser

Nothing custom ships to pick a flavor. You install xios-native, xios-gnome, xios-kde or xios-x11 from Sileo and apt resolves the whole desktop. All four pull in xios-runtime, the shell-independent base of compositor, GPU stack, D-Bus, audio and filesystem bridges; the three fullscreen flavors add xios-core on top for the display app, the iosc shell and the session launcher, which is exactly what native mode leaves out. The metas also carry the iOS floor, so a device too old for a flavor is simply not offered it.

The app launcher
Native mode: switching between apps

Bring your own desktop environment

For people who want a normal desktop environment, GNOME Shell and KDE Plasma are running on the same IOSurface and GPU stack.

Mutter and gjs

GNOME Shell 46

The full GNOME Shell 46, driven by Mutter with a new iOS backend, MetaBackendIOS, that renders to IOSurfaces and reuses iosc's GPU glue instead of nesting two compositors. It boots through the packaged gnome-session path and runs on the device. The remaining work is polish and service coverage, not first paint.

KWin and KF6

KDE Plasma

Plasma on KWin, built on cross-compiled Qt6 and KF6, in three shapes: Desktop, Nano and Mobile. KWin composites on the GPU with its effects, scripts and window decorations shipped, and Plasma's own shell came off its software fallback with it. System Settings has around twenty KCMs, and PowerDevil reads the real battery through the hardware bridge.

Why the shell port avoids nesting

Running GNOME Shell means running Mutter, which is itself a compositor. Rather than stack Mutter inside iosc, the port gives Mutter a native iOS backend that reuses the same IOSurface and Metal plumbing, so there is one compositor on screen instead of two. Plasma made the opposite trade: KWin keeps its own backend and nests, which costs one extra GPU pass and bought a much shorter road to a working desktop.

Apps, without a full desktop

You do not need GNOME Shell or Plasma to run desktop apps. iosc can launch GTK, Qt/KF6, X11, and plain Wayland clients as windows.

Browse app screenshots and individual app pages, including GIMP, Gnumeric, Thunar, and Ladybird.

Ladybird
An independent browser engine, in two forms: a standalone iOS app bundle, and a Wayland build that runs inside a desktop session.
Konsole, Kate, Dolphin, KCalc
The KDE set. Konsole has a real pty with a shell under it; Dolphin is built without Baloo, so browsing and file operations work but indexed search does not.
Ark, Gwenview, KWrite, Okular
Archives, images, text and PDFs, from the same Qt/KF6 batch.
Console (kgx), Text Editor, Files, Calculator
The GNOME set, including Nautilus and gnome-control-center.
opencode
A coding agent running on the cross-compiled Bun, doing full agent turns on the iPad.
foot, imv, mpv
A Wayland app wave. foot has a working PTY, imv works through its native Wayland path and an Xwayland fallback, and mpv renders through ANGLE with VideoToolbox decode.
fuzzel, dunst, zathura, waybar, hitori
Launcher, notifications, a PDF viewer, a panel, and a GTK puzzle app.