{"id":9030,"date":"2026-11-07T21:26:51","date_gmt":"2026-11-08T04:26:51","guid":{"rendered":"https:\/\/catbradley.io\/?p=9030"},"modified":"2026-11-07T21:26:51","modified_gmt":"2026-11-08T04:26:51","slug":"hate-chromium-well-theres-a-linux-desktop-based-on-it-now","status":"publish","type":"post","link":"https:\/\/catbradley.io\/?p=9030","title":{"rendered":"Hate Chromium? Well, There\u2019s a Linux Desktop Based on it Now"},"content":{"rendered":"<figure><img decoding=\"async\" src=\"https:\/\/itsfoss.com\/content\/images\/2026\/11\/domicile-desktop-banner.png\" alt=\"domicile desktop banner with a construction worker penguin\" loading=\"lazy\" \/><\/figure>\n<p>Say the name &#8220;<em>Chromium<\/em>&#8221; out loud in Linux circles, and you will soon see what a mob looks like. Many people don&#8217;t like how much of the web rests on one engine led by Google, and they prefer to keep it away from their systems.<\/p>\n<p>Now we have Domicile, a new Rust-based <a href=\"https:\/\/wayland.freedesktop.org\/\">Wayland<\/a> compositor that uses a patched build of <a href=\"https:\/\/www.chromium.org\/\">Chromium<\/a> to draw the entire desktop as a web page.<\/p>\n<p>Apps still run natively, and each Wayland window goes straight into Chromium&#8217;s rendering system and shows up inside that page as an element. A window and a website can then sit side by side and be arranged the same way.<\/p>\n<h2>Domicile: Overview \u2b50<\/h2>\n<figure class=\"kg-card kg-gallery-card kg-width-wide kg-card-hascaption\">\n<div class=\"kg-gallery-container\">\n<div class=\"kg-gallery-row\">\n<div class=\"kg-gallery-image\"><img decoding=\"async\" src=\"https:\/\/itsfoss.com\/content\/images\/2026\/11\/domicile-desktop-mockup-1.png\" width=\"1099\" height=\"691\" loading=\"lazy\" alt=\"\" \/><\/div>\n<div class=\"kg-gallery-image\"><img decoding=\"async\" src=\"https:\/\/itsfoss.com\/content\/images\/2026\/11\/domicile-desktop-mockup-2.png\" width=\"1099\" height=\"691\" loading=\"lazy\" alt=\"\" \/><\/div>\n<\/div>\n<div class=\"kg-gallery-row\">\n<div class=\"kg-gallery-image\"><img decoding=\"async\" src=\"https:\/\/itsfoss.com\/content\/images\/2026\/11\/domicile-desktop-mockup-3.png\" width=\"1099\" height=\"691\" loading=\"lazy\" alt=\"\" \/><\/div>\n<div class=\"kg-gallery-image\"><img decoding=\"async\" src=\"https:\/\/itsfoss.com\/content\/images\/2026\/11\/domicile-desktop-mockup-4.png\" width=\"1099\" height=\"691\" loading=\"lazy\" alt=\"\" \/><\/div>\n<\/div>\n<\/div><figcaption>\n<p><i><em class=\"italic\">Some Domicile mockups as shown on the homepage.<\/em><\/i><\/p>\n<\/figcaption><\/figure>\n<p><!--kg-card-begin: html--><\/p>\n<div class=\"repo-stats\" data-repo=\"https:\/\/github.com\/cprussin\/domicile\"><\/div>\n<p><!--kg-card-end: html--><\/p>\n<p>Domicile is <strong>not a drop-in desktop like GNOME or KDE Plasma<\/strong>. It leaves the bar, the window layout, and the look to <a href=\"https:\/\/en.wikipedia.org\/wiki\/Shell_(computing)#Graphical_shells\">a shell<\/a>, and that shell itself is a web page you have to write yourself.<\/p>\n<p>Native app windows and websites both sit on that page, and because CSS decides where each one goes, layouts like tiling or floating take only a few lines of styling.<\/p>\n<p>You can even swap the shell without closing a single window because loading a new one resets only the state held in the shell&#8217;s own page. A single page can span every monitor, and shells are built from packages that anyone can publish on <code>npm<\/code>, whether it is a whole desktop, a bar, or a launcher.<\/p>\n<p>The compositor still handles the lock screen, tray icons, notifications, and screen sharing, while the shell decides how they look. The built-in browser <strong>runs Manifest V3 Chrome extensions<\/strong>, but some of them behave differently than they do in Chrome.<\/p>\n<p>Apps need Wayland support to run. Electron, SDL, and Qt apps start in Wayland mode, <strong>but X11-only ones will not run<\/strong>. Xwayland, the compatibility layer that lets X11 apps work on Wayland desktops, is something Domicile does not include.<\/p>\n<p>The project is provided under <strong>the MIT license<\/strong>, and the Chromium files it modifies stick to Chromium&#8217;s licenses. One more thing, and this could be a dealbreaker for some of you, <strong>the project is AI-assisted<\/strong>.<\/p>\n<h2>Manganese, the element?<\/h2>\n<figure class=\"kg-card kg-video-card kg-width-regular\" data-kg-thumbnail=\"https:\/\/itsfoss.com\/content\/media\/2026\/11\/domicile-desktop-manganese-demo_thumb.jpg\" data-kg-custom-thumbnail=\"\">\n<div class=\"kg-video-container\">\n                <video src=\"https:\/\/itsfoss.com\/content\/media\/2026\/11\/domicile-desktop-manganese-demo.webm\" poster=\"image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" width=\"1920\" height=\"1200\" playsinline=\"\" preload=\"none\"><\/video>\n<div class=\"kg-video-overlay\">\n                    <button class=\"kg-video-large-play-icon\" aria-label=\"Play video\">\n<p>                    <\/p><\/button>\n                <\/div>\n<div class=\"kg-video-player-container\">\n<div class=\"kg-video-player\">\n                        <button class=\"kg-video-play-icon\" aria-label=\"Play video\">\n<p>                        <\/p><\/button><br \/>\n                        <button class=\"kg-video-pause-icon kg-video-hide\" aria-label=\"Pause video\">\n<p>                        <\/p><\/button><br \/>\n                        <span class=\"kg-video-current-time\">0:00<\/span>\n<div class=\"kg-video-time\">\n                            \/<span class=\"kg-video-duration\">0:04<\/span>\n                        <\/div>\n<p>                        <button class=\"kg-video-playback-rate\" aria-label=\"Adjust playback speed\">1\u00d7<\/button><br \/>\n                        <button class=\"kg-video-unmute-icon\" aria-label=\"Unmute\"><\/button><\/p>\n<p>                        <br \/>\n                        <button class=\"kg-video-mute-icon kg-video-hide\" aria-label=\"Mute\"><\/button><\/p>\n<p>                        <\/p><\/div>\n<\/div>\n<\/div>\n<\/figure>\n<p>Not quite. <a href=\"https:\/\/www.domicile-desktop.com\/manganese\">Manganese<\/a> is the ready-made shell that comes with Domicile, and it works as a complete tiling desktop out of the box. Its keybindings follow <a href=\"https:\/\/swaywm.org\/\">Sway<\/a>&#8216;s on the <code>Super<\/code> key, and you get ten workspaces along with tabs, stacks, splits, floating windows, and a scratchpad.<\/p>\n<p>Websites open as windows too, sitting next to native apps in the same layout, while extensions from the Chrome Web Store show up as buttons in the top bar.<\/p>\n<p>It comes with a Settings app, clipboard history, launcher, screenshots tool, notifications, and a lock screen. Since every part of it is its own package, you can add a new item to the bar or replace the launcher while the rest stays as it is.<\/p>\n<h2>Getting started <\/h2>\n<p><a href=\"https:\/\/www.domicile-desktop.com\/docs\/install\">Packages exist<\/a> for <strong>Fedora<\/strong>, <strong>openSUSE<\/strong>, <strong>Debian<\/strong>, <strong>Ubuntu<\/strong>, and <strong>Arch Linux<\/strong>, plus an <a href=\"https:\/\/aur.archlinux.org\/packages\/domicile-bin\">AUR package<\/a> for Arch users. For <strong>NixOS<\/strong>, or Nix on any distro, you can use the project&#8217;s flake.<\/p>\n<div class=\"kg-card kg-button-card kg-align-center\"><a href=\"https:\/\/www.domicile-desktop.com\/docs\/install\" class=\"kg-btn kg-btn-accent\">Domicile<\/a><\/div>\n<div class=\"kg-card kg-callout-card kg-callout-card-blue\">\n<div class=\"kg-callout-emoji\">\ud83d\udccb<\/div>\n<div class=\"kg-callout-text\">It <b><strong>runs only on x86_64<\/strong><\/b>, and the project has no ARM builds.<\/div>\n<\/div>\n<p>A monolithic package carries Manganese, the login session, the domicile command, and the React packages that shells build against. After installing, you point a config file at the shell you want, then log out and pick &#8220;<em>Domicile<\/em>&#8221; on the login screen.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/feed.itsfoss.com\/link\/24361\/17517784.gif\" height=\"1\" width=\"1\" \/><\/p>","protected":false},"excerpt":{"rendered":"<p>Say the name &#8220;Chromium&#8221; out loud in Linux circles, and you will soon see what a mob looks like. Many people don&#8217;t like how much of the web rests on&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rop_custom_images_group":[],"rop_custom_messages_group":[],"rop_publish_now":"initial","rop_publish_now_accounts":[],"rop_publish_now_history":[],"rop_publish_now_status":"pending","footnotes":""},"categories":[1],"tags":[],"class_list":["post-9030","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-rss"],"_links":{"self":[{"href":"https:\/\/catbradley.io\/index.php?rest_route=\/wp\/v2\/posts\/9030","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/catbradley.io\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/catbradley.io\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/catbradley.io\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/catbradley.io\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=9030"}],"version-history":[{"count":0,"href":"https:\/\/catbradley.io\/index.php?rest_route=\/wp\/v2\/posts\/9030\/revisions"}],"wp:attachment":[{"href":"https:\/\/catbradley.io\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=9030"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/catbradley.io\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=9030"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/catbradley.io\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=9030"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}