Build the Panama Hyprland desktop

This commit is contained in:
Gabriel Brown
2026-08-17 10:32:55 -04:00
parent 67033f2a31
commit 5248883e4b
190 changed files with 18554 additions and 34 deletions
@@ -0,0 +1,42 @@
// A column that grows to fit its contents up to `maxHeight`, then scrolls.
// Used by every detail list in the panel so they all overflow the same way.
import QtQuick
import qs.config
Item {
id: root
property int maxHeight: 300
property alias spacing: column.spacing
default property alias content: column.data
implicitHeight: Math.min(column.implicitHeight, root.maxHeight)
Flickable {
id: flick
anchors.fill: parent
contentHeight: column.implicitHeight
clip: true
boundsBehavior: Flickable.StopAtBounds
Column {
id: column
width: flick.width
spacing: 2
}
}
// Static indicator — no fade timers, nothing repainting while idle. It is
// only there so a clipped list doesn't look like the whole list.
Rectangle {
anchors.right: parent.right
width: 3
radius: 1.5
border.width: 0
color: Theme.alpha(Theme.fg, 0.25)
visible: flick.contentHeight > flick.height + 1
height: Math.max(24, flick.height * (flick.height / Math.max(1, flick.contentHeight)))
y: (flick.height - height) * (flick.contentY / Math.max(1, flick.contentHeight - flick.height))
}
}