mirror of
https://github.com/outbackdingo/hyprcosmic.git
synced 2026-08-25 14:53:21 +00:00
The line named a wallpaper inside the theme directory directly, so importing a different theme left it pointing at a path that no longer existed -- a blank screen at the next login, with nothing in the log to say why, because nobody asked for a wallpaper and so nothing reported one missing. It now names ~/.local/share/wallpapers/hyprcosmic/current, the symlink `import-theme --assets` maintains. rofi's local.rasi shows the same image in the launcher sidebar and names the same link, so the two cannot drift. Changing the wallpaper is now `ln -sfn`, not an edit to this file, which the comment says so that the next person does not undo the indirection. The path stays literal. This file is not a shell -- deliberately, so that a file naming programs cannot be escalated into arbitrary execution -- so `~` and `$HOME` would be passed through as text.
89 lines
4.6 KiB
Plaintext
89 lines
4.6 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 hardcoded home path.
|
|
#
|
|
# 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.
|
|
cosmic-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.
|
|
#
|
|
# The style path below is therefore absolute and contains a home directory.
|
|
# This file is not a shell, so `~` and `$HOME` are literal text here -- replace
|
|
# the path with your own if you are copying this template.
|
|
waybar -c /usr/share/hyprcosmic/waybar/config.jsonc -s /home/dingo/.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/dingo/.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
|