8000 GitHub - cprussin/domicile: Wayland windows as DOM elements. Chromium as the compositor. May God have mercy on our souls. · GitHub
[go: up one dir, main page]

Skip to content
cprussinPublic

About

Wayland windows as DOM elements. Chromium as the compositor. May God have mercy on our souls.

Resources

Stars

29 stars

Watchers

0 watching

Forks

Repository files navigation

Domicile

The web doesn't have to live in a window. Your desktop lays out websites, native windows are DOM elements, and Chromium is the compositor. May God have mercy on our souls.

Domicile is an experimental Linux desktop where a modified Chromium is the Wayland compositor. Native apps, websites and the desktop's own interface are elements on one web page, laid out with CSS and composited together.

See it in action · How it works · Install · Build your desktop · Community

What becomes possible

  • Your desktop lays out websites. No browser app boxes them in. Keep them in tabs, mix them in with your native apps, or put them where websites don't usually go.
  • Native windows are DOM elements. Float a terminal in a paragraph, blend a heading over a video player, animate a window across the screen.
  • Extensions see the whole desktop. To a Chrome extension, every website on the desktop is a tab, on any workspace.
  • Browser features are desktop features. Share a native window into a web video call, cast to a TV, and get notifications from sites and apps in one list.

Your desktop is a web page

An <app> displays a native window. A <webview> displays a website. You decide where they go and how they look.

Want tiling? Use CSS.

Want floating? Use CSS.

Want to rotate Kitty 17 degrees because the user has sinned? Unfortunately, use CSS.

app {
  transform: rotate(17deg);
  border-radius: 12px;
  opacity: 0.9;
}

Native windows go directly into Chromium’s rendering system. No screenshots, canvas copies, or other cowardice.

  • Use familiar tools. React, Tailwind, three.js, or plain JavaScript and CSS.
  • Change it live. Load a new desktop layout while your apps keep running.
  • Work across monitors. One page spans every screen.
  • Share the pieces. Publish a whole desktop on npm, or just your bar, launcher or clock.
  • Keep the essentials. Notifications, screen sharing, clipboard history, display settings and locking are provided.

Play with the interactive examples →

Start with Manganese

Ever thought Sway was great, but needed more <div>s? We got you.

Manganese is a ready-to-use desktop built on Domicile. It includes tiling, workspaces, a launcher, settings and the rest of the daily necessities. Websites sit alongside native apps, and Chrome extensions work in its browser windows.

Use it as it comes, change one piece, or build something entirely your own.

Try it

Install Domicile, then run this from your current Wayland desktop:

domicile @domicile-desktop/manganese

It opens in a window. Close it and you’re back.

Or try it with Nix:

nix run github:cprussin/domicile/release#manganese

Nix trial: locking requires a system password-checking service that this command doesn’t install. Until you configure it, don’t lock the trial or suspend the machine. If it locks, close its window.

Packages are available for Debian, Ubuntu, Fedora, openSUSE and Arch, plus NixOS configuration modules. No Chromium build required; that particular penance has already been paid.

Create your own desktop

Follow the quickstart to write your desktop in a single React or JavaScript file:

domicile ./desktop.tsx

Edit it, then load your changes from a terminal inside Domicile:

domicile load-shell ./desktop.tsx

Your windows stay open. State kept only in your desktop’s page resets.

You can also start from Manganese: add a bar item, replace the launcher, or take the pieces you want.

What works?

Domicile runs on Linux. Apps need Wayland support; X11-only apps don’t run.

The built-in browser supports Manifest V3 Chrome extensions, with some differences from Chrome. Hardware coverage is still growing.

Checked apps · Known gaps · Troubleshooting

Under the hood

Domicile combines a Rust Wayland compositor with a patched Chromium. Your desktop code controls the layout and can access files and programs. Websites remain ordinary websites.

How it works · Architecture · Chromium patches · Contributing · Report a bug

Built with AI

Domicile is developed with extensive help from Claude, which wrote most of the code, tests and docs, and does much of the debugging and development tooling. The architecture, direction and technical decisions come from the project's human maintainer. Changes are checked by the test suite and by daily use, not by line-by-line human review. The source and its full history are public. More on how it's built.

License

MIT. Modified Chromium files retain Chromium’s licenses.

“Your scientists were so preoccupied with whether they could, they didn’t stop to think if they should.”

About

Wayland windows as DOM elements. Chromium as the compositor. May God have mercy on our souls.

Resources

Stars

29 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

0