awesome-immutable icon indicating copy to clipboard operation
awesome-immutable copied to clipboard

A list of resources for people who want to investigate image-based Linux desktops

Awesome Immutable Awesome

image-based Linux desktops

This guide is for people looking for information on running image-based Linux distributions and associated tools and goodies. Note that these systems aren't totally immutable, but no one would ever click on an awesome-anti-hysteresis list. For this list server distributions like CoreOS and Flatcar are not included. This list is intended for users who have been using traditional linux distributions on their desktop and need consolidated information.

Introductory Blogs

These should be enough to get you started:

Talks and Videos

Distributions

The Future is Now(tm), try one of these today!

  • Fedora Silverblue - Silverblue is a variant of Fedora Workstation. It looks, feels and behaves like a regular desktop operating system, and the experience is similar to what you find with using a standard Fedora Workstation.
  • Fedora Kinoite - Similar to Silverblue, but based on KDE
  • openSUSE MicroOS - a variant of openSUSE Tumbleweed and serves as a base of openSUSE Kubic, a Container as a Service platform.
  • NixOS - a Linux distribution based on Nix package manager
    • awesome-nix - A curated list of the best resources in the Nix community
    • Note: The nix community has both an OS and a packaging system and is already large and vibrant, I can't do it justice so just use the list above to dive in
  • Guix System - a Linux distribution based on the Guix package manager based on Nix
  • EndlessOS - A Debian derivative distribution with a read-only root filesystem managed by OSTree and Flatpak for application delivery and update
  • ChromeOS Flex - the cloud-first, fast, easy-to-manage, and secure Chrome OS for PCs and Macs.
    • ChromiumOS - Good design document on how Chromium implements its autoupdate mechanism
  • rlxos - A immutable, independent general-purpose distribution with a primary focus on single file per application.
  • carbonOS - An open operating system designed from the ground-up to be intuitive and robust. The blog post explains the goals
  • astOS - An immutable Arch based distribution utilizing btrfs snapshots.

Toolboxes

There historically have been a few versions of "toolbox", and we're probably at a point where it's more of a class of software than an individual project. I classify toolboxes as "A terminal front end to container runtimes focusing on transparent ease of use of container images". Someone smarter please make a better definition.

  • Toolbx - Tool for containerized command line environments on Linux
    • Toolbx Tuner - Toolbx Tuner is a tool to improve the experience with toolbx.
    • toolbox-images - a collection of container images for usage with the toolbox command. This is an attempt at providing more feature parity with regard to toolboxes for distributions other than Fedora.
    • Toolbox GUI - A graphical interface for interacting with Toolbox, written with GTK3 and Python
  • Distrobox - Tool for containerized command line environments on Linux, distribution agnostic, supports a wide variety of containers , works both with podman and docker - This is a great tool to start with on your existing distro to learn working with day-to-day container workflows.
  • nxbox - Pet container manager based on systemd-nspawn and supporting DBus and desktop files.
  • coretoolbox - Toolbx alternative in rust with a focus on container builds. (Older project, appears unmaintained, but if I don't include rust stuff people will get upset :smiley:)

Core Tools

Things that are the building blocks for all the stuff we're talking about here.

  • podman - Podman is a daemonless container engine for developing, managing, and running OCI Containers on your Linux System.
    • gnome-shell-extension-containers - This neat extension lets you see what containers you have, start/stop/restart, pause, and shell into them right from the notification area.
    • Podman Desktop - Manage different container engines from a single UI and tray icon
    • Podman desktop companion - graphical management of your desktop containers
    • Pods - a podman desktop application (formely known as Symfony)
  • Flatpak - a utility for software deployment and package management for Linux. It is advertised as offering a sandbox environment in which users can run application software in isolation from the rest of the system.

Lower level tools

Most of us will not use these tools directly, but useful for developers:

Integration Resources

aka. duct tape.

Configs from the Community

OSTree based systems allow for composable derivative distributions. If you're automating the config on systems like this please PR your config to share:

Tips

Miscellaneous

Things that don't fit anywhere else but might be useful reference material

Contribute

Contributions welcome! Read the contribution guidelines first. We need more nix resources so if you have good ones please consider PRing one.

If you don't know how to use git then file an issue and leave a link, I'll integrate it into the list!

Fun Stats

Alt