mirror of
https://github.com/outbackdingo/hyprcosmic.git
synced 2026-08-25 14:53:21 +00:00
Compare commits
36
Commits
readme-beta
...
version
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d566a8b589 | ||
|
|
f5fa41194e | ||
|
|
f9abdc105d | ||
|
|
dee71b6f25 | ||
|
|
d955da69d4 | ||
|
|
5dcb211692 | ||
|
|
e13e24b54e | ||
|
|
dafb7bb1fa | ||
|
|
13ea973991 | ||
|
|
8722d5507c | ||
|
|
e4edeeca3f | ||
|
|
7106172bcd | ||
|
|
0972aa1396 | ||
|
|
8f98c11b8c | ||
|
|
da3cf5ee1e | ||
|
|
508b7fe8e6 | ||
|
|
39c24b0b4e | ||
|
|
cb3fce4635 | ||
|
|
366bf74f49 | ||
|
|
3c128a6c52 | ||
|
|
ce6bcdb54d | ||
|
|
87391a426f | ||
|
|
8cd00decac | ||
|
|
221a9856f3 | ||
|
|
ea32f6c30b | ||
|
|
102efba5ae | ||
|
|
3ede740ebd | ||
|
|
f15e88c4c6 | ||
|
|
e9a8b4be7f | ||
|
|
6fb8b35cf5 | ||
|
|
39ea8cb129 | ||
|
|
759fb8efea | ||
|
|
cba864f0cb | ||
|
|
b027c4fc10 | ||
|
|
b8d349fd33 | ||
|
|
d539f2b331 |
@@ -0,0 +1,8 @@
|
|||||||
|
- [ ] I have disclosed use of any AI generated code in my commit messages.
|
||||||
|
- If you are using an LLM, and do not fully understand the changes it is making to the code base, do not create a PR.
|
||||||
|
- In our experience, AI generated code often results in overly complex code that lacks enough context for a proper fix or feature inclusion. This results in considerably longer code reviews. Due to this, AI authored or partially authored PRs may be closed without comment.
|
||||||
|
- [ ] I understand these changes in full and will be able to respond to review comments.
|
||||||
|
- [ ] My change is accurately described in the commit message.
|
||||||
|
- [ ] My contribution is tested and working as described.
|
||||||
|
- [ ] I have read the [Developer Certificate of Origin](https://developercertificate.org/) and certify my contribution under its conditions.
|
||||||
|
|
||||||
@@ -17,13 +17,12 @@ jobs:
|
|||||||
Test:
|
Test:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: archlinux:latest
|
image: archlinux:base-devel
|
||||||
volumes:
|
volumes:
|
||||||
- /:/host
|
- /:/host
|
||||||
steps:
|
steps:
|
||||||
- run: >
|
- run: >
|
||||||
pacman --noconfirm -Syu
|
pacman --noconfirm --needed -Syu
|
||||||
base-devel
|
|
||||||
cargo
|
cargo
|
||||||
clang
|
clang
|
||||||
desktop-file-utils
|
desktop-file-utils
|
||||||
@@ -31,6 +30,7 @@ jobs:
|
|||||||
gtk3
|
gtk3
|
||||||
gtk4
|
gtk4
|
||||||
just
|
just
|
||||||
|
libdisplay-info
|
||||||
libinput
|
libinput
|
||||||
libxkbcommon
|
libxkbcommon
|
||||||
llvm
|
llvm
|
||||||
@@ -47,7 +47,7 @@ jobs:
|
|||||||
flatpak
|
flatpak
|
||||||
nasm
|
nasm
|
||||||
- run: rm -rf /host/usr/local/lib/android # Free space
|
- run: rm -rf /host/usr/local/lib/android # Free space
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v6
|
||||||
with:
|
with:
|
||||||
submodules: recursive
|
submodules: recursive
|
||||||
# Safe directory behavior seems to have issues with `container:`
|
# Safe directory behavior seems to have issues with `container:`
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
# COSMIC Desktop
|
# COSMIC Desktop
|
||||||
|
|
||||||
Currently near feature complete **beta**. We're in the final bug fixing stage for the first release. Testing instructions below for various distributions.
|
[COSMIC](https://system76.com/cosmic) is a desktop environment offering performance, efficiency, and personalization to empower a wide variety of use cases.
|
||||||
|
|
||||||
|
|
||||||
## Components of COSMIC Desktop
|
## Components of COSMIC Desktop
|
||||||
* [cosmic-applets](https://github.com/pop-os/cosmic-applets)
|
* [cosmic-applets](https://github.com/pop-os/cosmic-applets)
|
||||||
@@ -42,106 +41,17 @@ Currently near feature complete **beta**. We're in the final bug fixing stage fo
|
|||||||
|
|
||||||
* [libcosmic](https://github.com/pop-os/libcosmic)
|
* [libcosmic](https://github.com/pop-os/libcosmic)
|
||||||
|
|
||||||
## Setup on distributions without packaging of cosmic components
|
|
||||||
|
|
||||||
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)
|
|
||||||
- rustc
|
|
||||||
- libwayland
|
|
||||||
- mesa (or third-party libEGL/libGL implementations, though interfacing with mesa's libglvnd is generally recommended).
|
|
||||||
- libseat
|
|
||||||
- libxkbcommon
|
|
||||||
- libinput
|
|
||||||
- udev
|
|
||||||
- dbus
|
|
||||||
|
|
||||||
optionally (though the build-system might currently require these libraries):
|
|
||||||
- libsystem
|
|
||||||
- libpulse
|
|
||||||
- pop-launcher
|
|
||||||
- libexpat1
|
|
||||||
- libfontconfig
|
|
||||||
- libfreetype
|
|
||||||
- lld
|
|
||||||
- cargo
|
|
||||||
- libgbm-dev
|
|
||||||
- libclang-dev
|
|
||||||
- libpipewire-0.3-dev
|
|
||||||
|
|
||||||
Note: `libfontconfig`, `libfreetype`, and `lld` are packages specific to Linux distributions. You may need to find the equivalent version for your distribution if you are not using Pop!_OS.
|
|
||||||
|
|
||||||
The required ones can be installed with:
|
|
||||||
```
|
|
||||||
sudo apt install just rustc libglvnd-dev libwayland-dev libseat-dev libxkbcommon-dev libinput-dev udev dbus libdbus-1-dev libpam0g-dev libpixman-1-dev libssl-dev libflatpak-dev -y
|
|
||||||
```
|
|
||||||
|
|
||||||
and the optional ones with:
|
|
||||||
```
|
|
||||||
sudo apt install libsystemd-dev libpulse-dev pop-launcher libexpat1-dev libfontconfig-dev libfreetype-dev mold cargo libgbm-dev libclang-dev libpipewire-0.3-dev -y
|
|
||||||
```
|
|
||||||
|
|
||||||
They can be installed all at once with:
|
|
||||||
```
|
|
||||||
sudo apt install just rustc libglvnd-dev libwayland-dev libseat-dev libxkbcommon-dev libinput-dev udev dbus libdbus-1-dev libsystemd-dev libpixman-1-dev libssl-dev libflatpak-dev libpulse-dev pop-launcher libexpat1-dev libfontconfig-dev libfreetype-dev mold cargo libgbm-dev libclang-dev libpipewire-0.3-dev libpam0g-dev -y
|
|
||||||
```
|
|
||||||
|
|
||||||
### 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 called `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.
|
|
||||||
|
|
||||||
If you have SELinux enabled (e.g. on Fedora), the installed extension won't have the correct labels applied.
|
|
||||||
To test COSMIC, you can temporarily disable it and restart `gdm` (note that this will close your running programs).
|
|
||||||
|
|
||||||
```shell
|
|
||||||
sudo setenforce 0
|
|
||||||
sudo systemctl restart gdm
|
|
||||||
```
|
|
||||||
|
|
||||||
**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).
|
|
||||||
|
|
||||||
**Read-Only Filesystem**: If you're not on an immutable distro you may notice that `/usr/` and `/opt/` are read-only.
|
|
||||||
this is caused by `systemd-sysext` being enabled, when you are done testing you can disable `systemd-sysext` (`sudo systemctl disable --now systemd-sysext`)
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
## Installing on Pop!\_OS
|
## Installing on Pop!\_OS
|
||||||
|
|
||||||
COSMIC DE is in its first beta release. We're in a bug fixing stage of development with features largely complete for the first release. Using and testing the beta is welcome.
|
### Pop!\_OS 24.04
|
||||||
|
|
||||||
### Pop!\_OS 24.04 Beta
|
COSMIC DE's first release (Epoch 1) is included in Pop!\_OS 24.04. There are two ways to get the 24.04 release:
|
||||||
|
|
||||||
The recommended way to test COSMIC Epoch on Pop!\_OS is by using the Pop!\_OS 24.04 LTS Beta release. There are two ways to get the 24.04 Beta:
|
- Install it from the [latest release ISO](https://system76.com/cosmic/).
|
||||||
|
|
||||||
- Install it from the [latest Beta release ISO](https://system76.com/cosmic/).
|
|
||||||
- Upgrade an existing Pop!\_OS 22.04 installation using the following command: `pop-upgrade release upgrade -f`
|
- Upgrade an existing Pop!\_OS 22.04 installation using the following command: `pop-upgrade release upgrade -f`
|
||||||
- If you experience problems during the upgrade, please open an issue in the [pop-upgrade GitHub repository](https://github.com/pop-os/upgrade) or join the [Pop!\_OS Mattermost chat server](https://chat.pop-os.org) for assistance.
|
- If you experience problems during the upgrade, please open an issue in the [pop-upgrade GitHub repository](https://github.com/pop-os/upgrade) or join the [Pop!\_OS Mattermost chat server](https://chat.pop-os.org) for assistance.
|
||||||
|
|
||||||
Pop!\_OS 24.04 Beta installations will be upgradable to the final 24.04 release, but some manual interventions may occasionally be required during development. If you're using Pop!\_OS 24.04 Beta, then it's recommended to join the [Pop!\_OS Mattermost chat server](https://chat.pop-os.org) to receive news about the 24.04 development cycle. Join the COSMIC Epoch channel.
|
COSMIC users, including Pop!_OS users, are welcome to join the [Pop!\_OS Mattermost chat server](https://chat.pop-os.org) to receive news about development. Join the [COSMIC Epoch channel](https://chat.pop-os.org/pop-os/channels/cosmic-epoch) for COSMIC user discussion, or the [Development channel](https://chat.pop-os.org/pop-os/channels/development) for developer-oriented discussion.
|
||||||
|
|
||||||
### Pop!\_OS 22.04
|
### Pop!\_OS 22.04
|
||||||
|
|
||||||
@@ -206,31 +116,39 @@ Then log out, click on your user, and a sprocket at the bottom right shows an ad
|
|||||||
For a more detailed discussion, consider the [relevant section in the Arch wiki](https://wiki.archlinux.org/title/COSMIC).
|
For a more detailed discussion, consider the [relevant section in the Arch wiki](https://wiki.archlinux.org/title/COSMIC).
|
||||||
|
|
||||||
## Installing on Fedora Linux
|
## Installing on Fedora Linux
|
||||||
Cosmic may be installed via a Fedora COPR repository.
|
|
||||||
|
COSMIC can be installed from the built-in repositories on Fedora 41+:
|
||||||
|
|
||||||
```
|
```
|
||||||
dnf copr enable ryanabx/cosmic-epoch
|
sudo dnf install @cosmic-desktop-environment
|
||||||
dnf install cosmic-desktop
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Then log out, click on your user, and a sprocket at the bottom right shows an additional entry alongside your desktop environments. Change to COSMIC and proceed with log in.
|
Alternatively, for more up-to-date COSMIC packages (but less quality control), you can use the nightly COPR builds:
|
||||||
For further information, you may check the [COPR page](https://copr.fedorainfracloud.org/coprs/ryanabx/cosmic-epoch/).
|
|
||||||
|
```
|
||||||
|
sudo dnf copr enable ryanabx/cosmic-epoch && sudo dnf install cosmic-desktop
|
||||||
|
```
|
||||||
|
|
||||||
|
After installing, log out, click on your user, and use the sprocket in the bottom right to select the COSMIC desktop environment before logging in.
|
||||||
|
For more information, check the [Fedora Wiki COSMIC SIG page](https://fedoraproject.org/wiki/SIGs/COSMIC) or the [COPR page](https://copr.fedorainfracloud.org/coprs/ryanabx/cosmic-epoch/).
|
||||||
|
|
||||||
## Installing on NixOS
|
## Installing on NixOS
|
||||||
The COSMIC module on NixOS can be enabled by adding the following lines to
|
The COSMIC module on NixOS can be enabled by adding the following lines to
|
||||||
your NixOS configuration file (`configuration.nix` or in your Flake):
|
your NixOS configuration file (`configuration.nix` or in your Flake):
|
||||||
```nix
|
```nix
|
||||||
# Enable the login manager
|
{
|
||||||
|
# Enable the COSMIC login manager
|
||||||
services.displayManager.cosmic-greeter.enable = true;
|
services.displayManager.cosmic-greeter.enable = true;
|
||||||
# Enable the COSMIC DE itself
|
|
||||||
|
# Enable the COSMIC desktop environment
|
||||||
services.desktopManager.cosmic.enable = true;
|
services.desktopManager.cosmic.enable = true;
|
||||||
# Enable XWayland support in COSMIC
|
}
|
||||||
services.desktopManager.cosmic.xwayland.enable = true;
|
|
||||||
```
|
```
|
||||||
|
|
||||||
While some packages like `cosmic-session` might be present in prior versions,
|
While some packages like `cosmic-session` might be present in prior versions,
|
||||||
the modules that add full support for COSMIC were added in **NixOS 25.05**.
|
the modules that add full support for COSMIC were added in **NixOS 25.05**.
|
||||||
|
|
||||||
You can find more details in the [NixOS 25.05 release notes](https://nixos.org/manual/nixos/unstable/release-notes#sec-release-25.05).
|
You can find more details on the [NixOS Wiki](https://wiki.nixos.org/wiki/COSMIC).
|
||||||
|
|
||||||
|
|
||||||
## Installing on openSUSE tumbleweed
|
## Installing on openSUSE tumbleweed
|
||||||
@@ -246,15 +164,180 @@ For further information, you may check the [OBS page](https://build.opensuse.org
|
|||||||
## Installing on Gentoo Linux
|
## Installing on Gentoo Linux
|
||||||
COSMIC can be installed on Gentoo via a custom overlay. Add the overlay using your preferred overlay manager (such as eselect), and then install the desktop environment:
|
COSMIC can be installed on Gentoo via a custom overlay. Add the overlay using your preferred overlay manager (such as eselect), and then install the desktop environment:
|
||||||
|
|
||||||
`eselect repository add cosmic-overlay git https://github.com/fsvm88/cosmic-overlay.git`
|
`eselect repository add cosmic-overlay git https://github.com/fsvm88/cosmic-overlay.git`
|
||||||
|
|
||||||
Next, install the COSMIC desktop environment and its associated themes:
|
Next, synchronize the repository with
|
||||||
|
`emaint sync -r cosmic-overlay`
|
||||||
|
|
||||||
`emerge cosmic-meta pop-theme-meta`
|
and install the COSMIC desktop environment and its associated themes:
|
||||||
|
|
||||||
Then log out, click on your user, and a sprocket at the bottom right shows an additional entry alongside your desktop environments. Change to COSMIC and proceed with log in.
|
`emerge cosmic-meta pop-theme-meta -av`
|
||||||
|
|
||||||
|
Please note that the ebuilds have testing keywords and need to unmasked on stable systems for successful installation.
|
||||||
|
|
||||||
|
Then log out, and switch the desktop environment to COSMIC, the procedure depends on your login manager.
|
||||||
For further information, you may check the [Gentoo Wiki](https://wiki.gentoo.org/wiki/COSMIC) or [Overlay Repository](https://github.com/fsvm88/cosmic-overlay).
|
For further information, you may check the [Gentoo Wiki](https://wiki.gentoo.org/wiki/COSMIC) or [Overlay Repository](https://github.com/fsvm88/cosmic-overlay).
|
||||||
|
|
||||||
|
## Setup on distributions without packaging of COSMIC components
|
||||||
|
|
||||||
|
The COSMIC desktop environment requires a few dependencies. The rustc and just packages of your distro may be too old, so we recommend installing rustc and cargo with rustup, and installing just with cargo.
|
||||||
|
(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)
|
||||||
|
- rustc
|
||||||
|
- cargo
|
||||||
|
- c compiler (cc)
|
||||||
|
- make
|
||||||
|
- git
|
||||||
|
- libwayland
|
||||||
|
- mesa (or third-party libEGL/libGL implementations, though interfacing with mesa's libglvnd is generally recommended).
|
||||||
|
- libseat
|
||||||
|
- libxkbcommon
|
||||||
|
- libinput
|
||||||
|
- udev
|
||||||
|
- dbus
|
||||||
|
- libdisplay-info-dev
|
||||||
|
- libgstreamer1.0-dev
|
||||||
|
- libgstreamer-plugins-base1.0-dev
|
||||||
|
|
||||||
|
optionally (though the build-system might currently require these libraries):
|
||||||
|
- libsystem
|
||||||
|
- libpulse
|
||||||
|
- libexpat1
|
||||||
|
- libfontconfig
|
||||||
|
- libfreetype
|
||||||
|
- lld
|
||||||
|
- libgbm-dev
|
||||||
|
- libclang-dev
|
||||||
|
- libpipewire-0.3-dev
|
||||||
|
|
||||||
|
Note: `libfontconfig`, `libfreetype`, and `lld` are packages specific to Linux distributions. You may need to find the equivalent version for your distribution if you are not using Pop!_OS.
|
||||||
|
|
||||||
|
The required ones can be installed with:
|
||||||
|
```
|
||||||
|
sudo apt install -y \
|
||||||
|
build-essential \
|
||||||
|
dbus \
|
||||||
|
git \
|
||||||
|
libdbus-1-dev \
|
||||||
|
libdisplay-info-dev \
|
||||||
|
libflatpak-dev \
|
||||||
|
libglvnd-dev \
|
||||||
|
libgstreamer-plugins-base1.0-dev \
|
||||||
|
libgstreamer1.0-dev \
|
||||||
|
libinput-dev \
|
||||||
|
libpam0g-dev \
|
||||||
|
libpixman-1-dev \
|
||||||
|
libseat-dev \
|
||||||
|
libssl-dev \
|
||||||
|
libwayland-dev \
|
||||||
|
libxkbcommon-dev \
|
||||||
|
rustup \
|
||||||
|
udev
|
||||||
|
|
||||||
|
rustup toolchain install stable
|
||||||
|
cargo install just
|
||||||
|
```
|
||||||
|
|
||||||
|
and the optional ones with:
|
||||||
|
```
|
||||||
|
sudo apt install -y \
|
||||||
|
libclang-dev \
|
||||||
|
libexpat1-dev \
|
||||||
|
libfontconfig-dev \
|
||||||
|
libfreetype-dev \
|
||||||
|
libgbm-dev \
|
||||||
|
libpipewire-0.3-dev \
|
||||||
|
libpulse-dev \
|
||||||
|
libsystemd-dev \
|
||||||
|
lld \
|
||||||
|
mold
|
||||||
|
```
|
||||||
|
|
||||||
|
They can be installed all at once with:
|
||||||
|
```
|
||||||
|
sudo apt install -y \
|
||||||
|
build-essential \
|
||||||
|
dbus \
|
||||||
|
git \
|
||||||
|
libclang-dev \
|
||||||
|
libdbus-1-dev \
|
||||||
|
libdisplay-info-dev \
|
||||||
|
libexpat1-dev \
|
||||||
|
libflatpak-dev \
|
||||||
|
libfontconfig-dev \
|
||||||
|
libfreetype-dev \
|
||||||
|
libgbm-dev \
|
||||||
|
libglvnd-dev \
|
||||||
|
libgstreamer-plugins-base1.0-dev \
|
||||||
|
libgstreamer1.0-dev \
|
||||||
|
libinput-dev \
|
||||||
|
libpam0g-dev \
|
||||||
|
libpipewire-0.3-dev \
|
||||||
|
libpixman-1-dev \
|
||||||
|
libpulse-dev \
|
||||||
|
libseat-dev \
|
||||||
|
libssl-dev \
|
||||||
|
libsystemd-dev \
|
||||||
|
libwayland-dev \
|
||||||
|
libxkbcommon-dev \
|
||||||
|
lld \
|
||||||
|
mold \
|
||||||
|
rustup \
|
||||||
|
udev
|
||||||
|
|
||||||
|
rustup toolchain install stable
|
||||||
|
cargo install just
|
||||||
|
```
|
||||||
|
|
||||||
|
### 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 called `cosmic-sysext`, which 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.
|
||||||
|
|
||||||
|
If you have SELinux enabled (e.g. on Fedora), the installed extension won't have the correct labels applied.
|
||||||
|
To test COSMIC, you can temporarily disable it and restart `gdm` (note that this will close your running programs).
|
||||||
|
|
||||||
|
```shell
|
||||||
|
sudo setenforce 0
|
||||||
|
sudo systemctl restart gdm
|
||||||
|
```
|
||||||
|
|
||||||
|
**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).
|
||||||
|
|
||||||
|
**Read-Only Filesystem**: If you're not on an immutable distro you may notice that `/usr/` and `/opt/` are read-only.
|
||||||
|
this is caused by `systemd-sysext` being enabled, when you are done testing you can disable `systemd-sysext` (`sudo systemctl disable --now systemd-sysext`)
|
||||||
|
|
||||||
|
It is thus not a 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 a work in progress with many moving pieces.
|
||||||
|
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).
|
||||||
|
|
||||||
|
The commits corresponding with the current release are tagged `epoch-X.Y.Z`, where `X` is the major release and the last two numbers denote incremental minor releases. (During development of new major versions, an additional `-alpha.Y.Z` or `-beta.Y.Z` may be appended.)
|
||||||
|
|
||||||
|
COSMIC Epoch version numbers are mainly for the benefit of non-Pop!_OS distributions; Pop!_OS uses its own build system, and typically receives updates to individual submodules before they're tagged as part of a COSMIC Epoch release.
|
||||||
|
|
||||||
|
## Translating
|
||||||
|
|
||||||
|
To submit translations for COSMIC in your language, please use Weblate: https://hosted.weblate.org/projects/pop-os/
|
||||||
|
|
||||||
## Contact
|
## Contact
|
||||||
- [Mattermost](https://chat.pop-os.org/)
|
- [Mattermost](https://chat.pop-os.org/)
|
||||||
- [Twitter](https://twitter.com/pop_os_official)
|
- [Twitter](https://twitter.com/pop_os_official)
|
||||||
|
|||||||
+1
-1
Submodule cosmic-applets updated: 2dba07fcae...006cc96b7b
+1
-1
Submodule cosmic-applibrary updated: 62100ee576...2be09f052e
+1
-1
Submodule cosmic-bg updated: 40254a7101...808a50e383
+1
-1
Submodule cosmic-comp updated: f339e21479...67c08ef692
+1
-1
Submodule cosmic-edit updated: 942cfc4f27...46a1a36f82
+1
-1
Submodule cosmic-files updated: 0c222e1e3a...2c363a01e5
+1
-1
Submodule cosmic-greeter updated: aa0f1cc53a...c68ee081a5
+1
-1
Submodule cosmic-icons updated: 70b07582e2...cd30ffd509
+1
-1
Submodule cosmic-idle updated: 267bb837f1...6d3dbedd50
+1
-1
Submodule cosmic-initial-setup updated: 7d5c21cf1b...8cabf71f7f
+1
-1
Submodule cosmic-launcher updated: b411aa6bb3...c14b470966
+1
-1
Submodule cosmic-notifications updated: 19d24637d4...998f173a18
+1
-1
Submodule cosmic-osd updated: fc095b351b...0418a0ce92
+1
-1
Submodule cosmic-panel updated: 1cbfafc68b...8eb8a1b630
+1
-1
Submodule cosmic-player updated: 7b204a05c3...768fc74a42
+1
-1
Submodule cosmic-randr updated: bce9cdf2d4...741089cf5e
+1
-1
Submodule cosmic-screenshot updated: ba59f95cb1...3180f369ca
+1
-1
Submodule cosmic-session updated: 379ce30715...7b5fd4de9d
+1
-1
Submodule cosmic-settings updated: 051e325bb8...b46a55d423
+1
-1
Submodule cosmic-settings-daemon updated: 181e8f9c62...020c4addd7
+1
-1
Submodule cosmic-store updated: 57542dcafe...a1016c729d
+1
-1
Submodule cosmic-term updated: d9c898554d...5bcab45c65
+1
-1
Submodule cosmic-workspaces-epoch updated: 9968b0e61f...d31c6dbccb
+2
-2
@@ -34,8 +34,8 @@ https://gitlab.freedesktop.org/wlroots/wlroots/-/wikis/DRM-Debugging documents h
|
|||||||
|
|
||||||
## Frozen desktop
|
## Frozen desktop
|
||||||
|
|
||||||
If the desktop is frozen and `ctrl+alt+f*` don't work to change to a TTY, [the magic SysRq key](https://www.kernel.org/doc/html/latest/admin-guide/sysrq.html) with `r` can be used to swich input in raw mode, so the kernel will handle the tty switch key binding. /etc/sysctl.conf` or `/etc/sysctl.d` may need to be edited first to set `kernel.sysrq=1` or another value that allows this command.
|
If the desktop is frozen and `ctrl+alt+f*` don't work to change to a TTY, [the magic SysRq key](https://www.kernel.org/doc/html/latest/admin-guide/sysrq.html) with `r` can be used to switch input into raw mode, so the kernel will handle the tty switch key binding. `/etc/sysctl.conf` or `/etc/sysctl.d` may need to be edited first to set `kernel.sysrq=1` or another value that allows this command.
|
||||||
|
|
||||||
It is also possible to connect over `ssh` from another computer.
|
It is also possible to connect over `ssh` from another computer.
|
||||||
|
|
||||||
Then `pidof cosmic-comp` can be used to get the PID of the compositor. Then it is possible to investigate further with tools like `gdb`, using `sudo gdb` then `attach <pid>`.
|
Then `pidof cosmic-comp` can be used to get the PID of the compositor. Then it is possible to investigate further with tools like `gdb`, using `sudo gdb` and then `attach <pid>`.
|
||||||
|
|||||||
@@ -15,14 +15,14 @@ build:
|
|||||||
{{ just }} cosmic-initial-setup/build-release
|
{{ just }} cosmic-initial-setup/build-release
|
||||||
{{ just }} cosmic-launcher/build-release
|
{{ just }} cosmic-launcher/build-release
|
||||||
{{ just }} cosmic-notifications/build-release
|
{{ just }} cosmic-notifications/build-release
|
||||||
{{ make }} -C cosmic-osd all
|
{{ just }} cosmic-osd/build-release
|
||||||
{{ just }} cosmic-panel/build-release
|
{{ just }} cosmic-panel/build-release
|
||||||
{{ just }} cosmic-player/build-release
|
{{ just }} cosmic-player/build-release
|
||||||
{{ just }} cosmic-randr/build-release
|
{{ just }} cosmic-randr/build-release
|
||||||
{{ just }} cosmic-screenshot/build-release
|
{{ just }} cosmic-screenshot/build-release
|
||||||
{{ just }} cosmic-settings/build-release
|
{{ just }} cosmic-settings/build-release
|
||||||
{{ make }} -C cosmic-settings-daemon all
|
{{ make }} -C cosmic-settings-daemon all
|
||||||
{{ just }} cosmic-session/all
|
{{ just }} cosmic-session/build-release
|
||||||
{{ just }} cosmic-store/build-release
|
{{ just }} cosmic-store/build-release
|
||||||
{{ just }} cosmic-term/build-release
|
{{ just }} cosmic-term/build-release
|
||||||
{{ make }} -C cosmic-wallpapers all
|
{{ make }} -C cosmic-wallpapers all
|
||||||
@@ -43,19 +43,19 @@ install rootdir="" prefix="/usr/local": build
|
|||||||
{{ just }} rootdir={{rootdir}} prefix={{prefix}} cosmic-initial-setup/install
|
{{ just }} rootdir={{rootdir}} prefix={{prefix}} cosmic-initial-setup/install
|
||||||
{{ just }} rootdir={{rootdir}} prefix={{prefix}} cosmic-launcher/install
|
{{ just }} rootdir={{rootdir}} prefix={{prefix}} cosmic-launcher/install
|
||||||
{{ just }} rootdir={{rootdir}} prefix={{prefix}} cosmic-notifications/install
|
{{ just }} rootdir={{rootdir}} prefix={{prefix}} cosmic-notifications/install
|
||||||
{{ make }} -C cosmic-osd install DESTDIR={{rootdir}} prefix={{prefix}}
|
{{ just }} rootdir={{rootdir}} prefix={{prefix}} cosmic-osd/install
|
||||||
{{ just }} rootdir={{rootdir}} prefix={{prefix}} cosmic-panel/install
|
{{ just }} rootdir={{rootdir}} prefix={{prefix}} cosmic-panel/install
|
||||||
{{ just }} rootdir={{rootdir}} prefix={{prefix}} cosmic-player/install
|
{{ just }} rootdir={{rootdir}} prefix={{prefix}} cosmic-player/install
|
||||||
{{ just }} rootdir={{rootdir}} prefix={{prefix}} cosmic-randr/install
|
{{ just }} rootdir={{rootdir}} prefix={{prefix}} cosmic-randr/install
|
||||||
{{ just }} rootdir={{rootdir}} prefix={{prefix}} cosmic-screenshot/install
|
{{ just }} rootdir={{rootdir}} prefix={{prefix}} cosmic-screenshot/install
|
||||||
{{ just }} rootdir={{rootdir}} prefix={{prefix}} cosmic-settings/install
|
{{ just }} rootdir={{rootdir}} prefix={{prefix}} cosmic-settings/install
|
||||||
{{ make }} -C cosmic-settings-daemon install DESTDIR={{rootdir}} prefix={{prefix}}
|
{{ make }} -C cosmic-settings-daemon install DESTDIR={{rootdir}} prefix={{prefix}}
|
||||||
{{ just }} rootdir={{rootdir}} prefix={{rootdir + prefix}} cosmic-session/install
|
{{ just }} rootdir={{rootdir}} prefix={{prefix}} cosmic-session/install
|
||||||
{{ just }} rootdir={{rootdir}} prefix={{prefix}} cosmic-store/install
|
{{ just }} rootdir={{rootdir}} prefix={{prefix}} cosmic-store/install
|
||||||
{{ just }} rootdir={{rootdir}} prefix={{prefix}} cosmic-term/install
|
{{ just }} rootdir={{rootdir}} prefix={{prefix}} cosmic-term/install
|
||||||
{{ make }} -C cosmic-wallpapers install DESTDIR={{rootdir}} prefix={{prefix}}
|
{{ make }} -C cosmic-wallpapers install DESTDIR={{rootdir}} prefix={{prefix}}
|
||||||
{{ make }} -C cosmic-workspaces-epoch install DESTDIR={{rootdir}} prefix={{prefix}}
|
{{ make }} -C cosmic-workspaces-epoch install DESTDIR={{rootdir}} prefix={{prefix}}
|
||||||
{{ just }} rootdir={{rootdir}} prefix={{prefix}} pop-launcher/install
|
{{ just }} rootdir={{rootdir}} pop-launcher/install
|
||||||
{{ make }} -C xdg-desktop-portal-cosmic install DESTDIR={{rootdir}} prefix={{prefix}}
|
{{ make }} -C xdg-desktop-portal-cosmic install DESTDIR={{rootdir}} prefix={{prefix}}
|
||||||
|
|
||||||
_mkdir dir:
|
_mkdir dir:
|
||||||
|
|||||||
+1
-1
Submodule pop-launcher updated: 8d9da92dba...eead361cca
+7
-6
@@ -2,14 +2,15 @@
|
|||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
TAG="$1"
|
if [ -z "$1" ]
|
||||||
|
|
||||||
if [ -z "$TAG" ]
|
|
||||||
then
|
then
|
||||||
echo "$0 [tag]" >&2
|
echo "$0 [epoch version]" >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
VERSION="$1"
|
||||||
|
TAG="epoch-$1"
|
||||||
|
|
||||||
echo "Do you want to tag the current state of cosmic-epoch with the tag $TAG? (y/N)"
|
echo "Do you want to tag the current state of cosmic-epoch with the tag $TAG? (y/N)"
|
||||||
read answer
|
read answer
|
||||||
if [ "$answer" != "y" ]
|
if [ "$answer" != "y" ]
|
||||||
@@ -22,8 +23,8 @@ set -x
|
|||||||
|
|
||||||
git fetch --recurse-submodules
|
git fetch --recurse-submodules
|
||||||
|
|
||||||
git tag --force "$TAG"
|
git tag --force --annotate "$TAG" --message "Epoch ${VERSION}"
|
||||||
git submodule foreach git tag --force "$TAG"
|
git submodule foreach git tag --force --annotate "$TAG" --message "Epoch ${VERSION}"
|
||||||
|
|
||||||
git push --force origin tag "$TAG"
|
git push --force origin tag "$TAG"
|
||||||
git submodule foreach git push --force origin tag "$TAG"
|
git submodule foreach git push --force origin tag "$TAG"
|
||||||
|
|||||||
Executable
+49
@@ -0,0 +1,49 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# This should be the _next_ epoch version
|
||||||
|
version=1.0.6
|
||||||
|
subject="Epoch ${version} version update"
|
||||||
|
description="Generated by cosmic-epoch scripts/version-update.sh"
|
||||||
|
|
||||||
|
repos=(
|
||||||
|
cosmic-edit
|
||||||
|
cosmic-files
|
||||||
|
cosmic-player
|
||||||
|
cosmic-settings
|
||||||
|
cosmic-settings-daemon
|
||||||
|
cosmic-randr
|
||||||
|
cosmic-store
|
||||||
|
cosmic-term
|
||||||
|
)
|
||||||
|
|
||||||
|
for repo in "${repos[@]}"
|
||||||
|
do
|
||||||
|
git submodule update --recursive "${repo}"
|
||||||
|
pushd "${repo}"
|
||||||
|
git fetch origin
|
||||||
|
git checkout -B epoch-update origin/master
|
||||||
|
git reset --hard
|
||||||
|
if [ "$(dpkg-parsechangelog --show-field Version)" != "${version}" ]
|
||||||
|
then
|
||||||
|
dch --newversion "${version}" --distribution noble "${subject}"
|
||||||
|
fi
|
||||||
|
cargo set-version "${version}"
|
||||||
|
cargo update
|
||||||
|
git commit -a -m "${subject}" -m "${description}"
|
||||||
|
git push -f -u origin epoch-update
|
||||||
|
pr_url="$(gh pr list --head epoch-update --state open --json url --jq '.[].url')"
|
||||||
|
if [ -n "${pr_url}" ]
|
||||||
|
then
|
||||||
|
echo "PR already open: ${pr_url}"
|
||||||
|
else
|
||||||
|
gh pr create \
|
||||||
|
--title "${subject}" \
|
||||||
|
--body "${description}" \
|
||||||
|
--assignee "@me" \
|
||||||
|
--reviewer "pop-os/engineering" \
|
||||||
|
--reviewer "pop-os/quality-assurance"
|
||||||
|
fi
|
||||||
|
popd
|
||||||
|
done
|
||||||
Submodule xdg-desktop-portal-cosmic updated: 2477a1b398...276af0b38c
Reference in New Issue
Block a user