nova-shell/shell/shell.qml

88 lines
2.3 KiB
QML

//@ pragma Env QS_NO_RELOAD_POPUP=1
//@ pragma AppId space.darkest.nova-shell
import "modules"
import "services"
import "dock" as Dock
import "lock" as Lock
import NovaStats as NS
import Quickshell
ShellRoot {
Lock.Lock {}
Variants {
model: Quickshell.screens
Scope {
id: scope
required property var modelData
readonly property bool _isRightmost: {
let maxX = -Infinity;
for (let i = 0; i < Quickshell.screens.length; i++) {
if (Quickshell.screens[i].x > maxX)
maxX = Quickshell.screens[i].x;
}
return scope.modelData.x >= maxX;
}
Bar {
screen: scope.modelData
}
Tooltip {
screen: scope.modelData
}
LazyLoader {
active: NS.ModulesService.notificationsMaxPopups > 0
NotifPopup {
screen: scope.modelData
}
}
LazyLoader {
active: NS.ModulesService.backgroundOverlayEnable
BackgroundOverlay {
screen: scope.modelData
}
}
LazyLoader {
active: NS.ModulesService.overviewBackdropEnable && NiriIpc.available
OverviewBackdrop {
screen: scope.modelData
}
}
LazyLoader {
active: NS.ModulesService.lockEnable && NS.ModulesService.lockScreenshot
ScreenCapture {
screen: scope.modelData
}
}
LazyLoader {
active: NS.ModulesService.screenCornersEnable
ScreenCorners {
screen: scope.modelData
}
}
LazyLoader {
active: NS.ModulesService.dockEnable && scope._isRightmost
Dock.AppletDock {
screen: scope.modelData
}
}
LazyLoader {
active: NS.ModulesService.dockEnable && scope._isRightmost
Dock.DockEdgeTrigger {
screen: scope.modelData
}
}
}
}
}