nova-shell/shell/shell.qml
2026-04-27 23:30:23 +02:00

87 lines
2.2 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 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: (Modules.notifications.maxPopups ?? 4) > 0
NotifPopup {
screen: scope.modelData
}
}
LazyLoader {
active: Modules.backgroundOverlay.enable
BackgroundOverlay {
screen: scope.modelData
}
}
LazyLoader {
active: Modules.overviewBackdrop.enable && NiriIpc.available
OverviewBackdrop {
screen: scope.modelData
}
}
LazyLoader {
active: Modules.lock.enable && (Modules.lock.screenshot ?? true)
ScreenCapture {
screen: scope.modelData
}
}
LazyLoader {
active: Modules.screenCorners.enable
ScreenCorners {
screen: scope.modelData
}
}
LazyLoader {
active: Modules.dock.enable && scope._isRightmost
Dock.AppletDock {
screen: scope.modelData
}
}
LazyLoader {
active: Modules.dock.enable && scope._isRightmost
Dock.DockEdgeTrigger {
screen: scope.modelData
}
}
}
}
}