A platform toolkit based on iced for creating applets and applications for the COSMIC™ desktop.
- API Documentation: Automatically generated from this repository via
cargo doc
- libcosmic Book: A reference for learning libcosmic
- https://github.com/pop-os/cosmic-app-template: Application project template
While libcosmic is written entirely in Rust, some of its dependencies may require shared system library headers to be installed. On Pop!_OS, the following dependencies are all that's necessary compile a typical COSMIC project:
sudo apt install cargo cmake just libexpat1-dev libfontconfig-dev libfreetype-dev libxkbcommon-dev pkgconf
Some examples are included in the examples directory to to kickstart your COSMIC adventure. To run them, you need to clone the repository with the following commands:
git clone https://github.com/pop-os/libcosmic
cd libcosmic
If you have already cloned the repository, run these to sync with the latest updates:
git fetch origin
git checkout master
git reset --hard origin/master
The examples may then be run by their cargo project names, such as just run application
.
Available cargo features to choose from:
a11y
: Experimental accessibility support.animated-image
: Enables animated images from the image crate.debug
: Enables addtional debugging features.smol
: Uses smol as the preferred async runtime.- Conflicts with
tokio
- Conflicts with
tokio
: Uses tokio as the preferred async runtime.- If unset, the default executor defined by iced will be used.
- Conflicts with
smol
wayland
: Wayland-compatible client windows.- Conflicts with
winit
- Conflicts with
winit
: Cross-platform and X11 client window support- Conflicts with
wayland
- Conflicts with
wgpu
: GPU accelerated rendering with WGPU.- By default, softbuffer is used for software rendering.
xdg-portal
: Enables XDG portal dialog integrations.
- COSMIC App Library
- COSMIC Applets
- COSMIC Launcher
- COSMIC Notifications
- COSMIC Panel
- COSMIC Text Editor
- COSMIC Settings
Licensed under the Mozilla Public License 2.0.