Going boldly into the COSMIC desktop environment
After three years of development, Linux hardware provider System76 has declared the COSMIC desktop environment stable. It shipped COSMIC Epoch 1 as part of the long-awaited Pop!_OS 24.04 LTS release on December 11, just in time for Linux enthusiasts to have something to tinker with over the end-of-year holidays. With the stable release out the door, it seemed like a good time to check back in on COSMIC and see how it has evolved since the first alpha. For a first stable release of a new desktop environment, COSMIC shows a lot of promise and room to grow.
System76 is, first and foremost, a provider of Linux laptops, desktops, servers, and other hardware. It originally shipped its hardware with Ubuntu preinstalled. It created the Ubuntu-based Pop!_OS distribution in 2017 after Canonical discontinued work on the Unity desktop. Rather than trying to maintain Unity alone, the company offered GNOME as its default desktop instead. Eventually, System76 introduced a GNOME shell extension to add tiling features, but maintaining the extension in the face of GNOME changes proved to be difficult. Ultimately, System76 decided that it would build its own Rust-based, Wayland-only desktop environment.
As the version number indicates, this release is based on Ubuntu's 24.04 LTS, which has been out for about 18 months now. Pop!_OS users have had a longer-than-usual wait for the release because System76 decided to focus on its new COSMIC desktop environment rather than putting out a 24.04 release last year with the old GNOME-based desktop it had also called COSMIC.
The first alpha of the Rust-based COSMIC, released in August 2024, showed a great deal of potential, but there were many missing features and applications needed before it could be considered a suitable desktop. In the 15 months since the alpha, the development team has managed to move things along quite a bit—some of applications are still a bit bare-bones, but overall the result is a usable desktop distribution with a few rough edges. Note that COSMIC has also been packaged for quite a few Linux distributions, so one does not need to use Pop!_OS to get it, but I wanted to get the stable version directly from System76 to ensure it was set up as they envisioned it.
There are two x86_64 builds of Pop!_OS available via the downloads page, one with the proprietary drivers for systems with NVIDIA graphics, the other for systems with AMD or Intel graphics. Users are instructed to disable secure boot to install Pop!_OS.
System76 has introduced Arm builds for the 24.04 release;
these are primarily for the company's Arm hardware that uses Ampere Altra
CPUs. As with x86_64, there is one for Arm computers with
NVIDIA graphics and another for those without it. The description indicates that
the builds may work with other devices supported by the Tow-Boot firmware (an "opinionated
distribution of U-Boot
").
The Pop!_OS installation has not changed much in the interim. Other than choosing the system language, keyboard layout, then pointing the installer at the right storage device, supplying user credentials, and so forth, there is not much for the user to do other than accept options and wait for the process to finish.
Even though Pop!_OS is based on Ubuntu, there are a few differences worth noting. One is that System76 has yanked support for Snap packaging out of the distribution, and adds support for Flatpaks instead. Software like Firefox, which is shipped as a snap package for Ubuntu, is shipped by System76 as a Debian package instead. The distribution also includes extra APT repositories for some proprietary software, such as Google Chrome, Plex Media Server, and Steam for games.
System76 ships its own kernel, based on Ubuntu's kernel sources; currently Pop!_OS includes Linux 6.17.9, which is available for Ubuntu 25.10, but not for the 24.04 releases. Ubuntu 24.04 offers 6.8 or 6.14, depending on the point release. The kernel does not seem to be heavily customized beyond any changes from Ubuntu; a quick skim of the changelog and some poking with the git-who utility shows fewer than 40 commits from System76 employees. Most of those are to make adjustments for System76 hardware.
There is also a recovery
partition created when a user installs Pop!_OS. This contains the
installation media for the distribution and tools that allow users to
perform a "refresh install
" that is supposed to preserve user
data. (I have not tested it myself.)
For the most part, Pop!_OS is Ubuntu-like enough that Ubuntu users will probably feel comfortable with it; software created for Ubuntu (which is abundant) will run just fine.
Desktop
COSMIC has two modes for window management, floating and tiling. What's particularly nice about COSMIC is that users do not have to choose one or the other; each workspace can be set to floating or tiling, independently. A person might use tiling mode for a workspace with terminal windows, but use floating for a workspace with a graphics application. Windows can be set to floating mode on tiling workspaces, as well. That can be useful for applications like the calculator or COSMIC's settings utility.
The tiling mode seems like it would be ideal for users who are new to tiling window management; some tiling window managers require users to do extensive up-front configuration and manage everything via shortcuts. This is fine for some more technical users, but a bit of a headache and blocker for others. COSMIC has the benefit of discoverability; users can start off with the desktop in traditional floating mode, and dip a toe into tiling to see if they like it.
It is possible to do everything with COSMIC via shortcuts, but not required. All of the window-management operations can be done by dragging and dropping, or by right-clicking the mouse on a window's title bar and selecting the option one wants. The shortcuts for operations are displayed when right-clicking, too, so users can learn the shortcuts gradually.
The Alt+Tab behavior for switching between windows has improved since the early alphas, but is still unique to COSMIC. Alt+Tab brings up a floating dialog box with a list of applications and a shortcut next to each application, Ctrl+1 through Ctrl+0. In the first iterations of COSMIC, Alt+Tab would only display eight windows; any additional windows were ignored. Now, hitting Alt+Tab while the dialog is up cycles through the full list of open windows, or a user can type Ctrl+N to switch to the desired window. If there are 11 or more windows open, the remainder simply do not get shortcuts. This method feels a bit weird to me, but other users may like it.
The only tiling bug, or at least unwanted surprise, that I discovered is that window properties do not persist when changing workspaces. That is, if a window on a tiling workspace is set to floating, that setting does not persist if the window is moved to another workspace. Instead, the window is automatically tiled, and the user has to toggle it to floating again.
While COSMIC's tiling mode is quite usable on a large widescreen
monitor, it quickly becomes cramped when working on a smaller canvas
such as a laptop screen. After using PaperWM on GNOME
and then moving to the
niri Wayland compositor, I've gotten hooked on the scrolling model
for tiling window management. There is a feature
request that was opened in May 2024 that asked for an option
to add scrolling window management. COSMIC developer Victoria
Brekenfeld responded
that it was unlikely the team would add additional window-management
concepts at that point in development, but "we might (long-term)
try to provide an api to have external programs add new window
management options
". That doesn't seem to exist yet, but perhaps
the team will get to it now that the stable release is out.
Brekenfeld said that the team also wanted to allow changing the cosmic-comp compositor used with the desktop, which would allow swapping in niri to get its scrolling features. That they have done; she has published a cosmic-ext-extra-sessions repository with scripts and instructions for using COSMIC with Sway, miracle-wm, or niri. I've encountered no problems while using niri as COSMIC's compositor on Fedora 42 and Fedora 43. Unfortunately, niri is only packaged for Ubuntu 25.10 and later; users who want to use niri on Pop!_OS 24.04 will have to build it from source.
By default, COSMIC has a macOS-ish layout: a top panel with a clock and assorted widgets, and a dock with buttons for the application launcher, workspaces, as well as open applications. These can be adjusted to better match one's preferences; for example, the panel and dock can be made larger or smaller, moved to the sides of the screen, set to automatically hide, and so forth. The dock can be disabled entirely if a user does not feel a need for it.
All of the features on the panel and dock are implemented as applets that can be moved around or turned off. At the moment, the applets themselves have no configuration options. For example, the "App Library Button" applet displays icons for each application that is currently open. Clicking the Firefox button displays each of its open windows. However, it is not possible to ungroup application windows so each one is shown separately, which is typically an option for similar taskbar applets on other desktops. It seems probable that the System76-provided applets will receive additional features and polish over time, now that the core desktop is considered stable.
The code for the applets shipped with COSMIC is in a repository on GitHub, but there is not much in the way of documentation. Bryan Hyland has written a tutorial, though, for anyone looking to develop their own. There is already a COSMIC Utils site with a small collection of community-created applets available.
COSMIC applications
Desktop environments typically include a selection of basic software that users need right away; a file manager, text editor, terminal emulator, etc. COSMIC includes all of these, though some are more complete than others.
The terminal emulator, simply named "COSMIC Terminal" has a good selection of basic features; it has tabs, split windows, profiles, and so on. Not as full-featured as something like Alacritty or Ghostty, but quite usable. It has more than enough features if one assumes that the target audience for Pop!_OS is less likely to spend a lot of time at the command line.
The COSMIC Text Editor is also good, but basic. It offers a clean
interface, syntax highlighting, word-wrap, Vim keybindings, and
more. It also seems slightly unfinished: there is a "Git management"
menu item that simply brings up a sidebar that says "Git management
is a developer tool used for version control
operations
". Presumably, a later version of the editor will
include some functionality that ties it in with Git in some way. It's
no substitute for Emacs or Vim, but it's perfectly suitable for basic
editing of configuration files and such.
COSMIC includes a bare-bones media player that can open audio or video files and play them back. There is no playlist or queue. Just open a file, play it back. That's it. It has no frills whatsoever, not even the ability to play audio or video files back at slower or faster speeds. It's unclear whether the media player was developed primarily as a proof-of-concept for the desktop or if there are plans to build it out into a more full-featured application. However, there is no real pressing need for the COSMIC developers to prioritize enhancing the media player; there are plenty of alternatives for Linux, and users are likely to have a preferred option already, which can probably be found in the desktop's application store.
The COSMIC Files application is a decent enough file manager, but a little cumbersome to use compared to Dolphin or Nautilus. The reason for that is the design scheme used for all of COSMIC's applications; there is no toolbar as one might expect with a file manager, just the menu bar with the "File", "Edit", "View", and "Sort" entries. Where one might usually click an icon to toggle between list and thumbnail view of files, the COSMIC file manager requires clicking the View menu then selecting grid view. Oddly, toggling between list and thumbnail view is not an option in the right-click menu. If one learns the shortcuts (Ctrl+2 for grid, Ctrl+1 for list) it's less cumbersome, but that's just one operation.
The desktop does not have an official tool that makes it easy to
pick themes, but there is a Tweaks application available
as a Flatpak that does so. In addition to themes, Tweaks lets users
customize some hidden settings for the dock and panel, such as padding
between items displayed in both. It enables saving desktop layouts,
too, so users can tinker with settings and return to a previous layout
without having to undo each change separately. The tagline for Tweaks
is "Personalize your COSMIC desktop beyond infinity
", which
seems to be overselling the program's capabilities quite a bit, but it
is a handy tool if one likes to customize the desktop.
Managing software
COSMIC Store is a front-end for installing and managing a variety of software for Pop!_OS. It showcases desktop software from the Pop!_OS repositories, Flatpak applications from Flathub and other repositories, as well as a collection of third-party applets for the desktop. It replaces the Pop!_Shop software-management application that was included in 22.04 and prior versions of Pop!_OS. The older application was, in my experience, slow and unstable; when I used Pop!_OS, I tended to avoid it if possible. COSMIC Store, on the other hand, is responsive and stable.
There are a few gaps where Flatpak handling is concerned. The Store does not indicate whether an application is verified through Flathub or not; in fact, it shows the developer of a Flatpak application as the upstream developer, regardless of whether that upstream had a hand in packaging the application for Flathub. For instance, the Spotify entry in the Store shows Spotify as the developer even though the Flatpak is unverified. Other app stores for Linux link back to the Flathub homepage for Flatpaks, where one can find the developer information and manifest for the package; the COSMIC Store simply lists the application's homepage, even if the upstream or vendor has nothing to do with the Flatpak.
The Store also has a collection of third-party applets, such as the Dictionary Applet or Classic Menu for the desktop. This is a different selection of applets than what is available on the Cosmic Utils site. System packages and Flatpak updates are managed through the Store as well. Oddly, it shows updates to COSMIC desktop applications separately from other system packages, even though those are also installed as Debian packages. No doubt there is some reasoning behind that, but it isn't immediately obvious what that might be.
Before the Bazzite project became an option, Pop!_OS was my default recommendation to users who wanted a distribution to play games on Linux. In my experience, it worked well on systems with NVIDIA GPUs, and Steam was packaged for the distribution and ran my selection of games well. My experience with Steam games on 24.04, so far, has not gone as well. One game, Quake III Arena, launches in a small window that only displays part of the game. Another, Prodeus, opens in a full-screen view as it should, but mouse input does not work properly. Stray, on the other hand seems to work just fine.
Native Linux games installed as Debian packages or from Flatpak fared better, though I also ran into some weirdness when trying to play games on an external monitor. If I stuck to using the laptop screen, games ran fine.
Documentation and community
One of the other weak spots for the distribution, and for COSMIC as a desktop environment, is a lack of documentation. There is no link to documentation from the main landing page for Pop!_OS, with the exception of a pointer to the keyboard shortcuts. There are a number of good support articles provided by System76, but some are out of date.
Right now, for example, there is no apparent way for users to contribute documentation for COSMIC. Since COSMIC has been packaged and adopted by other distributions, there is a good chance that it will be well-documented for some distributions and not others. The ArchWiki COSMIC documentation is already off to a good start.
There is not a forum or mailing list for COSMIC developers or users, but there is a chat platform based on the Mattermost open-source collaboration software. It is refreshing to see a project, especially one backed by a company, deliberately using an open-source project for communications rather than pointing people to proprietary services like Discord.
There is also a COSMIC Epoch 2 project board that interested users and contributors can keep an eye on to see what work is planned for the next major release. Some of the features on the to-do list include new Alt+Tab options, per-application volume control, and additional window-management settings. The next major release of Pop!_OS will be based on Ubuntu 26.04 LTS, which is expected in April 2026, but it's not clear if Epoch 2 is planned for that release.
COSMIC Epoch 1 is a solid and usable desktop; it is not perfect, but it's an impressive 1.0 release. It is clear that the developers have a vision and are working on realizing it. How COSMIC evolves from here will be interesting to watch. Will COSMIC attract Linux users from other desktops, or (even better) attract new users to Linux?
