2022-10-11 21:51:50 -07:00
# LIBCOSMIC
2024-07-29 13:21:58 +02:00
A platform toolkit based on iced for creating applets and applications for the COSMIC™ desktop.
2022-10-11 21:51:50 -07:00
2024-07-29 13:21:58 +02:00
## Documentation
- [API Documentation ](https://pop-os.github.io/libcosmic/cosmic/ ): Automatically generated from this repository via `cargo doc`
- [libcosmic Book ](https://pop-os.github.io/libcosmic-book/ ): A reference for learning libcosmic
## Templates
- https://github.com/pop-os/cosmic-app-template: Application project template
2025-12-17 03:25:00 +01:00
- https://github.com/pop-os/cosmic-applet-template: Panel applet project template
2022-10-11 21:51:50 -07:00
2024-07-29 13:21:58 +02:00
## Dependencies
2025-10-01 21:30:55 -04:00
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 to compile a typical COSMIC project:
2022-10-11 21:51:50 -07:00
2023-08-15 11:02:35 +02:00
```sh
2024-07-29 13:21:58 +02:00
sudo apt install cargo cmake just libexpat1-dev libfontconfig-dev libfreetype-dev libxkbcommon-dev pkgconf
2022-10-11 21:51:50 -07:00
```
2024-07-29 13:21:58 +02:00
## Examples
2023-08-15 11:02:35 +02:00
Some examples are included in the [examples ](./examples ) directory to to kickstart your
COSMIC adventure. To run them, you need to clone the repository with the following commands:
```sh
2025-01-23 08:16:50 -05:00
git clone --recurse-submodules https://github.com/pop-os/libcosmic
2023-03-02 11:46:25 -07:00
cd libcosmic
```
2023-08-15 11:02:35 +02:00
If you have already cloned the repository, run these to sync with the latest updates:
```sh
git fetch origin
git checkout master
git reset --hard origin/master
2023-03-06 15:55:33 -07:00
```
2024-07-29 13:21:58 +02:00
The examples may then be run by their cargo project names, such as `just run application` .
2023-09-13 16:33:53 +02:00
2024-07-29 13:21:58 +02:00
## Cargo Features
2023-08-15 11:02:35 +02:00
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`
- `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`
- `winit` : Cross-platform and X11 client window support
- Conflicts with `wayland`
- `wgpu` : GPU accelerated rendering with WGPU.
- By default, softbuffer is used for software rendering.
- `xdg-portal` : Enables XDG portal dialog integrations.
### Project Showcase
- [COSMIC App Library ](https://github.com/pop-os/cosmic-applibrary )
- [COSMIC Applets ](https://github.com/pop-os/cosmic-applets )
- [COSMIC Launcher ](https://github.com/pop-os/cosmic-launcher )
- [COSMIC Notifications ](https://github.com/pop-os/cosmic-notifications )
- [COSMIC Panel ](https://github.com/pop-os/cosmic-panel )
- [COSMIC Text Editor ](https://github.com/pop-os/cosmic-text-editor )
- [COSMIC Settings ](https://github.com/pop-os/cosmic-settings )
2022-10-11 21:51:50 -07:00
## Licence
2023-08-15 11:02:35 +02:00
Licensed under the [Mozilla Public License 2.0 ](https://choosealicense.com/licenses/mpl-2.0 ).
2022-10-11 21:51:50 -07:00
## Contact
2023-08-15 11:02:35 +02:00
2022-10-11 21:51:50 -07:00
- [Mattermost ](https://chat.pop-os.org/ )
2023-08-15 11:02:35 +02:00
- [Lemmy ](https://lemmy.world/c/pop_os )
- [Mastodon ](https://fosstodon.org/@pop_os_official )
- [Reddit ](https://www.reddit.com/r/pop_os/ )
2022-10-11 21:51:50 -07:00
- [Twitter ](https://twitter.com/pop_os_official )
2023-08-15 11:02:35 +02:00
- [Instagram ](https://www.instagram.com/pop_os_official )