93 lines
2.4 KiB
QML
93 lines
2.4 KiB
QML
import "root:/services"
|
|
import "root:/config"
|
|
import "root:/modules/osd" as Osd
|
|
import "root:/modules/notifications" as Notifications
|
|
import "root:/modules/session" as Session
|
|
import "root:/modules/launcher" as Launcher
|
|
import "root:/modules/dashboard" as Dashboard
|
|
import "root:/modules/bar/popouts" as BarPopouts
|
|
import Quickshell
|
|
import QtQuick
|
|
|
|
Item {
|
|
id: root
|
|
|
|
required property ShellScreen screen
|
|
required property PersistentProperties visibilities
|
|
required property Item bar
|
|
|
|
readonly property Osd.Wrapper osd: osd
|
|
readonly property Notifications.Wrapper notifications: notifications
|
|
readonly property Session.Wrapper session: session
|
|
readonly property Launcher.Wrapper launcher: launcher
|
|
readonly property Dashboard.Wrapper dashboard: dashboard
|
|
readonly property BarPopouts.Wrapper popouts: popouts
|
|
|
|
anchors.fill: parent
|
|
anchors.margins: BorderConfig.thickness
|
|
anchors.leftMargin: bar.implicitWidth
|
|
|
|
Component.onCompleted: Visibilities.panels[screen] = this
|
|
|
|
Osd.Wrapper {
|
|
id: osd
|
|
|
|
clip: root.visibilities.session
|
|
screen: root.screen
|
|
visibility: root.visibilities.osd
|
|
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
anchors.right: parent.right
|
|
anchors.rightMargin: session.width
|
|
}
|
|
|
|
Notifications.Wrapper {
|
|
id: notifications
|
|
|
|
anchors.top: parent.top
|
|
anchors.right: parent.right
|
|
}
|
|
|
|
Session.Wrapper {
|
|
id: session
|
|
|
|
visibilities: root.visibilities
|
|
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
anchors.right: parent.right
|
|
}
|
|
|
|
Launcher.Wrapper {
|
|
id: launcher
|
|
|
|
visibilities: root.visibilities
|
|
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
anchors.bottom: parent.bottom
|
|
}
|
|
|
|
Dashboard.Wrapper {
|
|
id: dashboard
|
|
|
|
visibilities: root.visibilities
|
|
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
anchors.top: parent.top
|
|
}
|
|
|
|
BarPopouts.Wrapper {
|
|
id: popouts
|
|
|
|
screen: root.screen
|
|
|
|
anchors.left: parent.left
|
|
anchors.verticalCenter: parent.top
|
|
anchors.verticalCenterOffset: {
|
|
const off = root.popouts.currentCenter - BorderConfig.thickness;
|
|
const diff = root.height - Math.floor(off + implicitHeight / 2);
|
|
if (diff < 0)
|
|
return off + diff;
|
|
return off;
|
|
}
|
|
}
|
|
}
|