2022-10-11 21:51:50 -07:00
|
|
|
# LIBCOSMIC
|
|
|
|
|
|
2023-08-15 11:02:35 +02:00
|
|
|
A platform toolkit based on iced which provides the building blocks for developing the
|
|
|
|
|
future COSMIC desktop environment. Applications and applets alike are equally supported
|
|
|
|
|
targets of Libcosmic. Applets integrate directly with COSMIC's interface as shell
|
|
|
|
|
components, which was made possible by the Layer Shell protocol of Wayland.
|
2022-10-11 21:51:50 -07:00
|
|
|
|
|
|
|
|
## Building
|
|
|
|
|
|
2023-08-15 11:02:35 +02:00
|
|
|
Libcosmic is written entirely in Rust, with minimal dependence on system libraries. On
|
|
|
|
|
Pop!_OS, the following dependencies are all that's necessary compile the cosmic library:
|
2022-10-11 21:51:50 -07:00
|
|
|
|
2023-08-15 11:02:35 +02:00
|
|
|
```sh
|
|
|
|
|
sudo apt install cargo cmake just libexpat1-dev libfontconfig-dev libfreetype-dev pkg-config
|
2022-10-11 21:51:50 -07:00
|
|
|
```
|
|
|
|
|
|
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
|
2023-03-02 11:46:25 -07:00
|
|
|
git clone https://github.com/pop-os/libcosmic
|
|
|
|
|
cd libcosmic
|
2023-08-15 11:02:35 +02:00
|
|
|
git submodule update --init --recursive
|
2023-03-02 11:46:25 -07:00
|
|
|
```
|
|
|
|
|
|
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
|
|
|
|
|
git submodule update --init --recursive
|
2023-03-06 15:55:33 -07:00
|
|
|
```
|
|
|
|
|
|
2023-09-13 16:33:53 +02:00
|
|
|
The examples may then be run by their cargo project names, such as `just run cosmic-design-demo`.
|
|
|
|
|
|
2023-08-15 11:02:35 +02:00
|
|
|
To create a new COSMIC project, use `cargo new {{name_of_project}}` to create a new
|
|
|
|
|
project workspace, edit the `Cargo.toml` contained within, and add this to begin.
|
|
|
|
|
|
|
|
|
|
```toml
|
|
|
|
|
[workspace.dependencies.libcosmic]
|
|
|
|
|
git = "https://github.com/pop-os/libcosmic"
|
|
|
|
|
default-features = false
|
|
|
|
|
features = ["wayland", "tokio"]
|
2022-10-11 21:51:50 -07:00
|
|
|
```
|
|
|
|
|
|
2023-08-15 11:02:35 +02:00
|
|
|
### Cargo Features
|
|
|
|
|
|
|
|
|
|
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
|
|
|
## Documentation
|
2023-08-15 11:02:35 +02:00
|
|
|
|
|
|
|
|
Documentation can be found [here](https://pop-os.github.io/docs/).
|
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)
|