From 81bdf5a7733640dba09575aa716ee848d4fde6cd Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Wed, 7 Oct 2026 09:48:18 +0200 Subject: feat: per-screen wallpaper Each greeter window reads background_ and falls back to the shared background. udt-accent writes the per-screen keys from wallp's state, so the login screens match the desktop. Co-Authored-By: Claude Opus 5.5 --- theme/Main.qml | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'theme/Main.qml') diff --git a/theme/Main.qml b/theme/Main.qml index 05f0aec..5512b3e 100644 --- a/theme/Main.qml +++ b/theme/Main.qml @@ -3,9 +3,9 @@ // // UDT SDDM greeter. SDDM creates one window per screen, each sized to its own // screen and carrying a one-row ScreenModel, so this root item is exactly one -// screen. The wallpaper fills it; the login panel draws only on the screen -// named by config uiScreen, else on the primary screen. Input wakes the panel -// after it fades. +// screen. Its own wallpaper, else the shared one, fills it; the login panel +// draws only on the screen named by config uiScreen, else on the primary +// screen. Input wakes the panel after it fades. import QtQuick import "components" @@ -22,10 +22,13 @@ Item { // Palette. Values come from theme.conf, overridden live by theme.conf.user. readonly property string baseColor: config.stringValue("base") + // This screen's own wallpaper (background_, written by + // udt-accent from wallp's state) when set, else the shared background. + readonly property string wallpaperPath: + config.stringValue("background_" + thisScreenName) + || config.stringValue("background") readonly property string wallpaperUrl: - config.stringValue("background") === "" - ? "" - : "file://" + config.stringValue("background") + wallpaperPath === "" ? "" : "file://" + wallpaperPath // The screen the panel belongs on: config uiScreen if non-empty, else the // primary screen. `primaryScreen` is a per-window context property SDDM -- cgit v1.2.3