Commit Graph
3 Commits
Author SHA1 Message Date
gitops 73867a5d6a Install as the session, at upstream's paths
Eight files: upstream's six, where upstream puts them, plus this fork's
start-hyprcosmic and hyprcosmic.desktop. Replaces the private libexec
prefix, matching the same change in cosmic-comp.

A machine that installs this gets its cosmic-session from here, so there
is nothing else on disk to provide the systemd target, the mimeapps list
or the dconf profile. Omitting them produced a session that started and
then had no user target for the portals to attach to, which surfaces much
later and much less clearly than a missing file.

Both session entries are installed and both are served by these binaries.
Replacing COSMIC need not mean removing its shell, and keeping
cosmic.desktop costs one file while preserving the one property worth
keeping from the beside-install layout: if the HyDE shell will not start,
there is still something on the greeter's menu that will.

start-hyprcosmic now names /usr/bin for both binaries, still through
overridable variables so the check below it can say which path was
missing and so the session still runs out of a build tree.

The dconf asymmetry is deliberate and now asserted in CI, because it is
easy to get backwards once both scripts are installed: start-cosmic is
sed'd to an absolute profile path, as upstream does; start-hyprcosmic is
not, because it searches /etc/dconf/profile and XDG_DATA_DIRS at runtime
and pinning a build prefix would break an administrator's override.
2026-08-10 18:21:42 +07:00
gitops b22fe1687d Install the fork's own three files, not upstream's seven
`just install` still wrote the stock session: /usr/bin/cosmic-session, the
cosmic.desktop entry, the systemd target, the mimeapps list and the dconf
profile. Every one of those is a file the distro's cosmic-session package
already owns, so running it replaced a working COSMIC install with this fork
and left no session to log into if the fork failed to start. What HyprCosmic
has actually been installing, by hand, is three files; this teaches the recipe
that.

The binary moves to $prefix/libexec/hyprcosmic for the reason the compositor
did in Patch D: the stock session has to keep working, because it is what you
use to fix this one. cosmic.desktop is replaced by hyprcosmic.desktop, which
adds a second entry to the greeter's menu rather than overwriting the first.

The four dropped files are not things this fork changes, and a HyprCosmic
session needs stock COSMIC present anyway -- the greeter, the portals and the
settings daemon all come from it -- so reading that package's copies costs
nothing and avoids a packaging conflict over files we have no opinion about.

Upstream's `sed` over DCONF_PROFILE is deliberately not carried across.
start-hyprcosmic searches /etc/dconf/profile and then XDG_DATA_DIRS and exports
the bare profile name only if it finds one; rewriting a prefix into it would
pin one location and defeat an administrator's /etc override. The script
already explains this at the point where it does the search.

Verified by staging into a rootdir: all three files come out byte-identical to
the copies currently installed on this machine, and install-assets.sh --check
still reports all 9 managed files matching.
2026-08-10 16:41:05 +07:00
d 78d361446d Fork of pop-os/cosmic-session @ upstream 2026-08-10 08:00:21 +07:00