A second shell chrome under dotfiles/quickshell/hyprchrome, built around a BarPanel that carries TWO renderings of its data: the default children are the expanded detail view, `summary` the terse one shown while collapsed. Both stay bound to the same sources, so the densities cannot disagree, and the panel cross-fades between them while its height animates. Panels: HostPanel (hostname, user, timezone, clock), VitalsPanel (CPU load and temperature, memory, GPU load and temperature, all metered), TrayPanel (system tray, self-sizing). HyprChromeBar pins them to DP-2 and owns `expanded` for the whole rail — SUPER A, via GlobalShortcut "chrome". GPU busy comes off sysfs rather than the node_exporter scrape VitalsData already does: the hwmon collector carries the card's temps, power and clocks but not its utilisation. The bar's height binds to each panel's `targetHeight` — where it will settle, not where the animation currently is — because the exclusive zone is window-sized by default, and binding to the animated height relayouts every tiled window on the output twelve times per toggle. The zone follows the target immediately so the desktop reflows once, at the start; the surface itself shrinks only after the panels finish, or it would clip them mid-animation. DebugWindow stages a widget in the middle of the secondary monitor (SUPER CTRL D), masked so only the staged widget takes pointer input. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HEtXvseVb5gwAtKNhFx2PU
62 lines
3.2 KiB
QML
62 lines
3.2 KiB
QML
pragma Singleton
|
|
|
|
import Quickshell
|
|
import QtQuick
|
|
|
|
// Single source of truth for the shell's palette and font families.
|
|
//
|
|
// The shell previously ran two unrelated palettes: an amber one (#FFD063) used
|
|
// by the launchers, sidebar, systray, vitals and notifications, and an orange
|
|
// one (#e8722a) that only the dense bar had, tokenized as per-file properties.
|
|
// This unifies on the ORANGE values under the AMBER naming scheme.
|
|
//
|
|
// `surface` deliberately takes the dense bar's void (#0a0a0a) rather than the
|
|
// old panel background (#0F1012), which also absorbs the near-identical
|
|
// #0A0A0C scrim.
|
|
Singleton {
|
|
// ---- core ----
|
|
readonly property color accent: "#e8722a" // was #FFD063 (amber) / #e8722a (bar)
|
|
readonly property color text: "#dedede" // was #EEEEEE / #dedede
|
|
readonly property color muted: "#858585" // was #7A7B7D / #858585
|
|
readonly property color surface: "#0a0a0a" // was #0F1012 + #0A0A0C + #0a0a0a
|
|
readonly property color hot: "#ff6b4a" // alert/hot; no bar equivalent, kept
|
|
|
|
// ---- supporting darks ----
|
|
// A three-step ramp above `surface`. `raised` also absorbs #22262C, which
|
|
// differed from #292C30 by an imperceptible amount across two call sites.
|
|
readonly property color selection: "#1a1c1f" // selected row fill
|
|
readonly property color raised: "#292c30" // raised surface / border
|
|
readonly property color disabled: "#3a3d42" // unknown / disabled stroke
|
|
|
|
// ---- accents ----
|
|
// The pale "flash" the top/bottom bars show while a launcher is open. Was a
|
|
// hand-picked #FFF3C0 against amber; derived here so it tracks `accent`.
|
|
// 55% toward white reproduces the original amber relationship closely
|
|
// (#FFD063 -> #FFE9B8 vs the hand-picked #FFF3C0).
|
|
readonly property color accentSoft: Qt.tint(accent, Qt.rgba(1, 1, 1, 0.55))
|
|
readonly property color highlight: "#ffffff"
|
|
|
|
// ---- fonts ----
|
|
// Two faces. `readoutFont` is an alias rather than a second literal so the
|
|
// two roles cannot silently drift apart; point it at a different family if
|
|
// the readouts should ever diverge from the headings again.
|
|
//
|
|
// Installed by services/desktop/desktop-apps.nix (nerd-fonts.departure-mono).
|
|
// The former readout face, Digital-7 Mono, was never packaged — it relied on
|
|
// a manual ~/.dots/fonts/digital_7 install, so dropping it also removes an
|
|
// undeclared external dependency.
|
|
readonly property string displayFont: "DepartureMono Nerd Font" // headings, large values
|
|
readonly property string readoutFont: displayFont // seven-segment readouts: launchers, sidebar, systray, vitals
|
|
readonly property string microFont: "DejaVu Sans Mono" // dense bar micro labels
|
|
|
|
// ---- derived alpha variants ----
|
|
// The dense bar hand-encoded these as Qt.rgba(0.87,0.87,0.87,a) = text and
|
|
// Qt.rgba(0.91,0.45,0.16,a) = accent. Expressed as functions so the
|
|
// relationship survives a palette change.
|
|
function textAlpha(a) { return Qt.rgba(text.r, text.g, text.b, a); }
|
|
function accentAlpha(a) { return Qt.rgba(accent.r, accent.g, accent.b, a); }
|
|
|
|
// Hairline rule / panel outline: text at 28%.
|
|
readonly property color hair: textAlpha(0.28)
|
|
}
|