diff options
| author | Danilo M. <danix@danix.xyz> | 2026-10-07 09:48:18 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-10-07 09:48:18 +0200 |
| commit | 81bdf5a7733640dba09575aa716ee848d4fde6cd (patch) | |
| tree | 876e631dc4f4ebc22df7a94e180157c349aa2922 /theme | |
| parent | 5c8f192b6e3fde2cdd35dbe7cd6c5f3f5c8e9d80 (diff) | |
| download | sddm-theme-udt-81bdf5a7733640dba09575aa716ee848d4fde6cd.tar.gz sddm-theme-udt-81bdf5a7733640dba09575aa716ee848d4fde6cd.zip | |
Each greeter window reads background_<screen name> 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 <noreply@anthropic.com>
Diffstat (limited to 'theme')
| -rw-r--r-- | theme/Main.qml | 15 | ||||
| -rw-r--r-- | theme/theme.conf | 3 |
2 files changed, 12 insertions, 6 deletions
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_<screen name>, 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 diff --git a/theme/theme.conf b/theme/theme.conf index 24c647c..06e3af8 100644 --- a/theme/theme.conf +++ b/theme/theme.conf @@ -5,6 +5,9 @@ [General] type=image background= +# Per-screen wallpapers override background on the screen they name, e.g. +# background_DP-1=/path/wide.jpg. udt-accent writes these into theme.conf.user +# from wallp's outputs and saved wallpapers. base=#24273a mantle=#1e2030 |
