mirror of
https://github.com/outbackdingo/hyprcosmic.git
synced 2026-08-25 14:53:21 +00:00
The packages could not be installed. Claiming the cosmic-* names put 62 files in conflict with 25 distribution packages -- something dnf's depsolve never reports, because it shows up only in rpm's transaction check -- and the only way to satisfy that was Conflicts against all 25, which erases cosmic-greeter. On a stock Fedora COSMIC that is the display manager, so the machine comes back to a text console with no way to log in and no session to fall back to. So the fork ships what it actually forks. The three changed binaries take hyprcosmic-comp, hyprcosmic-session and hyprcosmic-conf, the workflow reduces the staged tree to those plus this fork's own assets, and cosmic-settings, the portal, the OSD and the rest come from the distribution at the version it tested them at. No Conflicts, no Provides, nothing erased, and the stock COSMIC entry stays on the greeter's menu to fall back to. Debian is the exception and keeps the whole desktop, because COSMIC is not packaged there in any suite: there is nothing to depend on and nothing to install beside. Its stock session entry is dropped instead, since start-cosmic execs the cosmic-session this rename takes away.
97 lines
5.0 KiB
Plaintext
97 lines
5.0 KiB
Plaintext
# Programs the HyprCosmic session starts after COSMIC's own components.
|
|
#
|
|
# Installed to ~/.config/hyprcosmic/autostart and read by cosmic-session's
|
|
# profile module. One command per line. Arguments and quoting work, but this is
|
|
# NOT a shell: no $VAR, no ~, no globs, no $(...). Paths must be absolute.
|
|
#
|
|
# `#` starts a comment where a word would start, so `--color=#1a1b26` is fine
|
|
# but `--color #1a1b26` is not; quote it as '#1a1b26' if you need the latter.
|
|
|
|
# Keep cosmic-config in step with cosmic.conf for the whole session: compile
|
|
# once at login, then again on every edit to it or to anything it sources.
|
|
#
|
|
# First in the file because its startup pass is what makes "the file wins" true
|
|
# at login rather than only when you last ran `apply` by hand -- whatever
|
|
# COSMIC's settings UI stored since then is overwritten before the desktop
|
|
# settles. The bar does not read cosmic-config, so the ordering is for the
|
|
# compositor's benefit, not waybar's.
|
|
#
|
|
# No --config: the default is derived from XDG_CONFIG_HOME (or HOME) inside the
|
|
# process, so unlike the waybar line below this needs no shell to find a home
|
|
# directory for it.
|
|
#
|
|
# A malformed edit is not fatal. It is reported to the session log and the last
|
|
# good configuration stays in place, so a typo cannot leave you at a broken
|
|
# desktop -- fix the file and the next save applies.
|
|
hyprcosmic-conf watch
|
|
|
|
# The bar. The layout is shared and lives under /usr/share, but the stylesheet
|
|
# has to be per-user: it imports a sibling theme.css holding the installed HyDE
|
|
# theme's palette, and a relative @import resolves against the importing file.
|
|
#
|
|
# So the style path has to name a home directory, and this file is not a shell:
|
|
# `~` and `$HOME` on a bare command line here are literal text, not expansions.
|
|
# `sh -c` is what gets them expanded, for the same reason and under the same
|
|
# terms as the wallpaper line below -- naming `sh` is naming a program, which
|
|
# this file was always allowed to do.
|
|
#
|
|
# `exec` matters. Without it sh stays in the process tree as waybar's parent,
|
|
# and cosmic-session would be supervising the shell rather than the bar: a
|
|
# waybar that died would leave sh alive, so the restart that should have
|
|
# happened never would.
|
|
sh -c 'exec waybar -c /usr/share/hyprcosmic/waybar/config.jsonc -s "$HOME/.config/hyprcosmic/waybar/style.css"'
|
|
|
|
# rofi is not a daemon. It is launched on demand by a keybinding, which COSMIC
|
|
# stores in com.system76.CosmicSettings.Shortcuts rather than here. Set those
|
|
# with `bind` lines in cosmic.conf and `cosmic-conf apply`; see config/cosmic.conf.
|
|
|
|
# Wallpaper. The hyprcosmic profile does not start cosmic-bg, so without this
|
|
# there is nothing drawing a background at all.
|
|
#
|
|
# HyDE calls this swww; upstream renamed it to awww at 0.12 and the Fedora
|
|
# package Obsoletes swww < 0.12.0. /usr/bin/swww is a shim that prints a
|
|
# deprecation warning and is documented as going away, so use the real name.
|
|
# Packaged in the alebastr/sway-extras COPR.
|
|
#
|
|
# The daemon only holds the surface -- it shows nothing until an image is set.
|
|
awww-daemon
|
|
|
|
# ...which is what this does. Without it the daemon runs, draws nothing, and you
|
|
# get a blank screen below the bar with no error anywhere: the failure is that
|
|
# nobody asked for a wallpaper, so nothing reports one missing.
|
|
#
|
|
# `sh -c` rather than a bare `awww img`, for one reason: awww-daemon above has
|
|
# only just been forked and is not listening yet, so an immediate `awww img`
|
|
# loses a race and fails silently. The loop waits for the daemon to answer
|
|
# before setting the image.
|
|
#
|
|
# This does not weaken the no-shell rule in the header. That rule exists so a
|
|
# file naming programs cannot be escalated into arbitrary execution; naming
|
|
# `sh` explicitly is just naming a program, and anyone able to write this file
|
|
# could already name any binary on the system.
|
|
#
|
|
# `current` is a symlink `cosmic-conf import-theme --assets` maintains beside
|
|
# the wallpapers it copies, pointing at one of them. It is named here rather
|
|
# than a real file so that this line and rofi's local.rasi -- which shows the
|
|
# same image in the launcher's sidebar -- cannot drift apart, and so that
|
|
# importing a different theme does not leave this pointing at a path that no
|
|
# longer exists.
|
|
#
|
|
# Change the wallpaper by repointing the link, not by editing this file:
|
|
#
|
|
# ln -sfn ~/".local/share/wallpapers/hyprcosmic/<theme>/<image>" \
|
|
# ~/.local/share/wallpapers/hyprcosmic/current
|
|
sh -c 'until awww query >/dev/null 2>&1; do sleep 0.2; done; exec awww img "$HOME/.local/share/wallpapers/hyprcosmic/current"'
|
|
|
|
# A terminal, unconditionally, as the way back in.
|
|
#
|
|
# Everything above assumes the keybindings work. If they do not -- a bad
|
|
# `bind` line, a shortcut COSMIC declines to register, a compositor that came
|
|
# up without input -- then there is no way to launch rofi, no way to launch a
|
|
# terminal, and the only remaining option is a VT switch. Starting one terminal
|
|
# at login costs a window you can close and removes that entire failure class.
|
|
#
|
|
# Last in the file so it is the most recently mapped window, and therefore on
|
|
# top of anything else that opened during startup.
|
|
cosmic-term
|