- Vertical bar on DP-2 with rounded-square pills throughout - Per-monitor workspace groups sorted by screen x position, with Nerd Font icons for named workspaces and apex-neon red active indicator - Bar layout: datetime+weather top, workspaces centered, gamemode+media+notif+system bottom - Popouts anchor to triggering icon (top-right for datetime/weather, bottom-right for media/notif/system) - Lock command switched from hyprlock to swaylock - Hyprland blur/ignore_alpha layerrules for quickshell namespace Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
125 lines
5.7 KiB
QML
125 lines
5.7 KiB
QML
pragma Singleton
|
|
|
|
import Quickshell
|
|
import QtQuick
|
|
|
|
Singleton {
|
|
// ─── Apex palettes ───────────────────────
|
|
readonly property var palettes: ({
|
|
neon: {
|
|
// Backgrounds
|
|
base: "#050505", mantle: "#0a0a0a", crust: "#000000",
|
|
surface0: "#141414", surface1: "#1e1e1e", surface2: "#262626",
|
|
overlay0: "#404040", overlay1: "#555555",
|
|
// Text
|
|
text: "#ededed", subtext0: "#b0b0b0", subtext1: "#d0d0d0",
|
|
// Accent colors — apex-neon palette
|
|
lavender: "#9d00ff", // sacred purple
|
|
mauve: "#9d00ff", // sacred purple
|
|
pink: "#ff0044", // razor red
|
|
red: "#ff0044", // razor red
|
|
peach: "#ff8899", // alert salmon
|
|
yellow: "#ffb700", // amber warning
|
|
green: "#00ff99", // toxic green
|
|
teal: "#00ff99", // toxic green
|
|
blue: "#00eaff", // tech cyan
|
|
sky: "#00eaff" // tech cyan
|
|
},
|
|
aeon: {
|
|
// Backgrounds
|
|
base: "#f5f5f5", mantle: "#e8e8e8", crust: "#d0d0d0",
|
|
surface0: "#e0e0e0", surface1: "#d4d4d4", surface2: "#c8c8c8",
|
|
overlay0: "#737373", overlay1: "#555555",
|
|
// Text
|
|
text: "#0a0a0a", subtext0: "#444444", subtext1: "#333333",
|
|
// Accent colors — apex-aeon palette
|
|
lavender: "#7a3cff", // indigo purple
|
|
mauve: "#7a3cff", // indigo purple
|
|
pink: "#ff0044", // razor red
|
|
red: "#ff0044", // razor red
|
|
peach: "#ff4d6d", // rose error
|
|
yellow: "#d18f00", // dark amber
|
|
green: "#00b377", // forest green
|
|
teal: "#00b377", // forest green
|
|
blue: "#007a88", // deep teal
|
|
sky: "#007a88" // deep teal
|
|
}
|
|
})
|
|
|
|
readonly property var p: palettes[Config.apexFlavor] || palettes.neon
|
|
|
|
// ─── Palette colors ──────────────────────
|
|
readonly property color base: p.base
|
|
readonly property color mantle: p.mantle
|
|
readonly property color crust: p.crust
|
|
readonly property color surface0: p.surface0
|
|
readonly property color surface1: p.surface1
|
|
readonly property color surface2: p.surface2
|
|
readonly property color overlay0: p.overlay0
|
|
readonly property color text: p.text
|
|
readonly property color subtext0: p.subtext0
|
|
readonly property color subtext1: p.subtext1
|
|
readonly property color lavender: p.lavender
|
|
readonly property color mauve: p.mauve
|
|
readonly property color pink: p.pink
|
|
readonly property color red: p.red
|
|
readonly property color peach: p.peach
|
|
readonly property color yellow: p.yellow
|
|
readonly property color green: p.green
|
|
readonly property color teal: p.teal
|
|
readonly property color blue: p.blue
|
|
readonly property color sky: p.sky
|
|
|
|
// ─── Semantic aliases ────────────────────
|
|
readonly property color accent: blue // tech cyan / deep teal
|
|
readonly property color success: green // toxic / forest
|
|
readonly property color warning: yellow // amber
|
|
readonly property color danger: red // razor red
|
|
readonly property color info: sky // cyan / teal
|
|
readonly property color muted: overlay0 // dim grey
|
|
|
|
// ─── Opacity tokens ──────────────────────
|
|
readonly property real opacitySubtle: 0.08 // borders, faint dividers
|
|
readonly property real opacityLight: 0.15 // tinted backgrounds
|
|
readonly property real opacityMedium: 0.3 // active borders, overlays
|
|
readonly property real opacityStrong: 0.45 // muted/disabled elements
|
|
readonly property real opacityFill: 0.7 // progress bar fills
|
|
|
|
// ─── Border token ────────────────────────
|
|
readonly property bool isDark: Config.apexFlavor === "neon"
|
|
readonly property color borderSubtle: isDark ? Qt.rgba(1, 1, 1, opacitySubtle) : Qt.rgba(0, 0, 0, opacitySubtle)
|
|
|
|
// ─── Transparency ────────────────────────
|
|
readonly property bool transparencyEnabled: Config.transparency
|
|
readonly property color barBackground: transparencyEnabled ? Qt.alpha(mantle, 0.75) : mantle
|
|
readonly property color popoutBackground: transparencyEnabled ? Qt.alpha(mantle, 0.82) : mantle
|
|
|
|
// ─── Layout ──────────────────────────────
|
|
readonly property int barWidth: 52
|
|
readonly property int barInnerWidth: 40
|
|
readonly property int barPadding: 6
|
|
readonly property int spacing: 10
|
|
|
|
// Popouts
|
|
readonly property int popoutWidth: 320
|
|
readonly property int popoutPadding: 16
|
|
readonly property int popoutSpacing: 10
|
|
|
|
// Rounding
|
|
readonly property int radiusSmall: 8
|
|
readonly property int radiusNormal: 14
|
|
readonly property int radiusPill: 1000
|
|
|
|
// ─── Typography ──────────────────────────
|
|
readonly property int fontSmall: 11
|
|
readonly property int fontSize: 13
|
|
readonly property int fontLarge: 15
|
|
readonly property string fontFamily: "GeistMono Nerd Font"
|
|
readonly property string iconFont: "GeistMono Nerd Font"
|
|
|
|
// ─── Animation ───────────────────────────
|
|
readonly property int animFast: 150
|
|
readonly property int animNormal: 300
|
|
readonly property int animSlow: 500
|
|
}
|