COSMIC Settings

The system settings application for the COSMIC desktop environment, written in Rust and covering appearance, display, input, networking, and more.

COSMIC Settings is the unified system configuration application for the COSMIC desktop environment by System76. Written entirely in Rust on top of libcosmic, it replaces the patchwork of GTK-based settings panels common on other desktops with a single, coherent interface covering everything from display scaling to audio routing. Like the rest of the COSMIC suite, it is pre-alpha software shipping by default on Pop!_OS 24.04 and actively developed in the open.

Features

  • Appearance — Choose accent colours from a curated palette, toggle dark/light mode, adjust window corner rounding, and select system fonts — all with live preview.
  • Display — Configure resolution, refresh rate, fractional scaling, and night light per-monitor; drag-and-drop multi-monitor arrangement matches physical desk layout.
  • Input — Switch keyboard layouts and input methods, tune mouse acceleration and scroll speed, and configure touchpad tap-to-click and gesture sensitivity.
  • Networking — Connect to Wi-Fi networks and manage wired connections through deep NetworkManager integration, with per-connection details and VPN support.
  • Sound — Select output and input devices, adjust volume levels, and manage audio streams via PipeWire through the cosmic-pipewire crate.
  • Users — Add and remove user accounts and configure login options.
  • Accessibility — High-contrast mode, reduced motion, and other assistive settings.
  • Persistent configuration — All settings are stored via cosmic-config in XDG config directories, making them easy to back up and sync across machines.

Installation

COSMIC Settings is pre-alpha and ships as part of the COSMIC desktop suite rather than as a standalone package. The recommended ways to obtain it are:

Pop!_OS (ships by default)

COSMIC Settings is included in Pop!_OS 24.04 and later as the default settings application. No additional steps are needed.

Build from source (all Linux distributions)

# Install Rust via rustup if you haven't already
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Install system dependencies (Debian / Ubuntu)
sudo apt install just libxkbcommon-dev pkg-config \
    libdbus-1-dev libudev-dev libpipewire-0.3-dev

# Install system dependencies (Fedora)
sudo dnf install just libxkbcommon-devel pkg-config \
    dbus-devel systemd-devel pipewire-devel

# Clone and build
git clone https://github.com/pop-os/cosmic-settings
cd cosmic-settings
just build-release
just install

Arch Linux (AUR)

paru -S cosmic-settings-git

Nix / NixOS

nix-env -iA nixpkgs.cosmic-settings

Note: COSMIC Settings depends on several other COSMIC daemons (cosmic-bg, cosmic-comp, cosmic-osd) for full functionality. On non-COSMIC desktops, some panels may be unavailable or non-functional. Check the repository README for the current list of runtime dependencies.

Quick Start

COSMIC Settings opens to a sidebar-driven panel layout. Each category is a top-level entry in the sidebar; selecting one reveals its options in the main content area.

# Launch from the terminal
cosmic-settings

# Open directly to a specific panel (where supported)
cosmic-settings --page appearance
cosmic-settings --page displays
cosmic-settings --page keyboard

Changing the accent colour

  1. Open Appearance from the sidebar.
  2. Select a colour from the accent palette, or enter a custom hex value.
  3. The change applies immediately to all COSMIC applications without restarting.

Setting up a second monitor

  1. Open Displays from the sidebar.
  2. Drag the monitor representations to match your physical layout.
  3. Set the resolution, refresh rate, and scale for each display independently.
  4. Click Apply — COSMIC Compositor picks up the new arrangement without a logout.

Switching keyboard layout

  1. Open InputKeyboard from the sidebar.
  2. Click Add Input Source and search for your layout by language or layout name.
  3. Set a shortcut (e.g. Super+Space) to cycle between layouts at runtime.

Architecture

COSMIC Settings is a thin UI shell that delegates the actual system changes to platform daemons and D-Bus services:

PanelBackend
Appearancecosmic-config + cosmic-themes
Displayscosmic-comp (the COSMIC compositor) via D-Bus
NetworkingNetworkManager via D-Bus
SoundPipeWire via cosmic-pipewire
Inputxkbcommon + libinput via cosmic-comp
Userssystemd-logind + shadow utilities

This layered design means the UI itself has no privileged access; policy decisions happen in the daemons, which are the same daemons every COSMIC application talks to.

COSMIC Settings vs Other Desktop Settings Apps

FeatureCOSMIC SettingsGNOME SettingsKDE System Settings
Written in Rust❌ (C + Python)❌ (C++)
Fractional scaling per display
Live accent colour preview
PipeWire audio management✅ (partial)
Wayland-native
Flatpak sandboxed panels✅ (portals)
Stable release❌ (pre-alpha)

For users already on GNOME or KDE, their respective settings applications are mature and fully supported. COSMIC Settings is the right choice when running the COSMIC desktop, where it integrates tightly with cosmic-comp, cosmic-config, and the shared theme system.