93 lines
2.5 KiB
Bash
Executable File
93 lines
2.5 KiB
Bash
Executable File
#!/usr/bin/bash
|
|
|
|
set -eoux pipefail
|
|
|
|
###############################################################################
|
|
# Example: Swap GNOME Desktop with COSMIC Desktop
|
|
###############################################################################
|
|
# This example demonstrates replacing the GNOME desktop environment with
|
|
# System76's COSMIC desktop from their COPR repository.
|
|
#
|
|
# COSMIC is a new desktop environment built in Rust by System76.
|
|
# https://github.com/pop-os/cosmic-epoch
|
|
#
|
|
# To use this script:
|
|
# 1. Rename to remove .example extension: mv 30-cosmic-desktop.sh.example 30-cosmic-desktop.sh
|
|
# 2. Build - scripts run in numerical order automatically
|
|
#
|
|
# WARNING: This removes GNOME and replaces it with COSMIC. Only use this if
|
|
# you want COSMIC as your desktop environment instead of GNOME.
|
|
###############################################################################
|
|
|
|
# Source helper functions
|
|
# shellcheck source=/dev/null
|
|
source /ctx/build/copr-helpers.sh
|
|
|
|
echo "::group:: Remove GNOME Desktop"
|
|
|
|
# Remove GNOME Shell and related packages
|
|
dnf5 remove -y \
|
|
gnome-shell \
|
|
gnome-shell-extension* \
|
|
gnome-terminal \
|
|
gnome-software \
|
|
gnome-control-center \
|
|
nautilus \
|
|
gdm
|
|
|
|
echo "GNOME desktop removed"
|
|
echo "::endgroup::"
|
|
|
|
echo "::group:: Install COSMIC Desktop"
|
|
|
|
# Install COSMIC desktop from System76's COPR
|
|
# Using isolated pattern to prevent COPR from persisting
|
|
copr_install_isolated "ryanabx/cosmic-epoch" \
|
|
cosmic-session \
|
|
cosmic-greeter \
|
|
cosmic-comp \
|
|
cosmic-panel \
|
|
cosmic-launcher \
|
|
cosmic-applets \
|
|
cosmic-settings \
|
|
cosmic-files \
|
|
cosmic-edit \
|
|
cosmic-term \
|
|
cosmic-workspaces
|
|
|
|
echo "COSMIC desktop installed successfully"
|
|
echo "::endgroup::"
|
|
|
|
echo "::group:: Configure Display Manager"
|
|
|
|
# Enable cosmic-greeter (COSMIC's display manager)
|
|
systemctl enable cosmic-greeter
|
|
|
|
# Set COSMIC as default session
|
|
mkdir -p /etc/X11/sessions
|
|
cat > /etc/X11/sessions/cosmic.desktop << 'COSMICDESKTOP'
|
|
[Desktop Entry]
|
|
Name=COSMIC
|
|
Comment=COSMIC Desktop Environment
|
|
Exec=cosmic-session
|
|
Type=Application
|
|
DesktopNames=COSMIC
|
|
COSMICDESKTOP
|
|
|
|
echo "Display manager configured"
|
|
echo "::endgroup::"
|
|
|
|
echo "::group:: Install Additional Utilities"
|
|
|
|
# Install additional utilities that work well with COSMIC
|
|
dnf5 install -y \
|
|
kitty \
|
|
flatpak \
|
|
xdg-desktop-portal-cosmic
|
|
|
|
echo "Additional utilities installed"
|
|
echo "::endgroup::"
|
|
|
|
echo "COSMIC desktop installation complete!"
|
|
echo "After booting, select 'COSMIC' session at the login screen"
|