{"slug": "starling-a-linux-desktop-environment-made-with-swift", "title": "Starling – a Linux desktop environment made with Swift", "summary": "A single developer has built Starling, a Linux desktop environment written in Swift by AI, that runs Chrome, Slack, and Zoom natively as a Wayland compositor with X11 support, demonstrating that the cost of building a desktop has collapsed. The project comprises about 335,000 lines of code (273K for the Flutter→Swift framework port and 62K for the desktop, Wayland/X11 servers, and bundled apps), with both repositories publicly available on GitHub.", "body_md": "# The first real desktop\n\nwritten by AI\n\nOthers have pointed AI at a desktop before. They ran in a browser tab, or\nstopped at a mock-up. **Starling drives the GPU directly and runs\nChrome, Slack and Zoom.** It was written by AI, directed by one\nperson, over six months.\n\nLine count excludes vendored dependencies. Most of it — about 273K — is the\nFlutter→Swift framework port that the whole system rests on; the desktop\nitself, its Wayland and X11 servers and the bundled apps come to roughly\n62K. Both repositories are public —\n[desktop](https://github.com/starling-build/starling) and\n[engine](https://github.com/starling-build/starling-engine) — so\nevery number here is yours to check.\n\n## Not a browser tab.\n\nNot a mock-up.\n\n\"AI built a desktop\" has been claimed before, and it has usually meant one of three things: a desktop metaphor drawn inside a web page; a convincing screenshot of something that was never logged into; or a from-scratch system that does boot, but only ever runs the handful of programs written for it.\n\n**One test separates them: does it run software it didn't\nwrite?** That is a desktop's actual job — to host programs made by\nstrangers, years apart, in toolkits it doesn't control, and keep them all\non one screen without any of them knowing about each other. A system that\nonly runs its own apps has skipped the hard part.\n\n**Starling is the session.** It talks to DRM/KMS and owns the\ndisplay. It reads the raw input devices. It is a Wayland compositor, and it\nhosts an X server for the apps that still need one. You pick it at the login\nscreen, sign in, and it's your desktop until you log out — running Chrome,\nSlack and Zoom, none of which have ever heard of it.\n\n- Runs inside a browser tab\n- Windows are\n`<div>`\n\ns that can't hold a real program - Or it boots — but runs only the apps written for it\n- Screenshots of a design that was never logged into\n\n- Drives the GPU through DRM/KMS, as the session\n- Runs software it didn't write — Chrome, Slack, Zoom\n- Speaks Wayland and X11 natively, at once\n- Every screenshot here is a running session\n\nThe screenshot below is the test that settles it. Zoom is an X11 client; Chrome is a Wayland one. Two programs written by strangers, composited into one scene, on one GPU path, by a desktop that didn't exist six months ago.\n\n## The cost of building a desktop just collapsed\n\nFor three decades, building a Linux desktop has been the work of institutions. GNOME and KDE are extraordinary pieces of engineering, sustained by hundreds of contributors across decades. That isn't a criticism of them — it's a measure of what a desktop has cost to build.\n\nAnd that cost is why there are so few. Why the ones we have are hard to change from outside. Why a genuinely new idea about how a desktop should work has had almost nowhere to go except a fork, an extension, or a patch queue someone else controls.\n\nThat number is the whole argument. If a single person can now reach this point, then the constraint on Linux desktop development was never imagination and never taste. It was labour. And labour is exactly what just got cheap.\n\n**The interesting consequence isn't Starling.** It's the ten\ndesktops after it — attempted by people who never had a decade to give, who\nwould have looked at the size of the job and picked a smaller one. That\nfloor has moved, and the rate at which Linux desktops get built should move\nwith it.\n\n## And it's a complete one\n\nNot a proof of concept with the interesting parts missing. Every screenshot below is the real thing, captured from a running session.\n\n### Tiling and floating, both first-class\n\nFloating windows by default. Flip one switch and everything arranges itself master-and-stack, the way a tiling window manager does — whatever you are working in holds the master pane, everything else stacked beside it.\n\nFlip it back and every window returns to exactly where it was floating. No extension, no separate desktop to switch to, nothing to relearn.\n\nSettings → Appearance → Tiling Windows### Spaces and Mission Control\n\nSlide between virtual desktops, carry a window along as you go, or pull back with one key and see every space at once. Anything you send fullscreen quietly becomes a space of its own.\n\nDrag a window between spaces from the overview, or add a new one from the strip along the top.\n\nCtrl + ↑ for the overview · Ctrl + ← → to switch### Monitors that behave\n\nEvery display gets its own menu bar, its own wallpaper and its own spaces — but they are one desktop, not two. Park a window across the boundary and it just works: half drawn on one screen, half on the other, at each screen's own scale.\n\nUnplug a monitor and its windows come home instead of vanishing off into nowhere. Plug it back in and the desktop picks up where it left off.\n\nHot-plug · per-display scale · per-display spaces### Real glass, computed per pixel\n\nThe dock and panels don't fake depth with a blur. A fragment shader gives each panel real thickness, derives a surface normal from it, and bends the view ray through that normal with Snell's law — then adds a Fresnel rim and a specular highlight riding the same surface.\n\nLook at the text passing behind the dock: it doesn't just blur, it\n*bends* and compresses toward the rounded ends, the way it would\nthrough a real piece of glass. There is no HTML, CSS or JavaScript\nanywhere in the desktop — effects are shaders, not filters.\n\n### A full set of apps, in the same framework\n\nFiles, Terminal, Settings, Calculator, Text Editor, Image Viewer and an App Store that installs from the Ubuntu archive — each written in the same framework as the shell that hosts it. One theme change reaches all of them at once, because there's no toolkit boundary for it to stop at.\n\nFirst-party apps · one theme, everything### No interpreter under your session\n\nThe UI framework is compiled ahead of time to machine code and binds only a stable C rendering core — no virtual machine in the loop. Client buffers are shared straight off the GPU, never copied, and every app is its own process, so a crash takes one window and nothing else.\n\nSwift, compiled · dmabuf zero-copy### A good idea, and AI to build it\n\nThat's all this is. Everything above fell out of one decision about how a desktop should be put together — and AI is what made building it possible. Come see how the system works.\n\n[How it's built →](why.html)\n\n## One package, then pick Starling at login\n\n[Download Starling 0.2 (.deb, 53 MB) ↓](https://github.com/starling-build/starling/releases/download/v0.2/starling_0.2-1_amd64.deb)\n\n```\n# Ubuntu 26.04 LTS, amd64. Starling needs a Wayland-capable login\n# manager. Ubuntu Desktop already has one (GDM); on Server or a minimal\n# install, add it first:\nsudo apt install gdm3\n\n# Download and install Starling with its runtime dependencies:\ncurl -fLO https://github.com/starling-build/starling/releases/download/v0.2/starling_0.2-1_amd64.deb\nsudo apt install ./starling_0.2-1_amd64.deb\n\n# Log out (or reboot). At the login screen click your name, open the\n# session menu (the gear / lower-corner button), pick \"Starling\", sign in.\n```\n\n**This is an early preview.** Starling runs a real desktop on real hardware today, but it is version 0.2: expect rough edges, missing settings, and apps that still need work. Verified on AMD graphics under a fresh Ubuntu 26.04. The package pulls in a login manager if you don't already have one.\n\nOnce it's running, the [User Guide](guide.html) walks you\nthrough the desktop — the dock, spaces, shortcuts and apps.", "url": "https://wpnews.pro/news/starling-a-linux-desktop-environment-made-with-swift", "canonical_source": "https://starling.build/", "published_at": "2026-07-29 02:59:26+00:00", "updated_at": "2026-07-29 03:22:29.062654+00:00", "lang": "en", "topics": ["artificial-intelligence", "developer-tools"], "entities": ["Starling", "Flutter", "Swift", "Wayland", "X11", "Chrome", "Slack", "Zoom"], "alternates": {"html": "https://wpnews.pro/news/starling-a-linux-desktop-environment-made-with-swift", "markdown": "https://wpnews.pro/news/starling-a-linux-desktop-environment-made-with-swift.md", "text": "https://wpnews.pro/news/starling-a-linux-desktop-environment-made-with-swift.txt", "jsonld": "https://wpnews.pro/news/starling-a-linux-desktop-environment-made-with-swift.jsonld"}}