The square markers, block meters and hard-cornered fills read as boxy next to the porthole. The desktop is now soft throughout: the porthole is the shape everything is built around and every smaller surface echoes it. - Theme gains radiusS / radiusM / radiusL. radiusL is frameRadius - padS, so anything inset padS inside one of the frame's curves is concentric with it. - P5Panel and Skew draw rounded rectangles (Geom.roundedRect) whenever they neither lean nor are chopped, which is always now; the polygon path is kept for shapes brought back on purpose. - Markers are dots; workspace pips, toggles, transport and media chips, notification actions and today's date are pills or discs; the slider handle is round. Meters are one continuous rounded line that glides to its level instead of a row of segments. - Album art is rounded with ClippingRectangle in the bar, the media popout and the dashboard. - Free-standing panels (launcher, ask) drop the corner brackets and take the frame radius. - Fix: a hovered notification's wash was a full-bleed square, so in the drawer's bottom corner it ran past the drawer's curve. It is inset by padS/2 and rounded by radiusL, which keeps it inside the curve. Hyprland: the discord special workspace and its window rule are gone, SUPER+S stays the only scratchpad, and SUPER+D now opens the dashboard (it was on SUPER+I). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
33 lines
1.3 KiB
QML
33 lines
1.3 KiB
QML
import QtQuick
|
|
import "root:/config"
|
|
import "root:/components"
|
|
|
|
// The slab every popout sits on. Pure preset — it declares no children of its
|
|
// own, so P5Panel's default content property stays usable by callers.
|
|
P5Panel {
|
|
property color tone: Theme.primary
|
|
property bool textured: false
|
|
|
|
// Inside a Popout the panel is part of the hull, which paints the fill
|
|
// and the rim itself; the surface only lays out the content. Elsewhere —
|
|
// the launcher, the ask panel — it is a free-standing panel of its own.
|
|
readonly property bool attached: parent?.frameAttached ?? false
|
|
|
|
fill: attached ? "transparent" : Theme.mantle
|
|
// Zero, not a transparent fill: P5Panel re-applies this opacity to the
|
|
// fill colour, which turned "transparent" into 97% black.
|
|
fillOpacity: attached ? 0 : 0.97
|
|
// The frame is structure: a neutral hairline. A free-standing panel takes
|
|
// the frame's own corner radius, so it reads as a piece of the hull set
|
|
// down somewhere else rather than as a hard card.
|
|
border: Theme.surfaceAlt
|
|
borderWidth: attached ? 0 : Theme.stroke
|
|
halftone: textured
|
|
halftoneColor: tone
|
|
halftoneOpacity: 0.06
|
|
ticks: false
|
|
radius: Theme.frameRadius
|
|
tickColor: tone
|
|
padding: Theme.padM
|
|
}
|