I did a test drive of the dev version of the Cosmic desktop from System76. Here’s a first look with many wonderful details.
Cosmic desktop (cosmic-epoch) is a new desktop environment being developed by computer manufacturer System76 for the Linux distribution Pop OS. It’s been under development for some time and written from scratch. Cosmic desktop primarily developed using Rust as primary language, with popular libraries such as iced and libcosmic. The major driving factor for System76 is to move away from GTK-based GNOME for their ecosystem of apps and software.
A few days back, the team gave us some details about the first-ever alpha release, which is expected around June/July 2024 timeline.
That said, I managed to install the dev version of this brand new Cosmic desktop. I thought of giving you a tour of this fresh desktop environment.
Table of Contents
Cosmic Desktop: First Look
Desktop components
When you first try to log in to Cosmic desktop, you should see a Cosmic session in the login screen of any distribution where you have installed it. One of the things you should notice is Cosmic desktop session only comes with Wayland.
After the first boot, you should see a standard top panel and a default dock at the bottom. There are a few changes you may notice if you are familiar with the Pop OS.
First off, the top panel now has a workspace indicator with prominent numbers and an application menu at the left. In the middle, the standard calendar pop-up. And on the right side of the panel you get the Tiling menu, sound, network, battery, notification, and the power options. Things are pretty standard, except the Tiling menu.
The power menu offers you to choose power levels in your system: battery, balanced and performance modes. The “battery” mode is the power saver mode. Weird naming, by the way. The power menu also gives you the option to control keyboard lights, screen brightness. One of the new features I noticed is an option which allows you to limit battery charge at 80% to keep your battery healthy.
The network pop up gives you the option to select Wi-Fi networks and connect to them. In addition, you can also see the IP address, speed, and toggle pill-buttons to turn off Wi-Fi.
In addition, the media menu gives you control to bring the media controls to the top panel! Alongside, you get the album art and track information in the pop-up. This menu is integrated with Firefox for a better experience. For example, if you play YouTube, you can view and control the player from the panel itself.
Furthermore, the notification menu is standard and has the option to mute all notifications for those focussed working sessions.
Now, let’s talk about the Tiling menu.
Tiling with Floating window
Cosmic desktop brings a revamped Tiling concept in a desktop environment. Obviously, it is not a tiling window manager, but you get all the Tiling experiences with the new option “floating workspace”.
That brings total two types of Tiling. You can set them globally or per-workspace wise.
The Floating option gives you a standard desktop feel when tiling is turned off. That means, “Floating” and “Tiling” are mutually exclusive: you can’t have them together.
The Auto tiling toggle immediately transforms your workspace open applications to tiling mode. It organizes them. Alongside, an intelligent tiling behaviour allows you to drag the window into tile blocks which adjusts itself! This is so cool from the team.
Moreover, while in tiling mode, you can still use the mouse with keyboard shortcuts as well, unlike the typical window manager.
I believe this is the best native tiling implementation in a Linux desktop so far. Have a look:
Application menu, global search and workspaces
Cosmic desktop brings a launcher/global search when you press the SUPER key (Windows key) on your keyboard. You can search by keywords to reach your favourite applications. All the search results can easily be activated by global shortcuts CTRL+1
, CTRL+2
and so on. This is super productive if you are a keyboard person.
However, the launcher currently does not search for your browsing history or the contents of files.
By default, you get two workspaces, and can browse them via panel icons denoted as “1”, “2”. The workspace animation is from bottom to top. However, the workspace view is accessible via a separate shortcut via the application menu. Probably this is still under development and I feel more fine-tuning is on the horizon. In addition, you can customize Workspace numbering, give names to workspaces or change the orientations from settings.
The application menu is similar to that of Pop OS today. The icon groups are sorted as library and grouped across categories. The categories are at the bottom of the application menu. You can create your custom groupings as well for a more personified experience. For example, you may want to create a folder group called “development” for all the dev apps.
Settings
As I am testing a development version, the settings app has limited items. But the basics are ready anyway. For example, the accessibility, printer settings are still probably under development.
That said, detailed settings are already in place for panels, docks, keyboard, mouse, touchpad, user controls and appearance.
Every aspect of looks is customizable. Let’s discuss this.
Widgets, Themes, and looks
Cosmic desktop brings all possible customizations in a most simple manner for you. You probably do not need any add-on or extensions at all. Moreover, you can import and export “ron” files, i.e. Rust’s implementation of JSON as themes or overall customizations.
Since the customizations are huge, here’s a list of what actually built-in in this desktop:
- Desktop
- Customize super key action (to kick off workspaces, launcher, or apps)
- Window controls to hide/show maximize and minimize buttons
- Panels
- Auto hide panels
- Move panel position to top, bottom, left and right
- Settings to show panel in all displays or specific displays in a multi-monitor set up
- Enable gap between panel and screen edge or extend up to edges
- Custom panel looks light or dark or follow system settings. This allows you to have light panel in dark mode!
- Custom panel width
- Opacity control for the Panel to make it transparent!
- Custom Cosmic applets organizations in Panel (similar to Xfce’s applet)
- Dock
- Enable or disable Dock completely
- Auto hide option for Dock
- Changing dock position to left, right, top, or bottom (default)
- Option to show dock in specific displays in multi monitor set up
- Enable gap between dock and screen edge or extend up to edges
- Custom dock looks light or dark or follow system settings. This allows you to have light dock in dark mode!
- Custom dock size
- Opacity control for dock to make it transparent!
- Custom dock applets, organizations in dock.
- You can add the Panel applets in dock as well!!
- Wallpaper and appearance
- You can add custom wallpaper
- Set the different wallpaper in multiple displays!
- Add slide show as wallpaper
- Light and dark theme support
- Auto light to dark mode based on sunset and sunrise
- Accent colour support with custom colour via picker
- Option to change application and window background colour
- Custom container colour
- Interface text tint colour
- Tint colour customization for control components
- Automatically get theme accent colour to match window hint
- Three unique styles for components: Round, slightly round and square.
- Frosted glass effect
- Option to use custom themes like Adwaita or Breeze.
- Custom width for active window hint size
- Custom gap between tiled windows
Here is a screenshot of the Panel with unique settings. With this, you probably don’t need any themes in Cosmic. And no tweak tools are needed as well. Everything is available. And customization possibilities are limitless natively.
Qt and GTK apps decoration
With all the customizations above, you may wonder how the existing GTK or Qt apps might look! So, to test that, I installed two apps. They are GIMP and Krita. As per my experience, GIMP looks terrible in KDE Plasma today and Krita (Qt apps) looks partially fair in GNOME.
I am not sure what wizardry is this, but the System76 devs managed to look both GTK and Qt apps almost identical to the native Rust apps. This is probably the best feature of this desktop. It’s difficult to identify them as GTK or Qt apps unless told.
Here’s how they look with default Cosmic dark theme.
Native applications built in Rust
The Cosmic team also brings some new apps for you, all written in Rust. As of publishing this the following four key apps are available.
- Cosmic app store
- Cosmic terminal
- Cosmic screenshot
- Cosmic text editor
Cosmic app store is still under development. It looks like well organized to give you apps based on category. Also offers you to upgrade your system. We will see how it may look like in the future with more app store integration (such as Flatpak).
The Cosmic text editor is a fusion of a lightweight text editor with advanced features. It has built in tabs with advanced options such as Git integration, project browsers, left panel and vim bindings. You can easily use it for development work.
The screenshot app is very basic, similar to GNOME Shell screenshot. The screen recording, and timer feature is still to be implemented.
Performance
Honestly, with all these features and being under development – it feels superfast in virtual machine (VirtualBox). So, when you install in actual physical hardware, it should be far more responsive. Probably Rust’s memory management is at play here.
In my VirtualBox settings with 4 GB RAM, it consumes at 1.2 GB of RAM! The main Cosmic Compositor (cosmic-comp) is barely using any RAM or CPU.
Wrapping Up
I have never so hyped about any desktop environment before. Cosmic desktop is a new and fresh experience, moving away from GTK and Qt. Finally, Linux users have another desktop to try out, built in modern technologies. This obviously removes all technical debts in popular libraries such as GTK or Qt.
In addition, the looks, themes, natively built apps in Rust, auto-tiling with floating option are some great features of this desktop. It seems, all aspects of the modern desktop are well optimized, balanced for all users. Aesthetically, it is beautiful while offering super productivity.
For the moment, wait for the maiden release later this year.
What’s your opinion about this new desktop? Please let me know in the comment box below.