On F44, 'dnf copr enable solopasha/hyprland' fails with 'Chroot not found': verified via the Copr API, solopasha is rawhide-only right now. lionheartp/ Hyprland (solopasha fork, also ships noctalia packages) and hermitfeather/ hyprland both have fedora-44 chroots. The module now tries lionheartp, hermitfeather, then solopasha, and aborts with an actionable message if none has a chroot for this release. README updated to name the chain, not a single repo.
53 lines
2.0 KiB
Bash
Executable File
53 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
set -uo pipefail
|
|
|
|
HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
# shellcheck source=../../lib/common.sh
|
|
source "$HERE/../../lib/common.sh"
|
|
# shellcheck source=../../lib/session.sh
|
|
source "$HERE/../../lib/session.sh"
|
|
|
|
if is_debug; then set +e; else set -e; fi
|
|
|
|
step "Tiling window manager: Hyprland"
|
|
rule
|
|
|
|
# hyprland was retired from the Fedora repos after F42 (dependency churn), so it
|
|
# comes from a COPR. Which COPR has a fedora-44 chroot changes over time —
|
|
# solopasha (the usual recommendation) was rawhide-only when this was written.
|
|
# Try candidates in order; first one that enables wins. If none works, abort
|
|
# with an actionable message instead of a cryptic "chroot not found".
|
|
if ! pkg_installed hyprland; then
|
|
enabled=""
|
|
for copr in lionheartp/Hyprland hermitfeather/hyprland solopasha/hyprland; do
|
|
info "Enabling copr: $copr..."
|
|
if sudo dnf copr enable -y "$copr" >/dev/null 2>&1; then
|
|
enabled="$copr"
|
|
ok "Copr enabled: $copr"
|
|
break
|
|
fi
|
|
warn "Copr $copr has no chroot for this Fedora release; trying next..."
|
|
done
|
|
if [[ -z "$enabled" ]]; then
|
|
err "None of the Hyprland COPRs have a chroot for Fedora $(rpm -E %fedora)."
|
|
err "Check https://copr.fedorainfracloud.org/coprs/ for an up-to-date one, or:"
|
|
err " sudo dnf copr enable -y <owner>/<project> fedora-rawhide-x86_64 # last resort"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
info "Installing Hyprland and its ecosystem..."
|
|
# COPR package sets differ; treat everything beyond the core compositor as
|
|
# optional so a name drift warns instead of killing the transaction.
|
|
install_packages hyprland xdg-desktop-portal-hyprland alacritty
|
|
install_optional hyprpaper hypridle hyprlock waybar mako wofi xwayland-satellite
|
|
|
|
install_session_prereqs
|
|
install_nerd_font JetBrainsMono
|
|
|
|
# The Fedora hyprland package ships hyprland.desktop in wayland-sessions.
|
|
install_packages sddm
|
|
switch_display_manager sddm
|
|
|
|
ok "Hyprland setup complete. Log out and pick Hyprland in SDDM."
|