Open-source project
pop-os/cosmic-epoch avatar
pop-os/cosmic-epoch

COSMIC Epoch across five distributions: one component set, five install paths

Next generation Cosmic desktop environment

7,021 stars218 forksJustLicense varies

At a glance

What is it?
One repository holds the whole COSMIC desktop, thirty components deep, and the documented way in changes with every distribution. The clearest thing it tells 22.04 users is to stop.
Who is it for?
Take COSMIC from Pop!_OS 24.04 if you want the session the distribution already ships, and accept that the panel, launcher and compositor come from a component set that is still moving. On any other distribution the package route is one command, so start there rather than from source.
Can I use it commercially?
Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
Is it still maintained?
Yes. The repository last received commits 25 days ago.
What is it written in?
Mainly Just, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on November 14, 2026, and from our analysis. They are not legal advice.

From daily snapshots

Star history

  • pop-os/cosmic-epoch7,021 ★ · +166
Star history
Repository2026-09-272026-11-14
pop-os/cosmic-epoch6.9k7k

166 Stars in the last 48 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial analysis

Thirty components share one repository and one justfile

cosmic-epoch is a monorepo. Its root holds 39 top-level entries: 28 entries named cosmic-something (cosmic-wallpapers among them), plus pop-launcher, xdg-desktop-portal-cosmic, docs, scripts, templates and a justfile. The README sends each component to its own repository under the pop-os organisation (cosmic-panel, cosmic-files, cosmic-session, cosmic-launcher, cosmic-term among them), so the code is split per application while the build stays in one place. The README also links four shared crates, cosmic-protocols, cosmic-text, cosmic-theme and cosmic-time, and libcosmic is the toolkit the applets are written against. The primary language recorded for this repository is Just, which describes the orchestrator alone: cosmic-wallpapers and cosmic-workspaces-epoch are driven by make rather than by their own Just recipes, so the root file is really a list of two build systems stitched together.

The session switch happens on the login screen sprocket

Getting into COSMIC happens on the login screen, not inside the desktop. On every distribution the path is the same: log out, click your user entry, and a sprocket appears at the bottom right of the greeter with the available desktop environments listed. Choose COSMIC there, then log in. Nothing inside a running GNOME session turns COSMIC on, and the same sprocket at the next logout is the way back. The greeter is itself a COSMIC component (cosmic-greeter), which is why NixOS exposes it as a switch separate from the session: services.displayManager.cosmic-greeter.enable and services.desktopManager.cosmic.enable are two different settings, and you can turn one on without the other. Where the display manager is GDM, that sprocket belongs to the login manager rather than to COSMIC, which matters for the 22.04 route below, since GDM is what decides whether a Wayland session is offered at all.

Pop!_OS 24.04 keeps receiving Epoch updates and 22.04 does not

COSMIC DE's first release, Epoch 1, is included in Pop!_OS 24.04, and there are two documented ways in: install the latest release ISO, or upgrade an existing 22.04 installation in place with a single command.

bash
pop-upgrade release upgrade -f

The stated recovery path for an upgrade that fails is an issue in the pop-upgrade repository or the Pop!_OS Mattermost chat server. What changed for older systems is blunter. Because of dependency requirements, COSMIC Epoch is no longer receiving updates on Pop!_OS 22.04 LTS, and testing it there is no longer recommended because the latest bug fixes and features exist only on newer distributions such as 24.04. That leaves 22.04 useful for two things only: the individual applications, and the older alpha release kept around for testing.

Individual COSMIC apps run inside the 22.04 GNOME session

The cheapest way to judge COSMIC is to install some of its applications and leave the session alone. On 22.04 the individual COSMIC applications work in the default GNOME session, which makes this a five-package decision rather than a display manager change.

bash
sudo apt install cosmic-edit cosmic-files cosmic-player cosmic-store cosmic-term

You get the COSMIC file manager, terminal and media player sitting next to a GNOME session that keeps behaving as it did. This answers a question the 22.04 instructions never ask outright: no part of the session is exclusive to COSMIC, so a partial install is a documented shape rather than a workaround. The trade is that you never see the panel, launcher or workspaces, the three pieces that only exist once the session itself is switched. If the applications convince you, the next step is not another package, it is the login screen choice.

The 22.04 alpha route edits two files before cosmic-session installs

For the older alpha release on 22.04 the README walks through manual edits before anything new appears at login. First, enable Wayland in the GDM custom configuration and reboot.

bash
sudo nano /etc/gdm3/custom.conf
bash
WaylandEnable=true

Second, NVIDIA users edit a udev rule so GDM stops choosing Xorg on its own.

bash
sudo nano /usr/lib/udev/rules.d/61-gdm.rules

Both labelled blocks in that file need their RUN statements commented out with a leading #, so the two lines that read gdm_prefer_xorg and gdm_disable_wayland end up like this:

code
LABEL="gdm_prefer_xorg"
#RUN+="/usr/libexec/gdm-runtime-config set daemon PreferredDisplayServer xorg"
GOTO="gdm_end"

LABEL="gdm_disable_wayland"
#RUN+="/usr/libexec/gdm-runtime-config set daemon WaylandEnable false"
GOTO="gdm_end"

Then restart the display manager and install the session package.

bash
sudo systemctl restart gdm
bash
sudo apt install cosmic-session

Count it up and the older route is four commands, two hand-edited files and a reboot before the sprocket offers COSMIC at all. The instructions also tell you to check 24.04 for an existing bug before reporting it.

