From d65baf688c0bdf21d0c3f9831b87eca037daee66 Mon Sep 17 00:00:00 2001 From: dingo Date: Tue, 11 Aug 2026 14:29:50 +0700 Subject: [PATCH] Start this fork's own binaries, not the distribution's start-hyprcosmic now execs /usr/bin/hyprcosmic-session with /usr/bin/hyprcosmic-comp as argv[1], leaving the cosmic-* paths to the distribution's packages. Taking the cosmic-* names meant erasing the distribution's compositor and session to install this fork, which on Fedora also erases cosmic-greeter -- the display manager. cosmic-session already takes the compositor as argv[1], so pairing the two here needs no source change. --- data/start-hyprcosmic | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/data/start-hyprcosmic b/data/start-hyprcosmic index 3359093..60af753 100755 --- a/data/start-hyprcosmic +++ b/data/start-hyprcosmic @@ -56,16 +56,25 @@ if [[ -z "${HYPRCOSMIC_LOGIN_SHELL:-}" && -n "${SHELL:-}" && -x "${SHELL}" ]]; t esac fi -# The binaries. HyprCosmic replaces COSMIC rather than installing beside it, so -# these are the ordinary paths -- this fork's cosmic-session *is* the machine's -# cosmic-session, and there is no second copy under a private prefix. +# The binaries, under their own names. HyprCosmic installs beside COSMIC rather +# than over it: these are this fork's builds, and /usr/bin/cosmic-session and +# /usr/bin/cosmic-comp are left to the distribution's packages. +# +# That is what keeps the stock session on the greeter's menu and working. The +# alternative -- taking the cosmic-* names -- means erasing the distribution's +# compositor and session to install this, which on Fedora also means erasing +# cosmic-greeter, which is the display manager. A fork that can only be tried by +# removing the desktop it forked is a fork nobody can back out of. +# +# cosmic-session takes the compositor as argv[1], so the pairing is arranged +# here and needs no patch: see the exec at the end of this file. # # Still named in variables rather than called bare. Two reasons: the check below # can then say which path was missing, and both stay overridable from the # environment, which is how the session is run out of a build tree without # installing it. -HYPRCOSMIC_SESSION_BIN="${HYPRCOSMIC_SESSION_BIN:-/usr/bin/cosmic-session}" -HYPRCOSMIC_COMP_BIN="${HYPRCOSMIC_COMP_BIN:-/usr/bin/cosmic-comp}" +HYPRCOSMIC_SESSION_BIN="${HYPRCOSMIC_SESSION_BIN:-/usr/bin/hyprcosmic-session}" +HYPRCOSMIC_COMP_BIN="${HYPRCOSMIC_COMP_BIN:-/usr/bin/hyprcosmic-comp}" if [[ ! -x "$HYPRCOSMIC_SESSION_BIN" ]]; then echo "start-hyprcosmic: $HYPRCOSMIC_SESSION_BIN is missing or not executable" >&2