Border the lock input with the theme color4 like AGS
This commit is contained in:
@@ -16,6 +16,7 @@ Item {
|
||||
readonly property string userName: Quickshell.env("USER") || Quickshell.env("LOGNAME")
|
||||
readonly property string currentBackgroundLink: stateHome + "/omarchy/current/background"
|
||||
readonly property string brandingPath: home + "/.config/omarchy/branding/screensaver.txt"
|
||||
readonly property string currentThemePath: stateHome + "/omarchy/current/theme"
|
||||
|
||||
property bool lockRequested: false
|
||||
property bool pendingSessionLock: false
|
||||
@@ -31,6 +32,7 @@ Item {
|
||||
property string backgroundPath: ""
|
||||
property int backgroundVersion: 0
|
||||
property string brandingText: ""
|
||||
property string paletteColor4: ""
|
||||
property string lastEvent: "init"
|
||||
property string lastEventAt: ""
|
||||
property bool strandedLock: false
|
||||
@@ -273,6 +275,7 @@ Item {
|
||||
backgroundPath: root.backgroundPath
|
||||
backgroundVersion: root.backgroundVersion
|
||||
brandingText: root.brandingText
|
||||
paletteColor4: root.paletteColor4
|
||||
fingerprintConfigured: root.fingerprintConfigured
|
||||
authenticatingPassword: root.authenticatingPassword
|
||||
failureMessage: root.failureMessage
|
||||
@@ -304,6 +307,7 @@ Item {
|
||||
backgroundPath: root.backgroundPath
|
||||
backgroundVersion: root.backgroundVersion
|
||||
brandingText: root.brandingText
|
||||
paletteColor4: root.paletteColor4
|
||||
fingerprintConfigured: root.fingerprintConfigured
|
||||
authenticatingPassword: false
|
||||
failureMessage: ""
|
||||
@@ -485,6 +489,29 @@ Item {
|
||||
else armBlankTimer()
|
||||
}
|
||||
|
||||
// The Color singleton exposes only foreground, background, accent, urgent,
|
||||
// and muted, so the raw color4 slot the AGS stylesheet borders with has to
|
||||
// be read here. Same file and same shape Color itself parses; the current
|
||||
// theme directory is a real directory rewritten in place on every theme
|
||||
// change, so watching the file is enough to follow a theme switch.
|
||||
function readPaletteColor4(raw) {
|
||||
var lines = String(raw || "").split("\n")
|
||||
for (var i = 0; i < lines.length; i++) {
|
||||
var match = lines[i].match(/^\s*color4\s*=\s*["']?(#[0-9A-Fa-f]{6})/)
|
||||
if (match) return match[1]
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
FileView {
|
||||
path: root.currentThemePath + "/colors.toml"
|
||||
watchChanges: true
|
||||
printErrors: false
|
||||
onLoaded: root.paletteColor4 = root.readPaletteColor4(text())
|
||||
onLoadFailed: root.paletteColor4 = ""
|
||||
onFileChanged: reload()
|
||||
}
|
||||
|
||||
// The same file the screensaver paints. Watched so an edit through
|
||||
// `omarchy branding screensaver text` shows up on the next lock without a
|
||||
// shell restart. A missing file simply leaves the lock screen unbranded.
|
||||
|
||||
Reference in New Issue
Block a user