support multiple monitors for greeter

This commit is contained in:
2026-03-25 13:42:58 +01:00
parent 0fcbc4b8b1
commit be71172a37
2 changed files with 118 additions and 106 deletions
+1 -1
View File
@@ -85,7 +85,7 @@ Singleton {
} }
FileView { FileView {
path: `${Paths.state}/scheme.json` path: "/etc/zshell-greeter/scheme.json"
watchChanges: true watchChanges: true
onFileChanged: reload() onFileChanged: reload()
+18 -6
View File
@@ -8,13 +8,23 @@ import qs.Config
import qs.Helpers import qs.Helpers
import qs.Components import qs.Components
CustomWindow { Scope {
id: root id: root
required property var greeter required property var greeter
Variants {
model: Quickshell.screens
CustomWindow {
id: win
required property ShellScreen modelData
aboveWindows: true aboveWindows: true
focusable: true focusable: true
name: "Greeter"
screen: modelData
anchors { anchors {
bottom: true bottom: true
@@ -71,7 +81,7 @@ CustomWindow {
easing.bezierCurve: Appearance.anim.curves.expressiveDefaultSpatial easing.bezierCurve: Appearance.anim.curves.expressiveDefaultSpatial
property: "implicitWidth" property: "implicitWidth"
target: lockContent target: lockContent
to: (root.screen?.height ?? 0) * Config.lock.sizes.heightMult * Config.lock.sizes.ratio to: (win.screen?.height ?? 0) * Config.lock.sizes.heightMult * Config.lock.sizes.ratio
} }
Anim { Anim {
@@ -79,7 +89,7 @@ CustomWindow {
easing.bezierCurve: Appearance.anim.curves.expressiveDefaultSpatial easing.bezierCurve: Appearance.anim.curves.expressiveDefaultSpatial
property: "implicitHeight" property: "implicitHeight"
target: lockContent target: lockContent
to: (root.screen?.height ?? 0) * Config.lock.sizes.heightMult to: (win.screen?.height ?? 0) * Config.lock.sizes.heightMult
} }
} }
} }
@@ -133,11 +143,13 @@ CustomWindow {
anchors.centerIn: parent anchors.centerIn: parent
greeter: root.greeter greeter: root.greeter
height: (root.screen?.height ?? 0) * Config.lock.sizes.heightMult - Appearance.padding.large * 2 height: (win.screen?.height ?? 0) * Config.lock.sizes.heightMult - Appearance.padding.large * 2
opacity: 0 opacity: 0
scale: 0 scale: 0
screenHeight: root.screen?.height ?? 1440 screenHeight: win.screen?.height ?? 1440
width: (root.screen?.height ?? 0) * Config.lock.sizes.heightMult * Config.lock.sizes.ratio - Appearance.padding.large * 2 width: (win.screen?.height ?? 0) * Config.lock.sizes.heightMult * Config.lock.sizes.ratio - Appearance.padding.large * 2
}
}
} }
} }
} }