pragma ComponentBehavior: Bound import Quickshell import Quickshell.Hyprland import QtQuick import QtQuick.Layouts import qs.Components import qs.Modules import qs.Config import qs.Helpers import qs.Modules.SysTray import qs.Modules.SysTray.Widgets import qs.Modules.Network Item { id: root readonly property int clampedExtent: Math.max(Config.bar.border, extent) readonly property int contentThickness: Config.bar.height + padding * 2 readonly property int exclusiveZone: Config.bar.autoHide ? Config.bar.border : contentThickness property real extent: fullscreen ? 0 : Config.bar.border required property bool fullscreen readonly property bool horizontal: position !== "left" property bool isHovered readonly property int padding: Math.max(Appearance.padding.smaller, Config.bar.border) required property Wrapper popouts required property ClipWrapper popoutsWrapper required property string position required property ShellScreen screen readonly property bool shouldBeVisible: !fullscreen && (!Config.bar.autoHide || visibilities.bar || isHovered) readonly property int vPadding: 6 required property PersistentProperties visibilities function checkPopout(pos: real): void { (content.item as Bar)?.checkPopout(pos); } function entryAt(pos: real): string { return (content.item as Bar)?.entryAt(pos) ?? ""; } implicitHeight: extent implicitWidth: extent visible: extent > Config.bar.border states: State { name: "visible" when: root.shouldBeVisible PropertyChanges { root.extent: root.contentThickness } } transitions: [ Transition { from: "" to: "visible" Anim { duration: MaterialEasing.expressiveEffectsTime easing.bezierCurve: MaterialEasing.expressiveEffects property: "extent" target: root } }, Transition { from: "visible" to: "" Anim { duration: MaterialEasing.expressiveEffectsTime easing.bezierCurve: MaterialEasing.expressiveEffects property: "extent" target: root } } ] Loader { id: content active: root.shouldBeVisible || root.visible anchors.bottom: root.position !== "bottom" ? parent.bottom : undefined anchors.left: root.horizontal ? parent.left : undefined anchors.right: parent.right anchors.top: root.position !== "top" ? parent.top : undefined height: root.contentThickness width: root.contentThickness sourceComponent: Bar { fullscreen: root.fullscreen height: root.contentHeight horizontal: root.horizontal popouts: root.popouts popoutsWrapper: root.popoutsWrapper screen: root.screen visibilities: root.visibilities } } }