Arch and Fedora ship packages while NixOS declares two module options

Arch takes a single package or the whole group.

bash
pacman -S cosmic-session
bash
pacman -S cosmic

Fedora 41 and later carry a group in the built-in repositories.

bash
sudo dnf install @cosmic-desktop-environment

The fresher option is the nightly COPR, and the README attaches its cost plainly: more up-to-date COSMIC packages, less quality control.

bash
sudo dnf copr enable ryanabx/cosmic-epoch && sudo dnf install cosmic-desktop

NixOS is declarative, and it is the only distribution here where enabling the session and enabling the login manager are separate lines in your configuration:

nix
{
  # Enable the COSMIC login manager
  services.displayManager.cosmic-greeter.enable = true;

  # Enable the COSMIC desktop environment
  services.desktopManager.cosmic.enable = true;
}

Some packages such as cosmic-session may already be present in earlier releases, but the modules that add full support for COSMIC were added in NixOS 25.05. Between the Fedora repositories and the COPR the README does not say which route to prefer, so that choice is yours to make with a version number in hand.

The justfile is a build list, not a build system

The justfile at the root reads as an inventory. It opens with set dotenv-load, resolves the two executables it needs (just and make), and then the build recipe walks each component's own build-release target in turn: cosmic-applets/build-release, then cd cosmic-app-library and its own recipe, then cosmic-bg, cosmic-comp, cosmic-edit, cosmic-files, cosmic-greeter, cosmic-idle, cosmic-initial-setup, cosmic-launcher, cosmic-monitor, cosmic-notifications, cosmic-osd, cosmic-osk, cosmic-panel, cosmic-player, cosmic-randr, cosmic-screenshot, cosmic-settings, cosmic-settings-daemon, cosmic-session, cosmic-store, cosmic-term, cosmic-viewer and pop-launcher. Two directories never enter that list and are compiled by make instead:

code
{{ make }} -C cosmic-wallpapers all
{{ make }} -C cosmic-workspaces-epoch all

The last entry, xdg-desktop-portal-cosmic, is built with debug=0. The install recipe takes rootdir and prefix, with prefix defaulting to /usr/local, and repeats the same sequence with install targets. Two details matter if you are building instead of packaging: cosmic-wallpapers is compiled by this file yet absent from the README's component list, so treat it as internal, and nothing in the root file produces a distribution package or an ISO. A source build gets you binaries under a prefix. Getting those into a repository your distribution's package manager can see is work this repository leaves to you.

The documented install story stops at five distributions

Count the distributions the README names: Pop!_OS 22.04, Pop!_OS 24.04, Arch, Fedora and NixOS. The top-level entries include README.md and TRADEMARK.md but no LICENSE file, so redistribution terms for the components are not stated at the root of the tree. The README also documents no rollback: there is no instruction for returning to a previous Epoch release once a session change has gone wrong, and the stated support channels are an issue in the pop-upgrade repository and the Pop!_OS Mattermost server. Finally, the version you receive depends on the route you took. Tagged releases ran epoch-1.9.0 on 2026-09-23, epoch-1.10.0 on 2026-10-08 and epoch-1.11.0 on 2026-10-20, and the last push to the repository was 2026-10-20, so a distribution's own repositories can hand you a build weeks behind the source tree.

Editorial conclusion

Take COSMIC from Pop!_OS 24.04 if you want the session the distribution already ships, and accept that the panel, launcher and compositor come from a component set that is still moving. On any other distribution the package route is one command, so start there rather than from source. Before switching sessions, check three things: which tagged release your distribution's repositories actually carry, whether a rollback exists for a session that goes wrong (none is documented), and what licence the components ship under, since no LICENSE file appears at the repository root next to README.md and TRADEMARK.md.

Frequently asked questions

Is Pop OS COSMIC released?

Yes. The first release, Epoch 1, ships inside Pop!_OS 24.04, either from the latest release ISO or by upgrading an existing 22.04 installation in place. Newer tagged releases have followed, with epoch-1.11.0 published on 2026-10-20.

What is the current version of COSMIC desktop?

The most recent tag listed for the repository is epoch-1.11.0, published on 2026-10-20, after epoch-1.10.0 on 2026-10-08 and epoch-1.9.0 on 2026-09-23. The version a given machine gets depends on its distribution's repositories, which may lag the repository itself.

Is Cosmic Desktop any good?

The repository makes no such claim, and it documents what each platform supports rather than how the desktop performs. The practical way to judge it is the partial route: cosmic-edit, cosmic-files, cosmic-player, cosmic-store and cosmic-term install and run inside the default GNOME session on Pop!_OS 22.04 without switching sessions.

what is cosmic epoch

COSMIC Epoch is System76's desktop environment for Pop!_OS, first shipped in Pop!_OS 24.04. It lives in this monorepo as roughly thirty components (session, panel, launcher, greeter, settings and the applications) plus links to the libcosmic toolkit and four shared crates.

Official sources

  1. Issues
  2. pop-os/cosmic-epoch on GitHub
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/pop-os-cosmic-epoch.svg)](https://hysenlabs.com/projects/pop-os-cosmic-epoch)

Star history chart for your README

markdown
[![Star history](https://hysenlabs.com/chart/pop-os-cosmic-epoch.svg)](https://hysenlabs.com/projects/pop-os-cosmic-epoch)

Was this useful?