Compare commits

...
Author SHA1 Message Date
Jeremy Soller 9b0e61c54b Prepare for next tag 2026-02-17 14:17:02 -07:00
Jeremy Soller f5fa41194e Update repos 2026-02-13 12:32:54 -07:00
Jeremy Soller f9abdc105d Add PR template 2026-02-13 12:21:16 -07:00
Jeremy Soller dee71b6f25 Update for 1.0.6 tag 2026-02-10 11:07:25 -07:00
Jeremy Soller d955da69d4 Prepare for 1.0.5 tag 2026-02-03 09:08:14 -07:00
Jeremy Soller 5dcb211692 Prepare for 1.0.4 tag 2026-01-27 14:06:37 -07:00
Jeremy Soller e13e24b54e Use annotated tags 2026-01-27 10:30:12 -07:00
Jeremy Soller dafb7bb1fa Add script to automate update of version, currently limited to apps 2026-01-21 10:16:31 -07:00
Jeremy Soller 13ea973991 Prepare for 1.0.3 tag 2026-01-20 09:08:21 -07:00
golden-spiralandGitHub 8722d5507c docs: update Gentoo install section 2026-01-14 17:46:16 +01:00
rezsoandGitHub e4edeeca3f fix(just): cosmic-session uses build-release now 2026-01-14 17:45:04 +01:00
Vukašin VojinovićandMichael Murphy 7106172bcd chore: update CI 2026-01-14 17:43:39 +01:00
Jeremy Soller 0972aa1396 Prepare for 1.0.2 tag 2026-01-13 14:40:19 -07:00
Jeremy Soller 8f98c11b8c Prepare for 1.0.1 tag 2025-12-30 10:55:59 -07:00
Jacob KauffmannandJacob Kauffmann da3cf5ee1e docs: Remove additional beta messaging from README 2025-12-15 16:21:09 -07:00
killertofusandGitHub 508b7fe8e6 docs: Add new copy from website to replace beta copy 2025-12-15 17:17:00 +01:00
Jeremy Soller 39c24b0b4e Update cosmic-launcher 2025-12-10 15:21:45 -07:00
Jeremy Soller cb3fce4635 Minor updates before stable 2025-12-10 15:17:14 -07:00
Jeremy Soller 366bf74f49 Prepare for stable tag 2025-12-10 07:55:53 -07:00
Rerum02andJeremy Soller 3c128a6c52 Updated install instructions for nixos
Had link directly to the offical wiki, and replaced instructions for installation to match the wiki
2025-12-05 08:56:28 -07:00
Brad LohmeyerandJeremy Soller ce6bcdb54d docs: readme: fix apt packages 2025-12-05 08:56:10 -07:00
Brad LohmeyerandJeremy Soller 87391a426f docs: readme: reformat apt commands 2025-12-05 08:56:10 -07:00
Jeremy Soller 8cd00decac Update for beta 9 tag 2025-12-03 08:34:58 -07:00
221a9856f3 docs: Update README.md for Fedora (#1361)
* Update README.md for Fedora

Change cli instructions so that the user now uses the Fedora main repo.

Also changed where to find more info to the Cosmic SIG page.

* readd copr repo README.md

* Update Fedora installation instructions

---------

Co-authored-by: Jacob Kauffmann <[email protected]>
2025-11-25 14:04:02 -07:00
Jeremy Soller ea32f6c30b Update cosmic-osd 2025-11-25 11:49:10 -07:00
Jeremy Soller 102efba5ae Update for beta 8 tag 2025-11-25 08:39:22 -07:00
Jeremy Soller 3ede740ebd Update for beta 7 tag 2025-11-19 13:45:22 -07:00
Jeremy Soller f15e88c4c6 Prepare for beta 6 tag 2025-11-12 10:50:24 -07:00
Jeremy Soller e9a8b4be7f Prepare for beta 5 tag 2025-11-04 15:25:53 -07:00
daweandAshley Wulber 6fb8b35cf5 Improve markdown and wording in DEBUGGING.md 2025-10-30 18:42:44 -04:00
Jeremy Soller 39ea8cb129 Updates for beta 4 tags 2025-10-28 13:50:09 -06:00
Jeremy Soller 759fb8efea Update cosmic-settings before beta 3 tag 2025-10-21 15:09:19 -06:00
Jeremy Soller cba864f0cb Updates before beta 3 2025-10-21 09:00:22 -06:00
Jeremy Soller b027c4fc10 Update for beta 2 tag 2025-10-15 10:28:33 -06:00
Prasanna LoganatharandGitHub b8d349fd33 fix: install from justfile 2025-10-05 23:39:56 +02:00
Jacob KauffmannandMichael Murphy d539f2b331 docs: Update README verbiage & add translation info 2025-10-05 23:36:43 +02:00
Jeremy Soller a07aecf6a2 Minor beta fixes 2025-09-25 06:51:28 -06:00
Carl RichellandGitHub 534c1c132f Update README.md for beta
Also added cosmic-initial-setup
2025-09-23 18:01:27 -06:00
Jeremy Soller 547479a1c5 Add pop-launcher 2025-09-19 14:56:00 -06:00
Jeremy Soller 5c1ab6d9eb Add cosmic-initial-setup 2025-09-19 14:38:51 -06:00
Jeremy Soller 55489ceffb Update cosmic-notifications 2025-09-19 14:34:24 -06:00
Jeremy Soller efe2106ca2 Update xdg-desktop-potal-cosmic 2025-09-19 11:36:17 -06:00
Jeremy Soller b6011670e3 Minor translation updates 2025-09-19 11:34:23 -06:00
Jeremy Soller c4cd5a4950 Update submodules to prepare for beta tag 2025-09-19 11:15:22 -06:00
Pratham PatelandJeremy Soller 9e13a3e47a readme: add install instructions for NixOS users 2025-05-18 10:32:28 -06:00
Jeremy Soller b50a37bedb Update cosmic-session 2025-04-24 10:07:31 -06:00
Jeremy Soller f9c45ca65b Prepare for alpha 7 2025-04-24 09:18:22 -06:00
Harshit VijayandGitHub f55b95f67e Add cosmic-idle to README components list (#1770)
Added cosmic-idle component reference link
2025-04-04 16:53:20 -06:00
Levi PortenierandGitHub cdc45ee666 Merge pull request #1199 from boswelja/issue-picker
Add issue templates & links to other repos
2025-03-26 09:10:24 -06:00
Jacob KauffmannandMichael Murphy 8e7e5bbc0b Update Pop!_OS testing info 2025-03-10 17:45:01 +01:00
Jeremy Soller d5e41502b9 Submodule updates 2025-02-21 08:11:32 -07:00
Jeremy Soller 0d512c1bf4 Prepare for alpha 6 2025-02-20 10:54:07 -07:00
Jack BoswellandGitHub be97a211e1 Update config.yml 2024-11-04 09:32:21 +11:00
Jack BoswellandGitHub ba96994e7d Update config.yml 2024-10-31 23:10:24 +11:00
Jack BoswellandGitHub f8a0f29675 Update bug_report.md 2024-10-31 22:12:02 +11:00
Jack BoswellandGitHub 85a48f0f53 Update config.yml 2024-10-31 22:07:29 +11:00
Jack BoswellandGitHub 5c4fa4287e Update issue templates 2024-10-31 22:06:55 +11:00
Jack BoswellandGitHub afcb876be2 Merge pull request #2 from boswelja/boswelja-patch-1
Create config.yml
2024-10-31 22:04:46 +11:00
Jack BoswellandGitHub 5ed56ee132 Merge pull request #1 from boswelja/boswelja-patch-2
Update issue templates
2024-10-31 22:04:23 +11:00
Jack BoswellandGitHub 2e7a373ff2 Update issue templates 2024-10-31 22:04:15 +11:00
Jack BoswellandGitHub 8145b20798 Create config.yml 2024-10-31 22:03:12 +11:00
37 changed files with 446 additions and 131 deletions
+30
View File
@@ -0,0 +1,30 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: bug
assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Desktop (please complete the following information):**
- OS: [e.g. Pop!_OS 24.04]
**Additional context**
Add any other context about the problem here.
+61
View File
@@ -0,0 +1,61 @@
blank_issues_enabled: false
contact_links:
- name: cosmic-applets
url: https://github.com/pop-os/cosmic-applets/issues
about: Concern all the applets living in the dock or the panel.
- name: cosmic-comp
url: https://github.com/pop-os/cosmic-comp/issues
about: Responsible for composing your windows on the screen. If you see issues with the tilling features or your multiple displays, this is likely the place to go.
- name: cosmic-edit
url: https://github.com/pop-os/cosmic-edit/issues
about: This is the issue tracker for COSMIC Text Editor. If you see issues with the text editor, report them here.
- name: cosmic-files
url: https://github.com/pop-os/cosmic-files/issues
about: This is the issue tracker for COSMIC Files. If you see issues while navigating files, this is the place to go.
- name: cosmic-settings
url: https://github.com/pop-os/cosmic-settings/issues
about: This is the issue tracker for COSMIC Settings. If you see issues while changing settings, this is the place to go.
- name: cosmic-store
url: https://github.com/pop-os/cosmic-store/issues
about: This is the issue tracker for COSMIC Store. If you see issues with the app store, report them here.
- name: cosmic-term
url: https://github.com/pop-os/cosmic-term/issues
about: This is the issue tracker for COSMIC Terminal. If you see issues with the terminal, report them here.
- name: cosmic-panel
url: https://github.com/pop-os/cosmic-panel/issues
about: Contains the code to manage the dock and panel applets. You can see it as the compositor of applets. It is also responsible to draw the panel and dock at the right place (bottom, left, ect..).
- name: cosmic-screenshot
url: https://github.com/pop-os/cosmic-screenshot/issues
about: This is the tool that help you take screenshots.
- name: cosmic-workspaces-epoch
url: https://github.com/pop-os/cosmic-workspaces-epoch/issues
about: Responsible for the workspace overview. If you have an issue with workspaces, this is the place to go.
- name: cosmic-greeter
url: https://github.com/pop-os/cosmic-greeter/issues
about: When your session is locked, or not opened yet, this is the window that will be shown. Basically the login screen.
- name: cosmic-osd
url: https://github.com/pop-os/cosmic-osd/issues
about: Cosmic on screen display. This is for example, the audio notification when you change the volume, or the brightness one.
- name: cosmic-applibrary
url: https://github.com/pop-os/cosmic-applibrary/issues
about: It is the application launched with super-a, that let you see what app are in your system, and launch them.
- name: cosmic-launcher
url: https://github.com/pop-os/cosmic-launcher/issues
about: Launched with the super key. It lets you search in your application, and display the result in a list.
- name: cosmic-bg
url: https://github.com/pop-os/cosmic-bg/issues
about: If you notice issues with the wallpaper, this is the place to go.
+20
View File
@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: enhancement
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.
+8
View File
@@ -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.
+4 -4
View File
@@ -17,13 +17,12 @@ jobs:
Test:
runs-on: ubuntu-latest
container:
image: archlinux:latest
image: archlinux:base-devel
volumes:
- /:/host
steps:
- run: >
pacman --noconfirm -Syu
base-devel
pacman --noconfirm --needed -Syu
cargo
clang
desktop-file-utils
@@ -31,6 +30,7 @@ jobs:
gtk3
gtk4
just
libdisplay-info
libinput
libxkbcommon
llvm
@@ -47,7 +47,7 @@ jobs:
flatpak
nasm
- run: rm -rf /host/usr/local/lib/android # Free space
- uses: actions/checkout@v3
- uses: actions/checkout@v6
with:
submodules: recursive
# Safe directory behavior seems to have issues with `container:`
+8
View File
@@ -98,3 +98,11 @@
path = cosmic-player
url = https://github.com/pop-os/cosmic-player.git
branch = master
[submodule "cosmic-initial-setup"]
path = cosmic-initial-setup
url = https://github.com/pop-os/cosmic-initial-setup
branch = master
[submodule "pop-launcher"]
path = pop-launcher
url = https://github.com/pop-os/launcher.git
branch = master
+224 -91
View File
@@ -1,7 +1,6 @@
# COSMIC Desktop
Currently an incomplete **alpha**. 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
* [cosmic-applets](https://github.com/pop-os/cosmic-applets)
@@ -12,6 +11,8 @@ Currently an incomplete **alpha**. Testing instructions below for various distri
* [cosmic-files](https://github.com/pop-os/cosmic-files)
* [cosmic-greeter](https://github.com/pop-os/cosmic-greeter)
* [cosmic-icons](https://github.com/pop-os/cosmic-icons)
* [cosmic-idle](https://github.com/pop-os/cosmic-idle)
* [cosmic-initial-setup](https://github.com/pop-os/cosmic-initial-setup)
* [cosmic-launcher](https://github.com/pop-os/cosmic-launcher)
* [cosmic-notifications](https://github.com/pop-os/cosmic-notifications)
* [cosmic-osd](https://github.com/pop-os/cosmic-osd)
@@ -35,99 +36,39 @@ Currently an incomplete **alpha**. Testing instructions below for various distri
* [cosmic-text](https://github.com/pop-os/cosmic-text)
* [cosmic-theme](https://github.com/pop-os/cosmic-theme)
* [cosmic-time](https://github.com/pop-os/cosmic-time)
### COSMIC toolkit for apps and applets
* [libcosmic](https://github.com/pop-os/libcosmic)
## Setup on distributions without packaging of cosmic components
## Installing on Pop!\_OS
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):
### Pop!\_OS 24.04
- [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
COSMIC DE's first release (Epoch 1) is included in Pop!\_OS 24.04. There are two ways to get the 24.04 release:
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
- Install it from the [latest release ISO](https://system76.com/cosmic/).
- 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.
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.
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.
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
```
### Pop!\_OS 22.04
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
```
Due to dependency requirements, **COSMIC Epoch is no longer receiving updates on Pop!\_OS 22.04 LTS.** It's no longer recommended to test COSMIC Epoch on Pop!\_OS 22.04 because the latest bug fixes and features are only available on newer distributions such as Pop!\_OS 24.04.
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`).
Individual COSMIC applications work in the default GNOME session of Pop!\_OS 22.04. You can install individual COSMIC applications using the following command:
```
git clone --recurse-submodules https://github.com/pop-os/cosmic-epoch
cd cosmic-epoch
just sysext
sudo apt install cosmic-edit cosmic-files cosmic-player cosmic-store cosmic-term
```
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.
#### Old Release on 22.04
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).
An **older release** of the COSMIC Epoch desktop environment alpha is still available on Pop!\_OS 22.04 LTS. If you encounter bugs while testing COSMIC Epoch on Pop!\_OS 22.04, please check if they exist in Pop!\_OS 24.04 before reporting them. You can install the older release on 22.04 with these instructions:
```shell
sudo setenforce 0
sudo systemctl restart gdm
```
##### Enable Wayland
**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
COSMIC DE is in its first alpha release. Using and testing the alpha is welcome. Bugs and breakage are expected.
#### Enable Wayland
`sudo nano /etc/gdm3/custom.conf`
Change `WaylandEnable` to `true`:
@@ -137,7 +78,7 @@ WaylandEnable=true
Reboot for this change to take effect.
#### Update udev rules for NVIDIA users
##### Update udev rules for NVIDIA users
```shell
sudo nano /usr/lib/udev/rules.d/61-gdm.rules
@@ -161,7 +102,8 @@ Restart gdm
sudo systemctl restart gdm
```
#### Install COSMIC
##### Install COSMIC
`sudo apt install cosmic-session`
After logging out, click on your user and there will be a sprocket at the bottom right. Change the setting to COSMIC. Proceed to log in.
@@ -174,16 +116,42 @@ 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).
## 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
dnf install cosmic-desktop
sudo dnf install @cosmic-desktop-environment
```
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.
For further information, you may check the [COPR page](https://copr.fedorainfracloud.org/coprs/ryanabx/cosmic-epoch/).
Alternatively, for more up-to-date COSMIC packages (but less quality control), you can use the nightly COPR builds:
## Installing on openSUSE tumbleweed
```
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
The COSMIC module on NixOS can be enabled by adding the following lines to
your NixOS configuration file (`configuration.nix` or in your Flake):
```nix
{
# Enable the COSMIC login manager
services.displayManager.cosmic-greeter.enable = true;
# Enable the COSMIC desktop environment
services.desktopManager.cosmic.enable = true;
}
```
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**.
You can find more details on the [NixOS Wiki](https://wiki.nixos.org/wiki/COSMIC).
## Installing on openSUSE tumbleweed
Cosmic can be installed by adding X11:COSMIC:Factory repo with opi.
```
opi patterns-cosmic
@@ -196,15 +164,180 @@ For further information, you may check the [OBS page](https://build.opensuse.org
## 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:
`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).
## 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
- [Mattermost](https://chat.pop-os.org/)
- [Twitter](https://twitter.com/pop_os_official)
+2 -2
View File
@@ -34,8 +34,8 @@ https://gitlab.freedesktop.org/wlroots/wlroots/-/wikis/DRM-Debugging documents h
## 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.
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>`.
+10 -4
View File
@@ -12,20 +12,22 @@ build:
{{ just }} cosmic-files/build-release
{{ just }} cosmic-greeter/build-release
{{ just }} cosmic-idle/build-release
{{ just }} cosmic-initial-setup/build-release
{{ just }} cosmic-launcher/build-release
{{ just }} cosmic-notifications/build-release
{{ make }} -C cosmic-osd all
{{ just }} cosmic-osd/build-release
{{ just }} cosmic-panel/build-release
{{ just }} cosmic-player/build-release
{{ just }} cosmic-randr/build-release
{{ just }} cosmic-screenshot/build-release
{{ just }} cosmic-settings/build-release
{{ make }} -C cosmic-settings-daemon all
{{ just }} cosmic-session/all
{{ just }} cosmic-session/build-release
{{ just }} cosmic-store/build-release
{{ just }} cosmic-term/build-release
{{ make }} -C cosmic-wallpapers all
{{ make }} -C cosmic-workspaces-epoch all
{{ just }} pop-launcher/build-release
{{ make }} -C xdg-desktop-portal-cosmic all
install rootdir="" prefix="/usr/local": build
@@ -38,20 +40,22 @@ install rootdir="" prefix="/usr/local": build
{{ just }} rootdir={{rootdir}} prefix={{prefix}} cosmic-greeter/install
{{ just }} rootdir={{rootdir}} prefix={{prefix}} cosmic-icons/install
{{ just }} rootdir={{rootdir}} prefix={{prefix}} cosmic-idle/install
{{ just }} rootdir={{rootdir}} prefix={{prefix}} cosmic-initial-setup/install
{{ just }} rootdir={{rootdir}} prefix={{prefix}} cosmic-launcher/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-player/install
{{ just }} rootdir={{rootdir}} prefix={{prefix}} cosmic-randr/install
{{ just }} rootdir={{rootdir}} prefix={{prefix}} cosmic-screenshot/install
{{ just }} rootdir={{rootdir}} prefix={{prefix}} cosmic-settings/install
{{ 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-term/install
{{ make }} -C cosmic-wallpapers install DESTDIR={{rootdir}} prefix={{prefix}}
{{ make }} -C cosmic-workspaces-epoch install DESTDIR={{rootdir}} prefix={{prefix}}
{{ just }} rootdir={{rootdir}} pop-launcher/install
{{ make }} -C xdg-desktop-portal-cosmic install DESTDIR={{rootdir}} prefix={{prefix}}
_mkdir dir:
@@ -78,6 +82,7 @@ clean:
{{ just }} cosmic-files/clean
rm -rf cosmic-greeter/target
{{ just }} cosmic-idle/clean
{{ just }} cosmic-initial-setup/clean
rm -rf cosmic-launcher/target
rm -rf cosmic-panel/target
rm -rf cosmic-player/target
@@ -92,4 +97,5 @@ clean:
{{ just }} cosmic-term/clean
{{ make }} -C cosmic-wallpapers clean
rm -rf cosmic-workspaces-epoch/target
{{ just }} pop-launcher/clean
rm -rf xdg-desktop-portal-cosmic/target
Submodule
+1
Submodule pop-launcher added at 5b86851071
+7 -6
View File
@@ -2,14 +2,15 @@
set -e
TAG="$1"
if [ -z "$TAG" ]
if [ -z "$1" ]
then
echo "$0 [tag]" >&2
echo "$0 [epoch version]" >&2
exit 1
fi
VERSION="$1"
TAG="epoch-$1"
echo "Do you want to tag the current state of cosmic-epoch with the tag $TAG? (y/N)"
read answer
if [ "$answer" != "y" ]
@@ -22,8 +23,8 @@ set -x
git fetch --recurse-submodules
git tag --force "$TAG"
git submodule foreach git tag --force "$TAG"
git tag --force --annotate "$TAG" --message "Epoch ${VERSION}"
git submodule foreach git tag --force --annotate "$TAG" --message "Epoch ${VERSION}"
git push --force origin tag "$TAG"
git submodule foreach git push --force origin tag "$TAG"
+46
View File
@@ -0,0 +1,46 @@
#!/usr/bin/env bash
set -e
# This should be the _next_ epoch version
version=1.0.7
subject="Epoch ${version} version update"
description="Generated by cosmic-epoch scripts/version-update.sh"
repos=(
cosmic-edit
cosmic-files
cosmic-player
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