aboutsummaryrefslogtreecommitdiffstats
path: root/theme
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-10-07 09:48:18 +0200
committerDanilo M. <danix@danix.xyz>2026-10-07 09:48:18 +0200
commit81bdf5a7733640dba09575aa716ee848d4fde6cd (patch)
tree876e631dc4f4ebc22df7a94e180157c349aa2922 /theme
parent5c8f192b6e3fde2cdd35dbe7cd6c5f3f5c8e9d80 (diff)
downloadsddm-theme-udt-81bdf5a7733640dba09575aa716ee848d4fde6cd.tar.gz
sddm-theme-udt-81bdf5a7733640dba09575aa716ee848d4fde6cd.zip
feat: per-screen wallpaperHEADmaster
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.qml15
-rw-r--r--theme/theme.conf3
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