Skip to content

fsvm88/cosmic-overlay

Repository files navigation

cosmic overlay

Unofficial Gentoo overlay for Cosmic desktop environment developed by System76

Details

  • this is highly in-flux, no guarantees are given
  • done in a best-effort basis to try out the COSMIC DE, likely not representative of the final product if/when shipped in Gentoo
  • it is my first experience writing so many ebuilds and an entire eclass (a lot is taken from gentoo's repo cargo.eclass), so expect bugs, and you're welcome to submit PRs for improvements :)
  • packages in live ebuilds use the master branch from git
  • packages in non-live (non-9999 ebuilds) use tags from git due to libcosmic depending on bundled libs (hopefully this will go away at some point)
  • please submit issues in this repo's issue tracker if you notice immediate usability issues (e.g: broken manifests), usually I can take care of them in 2-3 days

Quick how-to

Adding the repo

eselect repository add cosmic-overlay git https://github.com/fsvm88/cosmic-overlay.git

Emerging the DE

Unmasking unstable ebuilds

For the latest tagged release, you can unmask the packages in /etc/portage/package.accept_keywords/cosmic-de (or whatever file you prefer):

cosmic-de/*

Unmasking live ebuilds

To try out the latest commits from master branch, you can unmask the packages in /etc/portage/package.accept_keywords/cosmic-de (or whatever file you prefer):

# live ebuilds are masked via "missing" keywords
cosmic-de/* **

NOTE: sometimes new files to install are added on master, and live ebuilds may lag behind a bit. Feel free to open an issue or a PR.

Actually emerging the DE

emerge cosmic-meta pop-theme-meta -pv

Removing the repo

# -f is required because the repo is not in the official remotes list
eselect repository remove -f cosmic-overlay

USEs

Most ebuilds use the cosmic-de eclass, part of the repo, and as such expose the following flags:

  • debug: cargo build --profile debug
  • debug-line-tables-only: adds --config profile.$profile_name.debug="line-tables-only" to the build command, to generate debug info that only contains line numbers (useful to get stack traces regardless of build profile)
  • max-opt: cargo build --profile release-maximum-optimization, an injected profile for the ultimate ricing experience!
    • debugging is disabled, unless debug-line-tables-only is set
    • 1 codegen unit -> can potentially optimize the code some more (possibly <1%)
    • opt-level=3 -> maximum optimization
    • defined at eclass/cosmic-de.eclass ~L65
    • it'll take a while longer to build and link

By default the ebuilds build in release mode and profile.

debug and max-opt are mutually exclusive.

debug-line-tables-only can be added on top of the release/max-opt profiles.

Personally I run with USE="debug-line-tables-only max-opt", and haven't noticed issues.

Libraries

NOTE: these were dropped as of commit fec5043, as they were unmaintained for a few months.

iced and libcosmic were added, but are not really used by the projects due to Rust's building/linking nature.
Perhaps at a later time COSMIC devs will add a way to link to system libs, but so far it's clear that doing vendor unbundling is a waste of effort.

About

COSMIC DE overlay for Gentoo

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages