Starling is an early-stage Linux desktop environment written entirely in Swift, featuring its own Wayland compositor, X11 server, and a port of Flutter's Dart framework to Swift.

Stars

85

7-day growth

No data

Forks

5

Open issues

5

License

Apache-2.0

Last updated

2026-07-29

AI repository intelligence
FR-AI / ANALYSIS

Why it is worth attention

It demonstrates a complete, Swift-based desktop stack from compositor to user apps, running real third-party Linux applications while staying in early development.

Who it is for

  • Swift developers interested in system-level Linux development
  • Flutter enthusiasts curious about an engine port to Swift
  • Linux desktop tinkerers seeking a fresh architecture
  • Researchers exploring alternative desktop frameworks

Use cases

  • Evaluating Swift as a systems language for desktop environments
  • Running a daily driver with Wayland and X11 app compatibility (with known gaps)
  • Developing and testing first-party apps using the FlutterSwift framework
  • Experimenting with a minimal, DRM-based compositor and session management

Strengths

  • Comprehensive Wayland protocol support (xdg-shell, dmabuf, fractional-scale, many more)
  • Runs a wide range of third‑party apps (Chrome, VS Code, Slack, Blender, etc.)
  • Well-documented build, run, and packaging workflows with a .deb installer
  • Innovative Swift port of Flutter's framework, removing the Dart VM

Considerations

  • Still early alpha (v0.2) with missing features (screen lock, notifications, display settings)
  • Scaling effectively pinned to 2.0; fractional scaling produces blurry text
  • Portal incomplete (no Inhibit, ScreenCast, Camera, Print) and no backend fallback
  • No CI, limited hardware testing (AMD and virtio‑gpu only), and no screen saver

README quick start

Starling

starling.build

A new Linux desktop environment, whose shell, compositor, framework, and apps are written in Swift (the framework is a full port of Flutter's Dart framework to Swift — no Dart VM). It brings its own Wayland compositor and its own X11 server, so it runs native Wayland clients and X11 apps alike. Runs on the Flutter engine's C core via the sibling repo starling-engine.

sdk/     the Flutter→Swift framework port (SwiftPM package "FlutterSwift")
shell/   the desktop shell: compositor (C Wayland server), window manager,
         dock, spaces, portals — SwiftPM package "DesktopShellApp"
apps/    first-party apps (Settings, Files, Terminal, …), one SwiftPM package each
build/   packaging: the Ubuntu .deb, session files, app-run/app-install tools,
         vendored flutter_assets
docs/    porting guides and design notes

Get started: Install Starling · User Guide · Build from source

Status

Early development — version 0.2. The desktop boots as a real session, runs its own compositor and apps, and installs from a .deb on a stock Ubuntu 26.04. It is also the work of one person and a few months, so expect rough edges, missing pieces, and bugs. Nothing here is load-bearing for anyone yet, and interfaces change without notice.

What follows is deliberately specific about what is and is not done, because "a desktop environment" invites assumptions that would be wrong.

What works

AreaState
SessionBoots through the normal login path — gdm3gdm-wayland-session/usr/libexec/starling-sessionDesktopShellApp --drm. Unprivileged: DRM master and input come from logind via libseat, not from running as root.
DisplayDRM/KMS modeset, GBM/EGL, hardware cursor, flip-driven frame pacing, multi-output layout. Tested on AMD (Radeon 780M) and on virtio-gpu/virgl in a VM.
Compositor~5,700 lines of C implementing xdg-shell, linux-dmabuf (zero-copy import), viewporter, fractional-scale-v1, pointer-constraints, relative-pointer, text-input-v3, presentation-time, primary-selection, idle-inhibit, cursor-shape-v1, xdg-decoration, xdg-activation, xdg-output, wlr-data-control.
Window managementFloating and tiling (master-and-stack) behind one swit

Description

Starling — a new Linux desktop environment: Swift shell, its own compositor, a Flutter-to-Swift framework port, and first-party apps

Related repositories

Similar projects matched by category, topics, and programming language.

l0ng-ai
Featured
l0ng-ai GitHub avatar

tty7

tty7 is a fast, GPU-accelerated terminal workbench with persistent sessions, built-in input tools, SSH support, and coding agent awareness.

Developer ToolsCLI & Terminal
359
0xwilliamortiz
Featured
0xwilliamortiz GitHub avatar

openclaude-improved

OpenClaude is an open-source CLI coding agent that runs on any platform and supports a wide range of LLM providers, offering the same tools and workflows as Claude Code.

AI & Machine LearningLarge Language Models
577
programmersd21
Featured
programmersd21 GitHub avatar

flow

flow is a minimalist terminal dashboard that displays real-time network throughput with smooth animations, multiple responsive modes, and zero configuration.

Developer ToolsCLI & Terminal
277