feat(hyprdrive): give vicinae its own "cosmonaut" holographic theme

hyprdrive's vicinae used to ship the exact same "cyberqueer" theme as
hyprlua/hyprland. Vicinae's theme format is colors-only (no border-radius/
box-shadow/blur/animation hooks), so it can't reproduce the Cosmonaut Shell
suite's live Cairo-drawn scanline/sweep/noise overlay — but it can reuse the
same static palette that overlay sits on top of: emitted-magenta text
(#EB00A6), glow-violet borders (#8A5CFF), a near-black-violet background, and
translucent violet-glass secondary surfaces, matching orbit-menu/astro-menu/
station-bar/transmitter-panel/supersonic-booster's look.

Replaces desktopenvs/hyprdrive/vicinae/cyberqueer.toml with cosmonaut.toml,
repoints settings.json and hyprdrive.sh's install step at it, and adds a
second apply-theme.sh entry so live colors.conf edits keep syncing it
(alongside the fix for the pre-existing hyprlua/hyprland entry, which was
pointing at the inert ~/.config/vicinae/ copy instead of the
~/.local/share/vicinae/themes/ file vicinae actually reads).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TkkH9eiCBfpWysUXAD9bDG
main
Amir Alexander Abdelbaki 2026-07-29 16:21:51 +02:00
parent 516adeb5ae
commit ad386f3c89
5 changed files with 106 additions and 85 deletions

View File

@ -49,7 +49,18 @@ USER_FILES=(
"desktopenvs/hyprdrive/station-bar/style/_colors.css|$HOME/.config/station-bar/style/_colors.css"
"desktopenvs/hyprdrive/supersonic-booster/style/_colors.css|$HOME/.config/supersonic-booster/style/_colors.css"
"desktopenvs/hyprlua/audio-panel/style/_colors.css|$HOME/.config/audio-panel/style/_colors.css"
"desktopenvs/hyprland/vicinae/cyberqueer.toml|$HOME/.config/vicinae/cyberqueer.toml"
# Vicinae loads named custom themes from ~/.local/share/vicinae/themes/*.toml,
# NOT from ~/.config/vicinae/ (see the matching comment in hyprland.sh/
# hyprdrive.sh/hyprlua.sh's install steps, which cp the theme there once at
# install time) — this used to point at the inert ~/.config/ copy, so
# re-running apply-theme.sh after editing colors.conf never actually
# updated the theme vicinae reads. hyprdrive deploys its own "cosmonaut"
# theme file instead of hyprlua/hyprland's shared "cyberqueer" (see
# desktopenvs/hyprdrive/vicinae/cosmonaut.toml) — only whichever one is
# actually installed on this machine will exist, the other entry is a
# harmless no-op (do_replace skips missing deployed files).
"desktopenvs/hyprland/vicinae/cyberqueer.toml|$HOME/.local/share/vicinae/themes/cyberqueer.toml"
"desktopenvs/hyprdrive/vicinae/cosmonaut.toml|$HOME/.local/share/vicinae/themes/cosmonaut.toml"
"desktopenvs/hyprland/scripts/onscreenkb.sh|$HOME/.config/scripts/onscreenkb.sh"
"desktopenvs/hyprland/spicetify/Themes/cli-cyberqueer/color.ini|$HOME/.config/spicetify/Themes/cli-cyberqueer/color.ini"
"desktopenvs/hyprland/spicetify/Themes/matte-cyberqueer/color.ini|$HOME/.config/spicetify/Themes/matte-cyberqueer/color.ini"

View File

@ -0,0 +1,88 @@
# Cosmonaut Shell's holographic palette for Vicinae — hyprdrive's own theme,
# distinct from hyprlua/hyprland's plain "cyberqueer". Same CyberQueer core
# hues, restyled with the glow-violet border (#8A5CFF) and emitted-magenta
# text (#EB00A6) the rest of the Cosmonaut Shell suite uses (orbit-menu,
# astro-menu, station-bar, transmitter-panel, supersonic-booster, ...).
#
# Vicinae's theme format is colors-only — no border-radius/box-shadow/blur
# or animation hooks — so this can't reproduce the suite's live Cairo-drawn
# scanline/sweep/noise overlay (see hyprdrive's lib/hologram.py). What it CAN
# do: the same glass/glow *palette* those overlays sit on top of, so Vicinae
# reads as one more orbit of the same look even without the live effect.
#
# Check out the full documentation at https://docs.vicinae.com/theming/getting-started
[meta]
name = "cosmonaut"
description = "Cosmonaut Shell holographic palette (hyprdrive)"
variant = "dark" # "dark" | "light": impacts what icon to show in some circumstances
[colors.core]
accent = "#E40046"
accent_foreground = "#1A1A1A"
background = "#140B28"
foreground = "#EB00A6"
secondary_background = "#665018DD"
border = "#8A5CFF"
[colors.main_window]
border = "#8A5CFF"
footer = { background = "colors.core.secondary_background" }
[colors.settings_window]
border = "#8A5CFF"
[colors.accents]
blue = "#8A5CFF"
green = "#3a9c61"
magenta = "#EB00A6"
orange = "#f0883e"
red = "#F50505"
yellow = "#bfae78"
cyan = "#18a5b3"
purple = "#5018DD"
# For now, shortcuts cannot have their own dedicated background
[colors.shortcut]
border = "colors.core.border"
[colors.text]
default = "colors.core.foreground"
muted = "#D6ABAB"
danger = "#F50505"
success = "#E40046"
placeholder = "#D6ABAB"
selection = { background = "#E40046", foreground = "#1A1A1A" }
[colors.text.links]
default = "#E40046"
visited = "#8A5CFF"
[colors.input]
border = "#8A5CFF"
border_focus = "#E40046"
border_error = "#F50505"
[colors.button.primary]
background = "#5018DD"
foreground = "#EB00A6"
hover = { background = "#bb8A5CFF" }
focus = { outline = "colors.core.accent" }
[colors.list.item.selection]
background = "#8A5CFF"
foreground = "#1A1A1A"
secondary_background = "#8A5CFF"
secondary_foreground = "#1A1A1A"
[colors.grid.item]
background = "#3A1650"
hover = { outline = "#EB00A6" }
selection = { outline = "#8A5CFF" }
[colors.scrollbars]
background = "#5018DD"
[colors.loading]
bar = "#EB00A6" # shown right below the search bar when something is loading
spinner = "#EB00A6" # used by dynamic toasts

View File

@ -1,80 +0,0 @@
# This file demonstrates all available theme configuration options for Vicinae.
# You don't need to define all of these: only override what you want to customize.
# Undefined colors will be automatically derived from core colors or inherited from base themes.
#
# Check out the full documentation at https://docs.vicinae.com/theming/getting-started
[meta]
name = "cyberqueer"
description = "Default Vicinae dark palette"
variant = "dark" # "dark" | "light": impacts what icon to show in some circumstances
[colors.core]
accent = "#E40046"
accent_foreground = "#D6ABAB"
background = "#1a1a1a"
foreground = "#D6ABAB"
secondary_background = "#4F1A2F"
border = "#5018DD"
[colors.main_window]
border = "#5018DD"
footer = { background = "colors.core.secondary_background" }
[colors.settings_window]
border = "#5018DD"
[colors.accents]
blue = "#E40046"
green = "#3a9c61"
magenta = "#bc8cff"
orange = "#f0883e"
red = "#F50505"
yellow = "#bfae78"
cyan = "#18a5b3"
purple = "#bc8cff"
# For now, shortcuts cannot have their own dedicated background
[colors.shortcut]
border = "colors.core.border"
[colors.text]
default = "colors.core.foreground"
muted = "#D6ABAB"
danger = "#F50505"
success = "#E40046"
placeholder = "#D6ABAB"
selection = { background = "#E40046", foreground = "#D6ABAB" }
[colors.text.links]
default = "#E40046"
visited = "#5018DD"
[colors.input]
border = "#5018DD"
border_focus = "#E40046"
border_error = "#F50505"
[colors.button.primary]
background = "#5018DD"
foreground = "#D6ABAB"
hover = { background = "#bb5018DD" }
focus = { outline = "colors.core.accent" }
[colors.list.item.selection]
background = "#5018DD"
foreground = "#D6ABAB"
secondary_background = "#5018DD"
secondary_foreground = "#D6ABAB"
[colors.grid.item]
background = "#4F1A4F"
hover = { outline = "#D6ABAB" }
selection = { outline = "#D6ABAB" }
[colors.scrollbars]
background = "#5018DD"
[colors.loading]
bar = "#D6ABAB" # shown right below the search bar when something is loading
spinner = "#D6ABAB" # used by dynamic toasts

View File

@ -31,7 +31,7 @@
"icon_theme": "auto"
},
"dark": {
"name": "cyberqueer",
"name": "cosmonaut",
"icon_theme": "auto"
}
},

View File

@ -241,10 +241,12 @@ for cfg in "${CONFIGS[@]}"; do
done
# Vicinae loads NAMED custom themes from ~/.local/share/vicinae/themes/*.toml —
# see hyprlua.sh for the same note.
# see hyprlua.sh for the same note. hyprdrive gets its own "cosmonaut" theme
# (glow-violet borders, emitted-magenta text) instead of hyprlua/hyprland's
# plain "cyberqueer", matching the rest of the Cosmonaut Shell suite's look.
mkdir -p ~/.local/share/vicinae/themes
cp -f ~/Dotfiles/desktopenvs/hyprdrive/vicinae/cyberqueer.toml \
~/.local/share/vicinae/themes/cyberqueer.toml
cp -f ~/Dotfiles/desktopenvs/hyprdrive/vicinae/cosmonaut.toml \
~/.local/share/vicinae/themes/cosmonaut.toml
# Device-specific overrides live in hypr/usr/ (bundled inside hypr/ above).