mirror of
https://github.com/outbackdingo/hyprcosmic.git
synced 2026-08-25 14:53:21 +00:00
add notes and just-script to build Cosmic DE
This commit is contained in:
@@ -9,6 +9,59 @@ Currently an incomplete **pre-alpha**.
|
|||||||
* [cosmic-launcher](https://github.com/pop-os/cosmic-launcher)
|
* [cosmic-launcher](https://github.com/pop-os/cosmic-launcher)
|
||||||
* [comsic-panel](https://github.com/pop-os/cosmic-panel)
|
* [comsic-panel](https://github.com/pop-os/cosmic-panel)
|
||||||
* [cosmic-settings](https://github.com/pop-os/cosmic-settings)
|
* [cosmic-settings](https://github.com/pop-os/cosmic-settings)
|
||||||
|
* [cosmic-session](https://github.com/pop-os/cosmic-session)
|
||||||
* [cosmic-theme](https://github.com/pop-os/cosmic-theme)
|
* [cosmic-theme](https://github.com/pop-os/cosmic-theme)
|
||||||
* [cosmic-theme-editor](https://github.com/pop-os/cosmic-theme-editor)
|
* [cosmic-theme-editor](https://github.com/pop-os/cosmic-theme-editor)
|
||||||
* [libcosmic](https://github.com/pop-os/libcosmic)
|
* [libcosmic](https://github.com/pop-os/libcosmic)
|
||||||
|
* [simple-wrapper](https://github.com/pop-os/simple-wrapper)
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
|
The Cosmic desktop environment requires a few dependencies:
|
||||||
|
(This list does not try to be exhaustive, but rather tries to provide a decent starting point. For detailed instructions check out the individual projects):
|
||||||
|
|
||||||
|
- [just](https://github.com/casey/just)
|
||||||
|
- rust
|
||||||
|
- libwayland
|
||||||
|
- mesa (or third-party libEGL/libGL implementations, though interfacing with mesa's libglvnd is generally recommended).
|
||||||
|
- libseat
|
||||||
|
- libxkbcommon
|
||||||
|
- libinput
|
||||||
|
- udev
|
||||||
|
- gtk4
|
||||||
|
- dbus
|
||||||
|
|
||||||
|
optionally (though the build-system might currently require these libraries):
|
||||||
|
- libsystemd
|
||||||
|
- libpulse
|
||||||
|
- pop-launcher
|
||||||
|
|
||||||
|
### Testing
|
||||||
|
|
||||||
|
The easiest way to test Cosmic DE currently is by building a systemd system extension (see `man systemd-sysext`).
|
||||||
|
```
|
||||||
|
git clone --recurse-submodules https://github.com/pop-os/cosmic-epoch
|
||||||
|
cd cosmic-epoch
|
||||||
|
just sysext
|
||||||
|
```
|
||||||
|
|
||||||
|
This will create a system-extension inside `cosmic-sysext`, that you can move (without renaming!) into e.g. `/var/lib/extensions`.
|
||||||
|
After starting systemd-sysext.service (`sudo systemctl enable --now systemd-sysext`) and refreshing (`sudo systemd-sysext --refresh`) or rebooting
|
||||||
|
*COSMIC* will be an available option in your favorite display manager.
|
||||||
|
|
||||||
|
**Note**: An extension created this way will be linked against specific libraries on your system and will not work on other distributions.
|
||||||
|
It also requires the previously mentioned libraries/dependencies at runtime to be installed in your system (the system extension does not carry these libraries).
|
||||||
|
|
||||||
|
It is thus no proper method for long term deployment.
|
||||||
|
|
||||||
|
### Packaging
|
||||||
|
|
||||||
|
Cosmic DE is packaged for Pop!_OS for reference look at the `debian` folders in the projects repositories.
|
||||||
|
These and the `justfile` inside this repository may be used as references on how to package Cosmic DE, though no backwards-compatibility guarantees are provided at this stage.
|
||||||
|
|
||||||
|
### Versioning
|
||||||
|
|
||||||
|
Cosmic DE is very much still work-in-progress and thus does not follow a versioning scheme so far.
|
||||||
|
We do our best to keep the referenced submodule commits in this repository building and working together, as a consequence they might not contain the latest updates and features from these repositories (yet).
|
||||||
|
|
||||||
|
Notes on versioning and packaging all these components together properly will be added at a later stage once Cosmic DE gets its first release.
|
||||||
|
|||||||
@@ -0,0 +1,40 @@
|
|||||||
|
just := just_executable()
|
||||||
|
make := `which make`
|
||||||
|
|
||||||
|
build:
|
||||||
|
{{ just }} cosmic-applets/all
|
||||||
|
{{ just }} cosmic-applibrary/all
|
||||||
|
{{ make }} -C cosmic-comp all
|
||||||
|
{{ just }} cosmic-launcher/all
|
||||||
|
{{ make }} -C cosmic-panel all
|
||||||
|
{{ just }} cosmic-session/all
|
||||||
|
{{ make }} -C simple-wrapper all
|
||||||
|
|
||||||
|
sysext dir=`echo $(pwd)/cosmic-sysext` version=("nightly-" + `git rev-parse --short HEAD`): build && (_extension_release dir version)
|
||||||
|
@mkdir -p {{dir}}/usr/lib/extension-release.d/
|
||||||
|
{{ just }} rootdir={{dir}} cosmic-applets/install
|
||||||
|
{{ just }} rootdir={{dir}} cosmic-applibrary/install
|
||||||
|
{{ make }} -C cosmic-comp install DESTDIR={{dir}}
|
||||||
|
{{ just }} rootdir={{dir}} cosmic-launcher/install
|
||||||
|
{{ make }} -C cosmic-panel install DESTDIR={{dir}} prefix=/usr
|
||||||
|
{{ just }} rootdir={{dir}} cosmic-session/install
|
||||||
|
{{ make }} -C simple-wrapper install DESTDIR={{dir}} prefix=/usr
|
||||||
|
|
||||||
|
_extension_release dir version:
|
||||||
|
#!/usr/bin/env sh
|
||||||
|
cat >{{dir}}/usr/lib/extension-release.d/extension-release.cosmic-sysext <<EOF
|
||||||
|
NAME="Cosmic DE"
|
||||||
|
VERSION={{version}}
|
||||||
|
$(cat /etc/os-release | grep '^ID=')
|
||||||
|
$(cat /etc/os-release | grep '^VERSION_ID=')
|
||||||
|
EOF
|
||||||
|
echo "Done"
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -rf cosmic-applets/target
|
||||||
|
rm -rf cosmic-applibrary/target
|
||||||
|
rm -rf cosmic-comp/target
|
||||||
|
rm -rf cosmic-launcher/target
|
||||||
|
rm -rf cosmic-panel/target
|
||||||
|
rm -rf cosmic-session/target
|
||||||
|
rm -rf simple-wrapper/target
|
||||||
Reference in New Issue
Block a user