https://bugs.kde.org/show_bug.cgi?id=527743

            Bug ID: 527743
           Summary: Login Screen KCM drops WallpaperPluginId from
                    /etc/plasmalogin.conf, so the chosen wallpaper is
                    ignored
    Classification: Plasma
           Product: plasma-login-manager
      Version First 6.8.1
       Reported In:
          Platform: CachyOS
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: general
          Assignee: [email protected]
          Reporter: [email protected]
                CC: [email protected], [email protected]
  Target Milestone: ---

DESCRIPTION

Saving a wallpaper in System Settings -> Login Screen (kcm_plasmalogin) removes
the WallpaperPluginId key from /etc/plasmalogin.conf. Without that key the
greeter cannot resolve a wallpaper plugin at all and shows the default
background. In addition, the Image= value that gets saved is sometimes the
previously configured wallpaper instead of the one just selected.

This only affects the login screen; the Screen Locking wallpaper page works
fine with the same image.

STEPS TO REPRODUCE
1. Set a working login wallpaper manually in /etc/plasmalogin.conf:

   [Greeter]
   WallpaperPluginId=org.kde.image

   [Greeter][Wallpaper][org.kde.image][General]
   Image=file:///var/lib/plasmalogin/wallpapers/mine.png

   mine.png is owned by plasmalogin:plasmalogin with mode 0644, and the login
screen shows it correctly.

2. Open System Settings -> Login Screen -> Configure Appearance, select any
image, click Apply and authenticate the polkit prompt.
3. Inspect /etc/plasmalogin.conf.

OBSERVED RESULT

- WallpaperPluginId=org.kde.image disappears from the [Greeter] group, so the
greeter falls back to the default background even though Image= points to a
perfectly readable file.
- Reproduced twice in a row: the Image= that was written was the previously
configured wallpaper, not the one selected in the KCM.
- The wallpaper page logs QML errors on every open/apply (see ADDITIONAL
INFORMATION); the KCM does not report any error to the user.
- The image file itself is copied correctly to /var/lib/plasmalogin/wallpapers/
with the right ownership and permissions, so a missing or unreadable file is
not the cause here.

EXPECTED RESULT

WallpaperPluginId is preserved when saving (it is required; cf. Arch Wiki
"Plasma Login Manager -> Custom wallpaper plugins"), and the image selected in
the KCM is the one that gets saved and displayed.

SOFTWARE/OS VERSIONS
Operating System: CachyOS Linux (Arch-based), kernel 6.18.55-2-cachyos-lts,
Wayland session, plasmalogin as display manager
KDE Plasma Version: 6.8.1
KDE Frameworks Version: 6.31.0
Qt Version: 6.12.0

ADDITIONAL INFORMATION

Packages: plasma-login-manager 6.8.1-1, plasma-workspace 6.8.1-1.1.

QML errors logged by systemsettings when opening/applying the wallpaper page:

qrc:/kcm/kcm_plasmalogin/WallpaperConfig.qml:35: Error: Cannot assign to
non-existent property "cfg_PreviewImageDefault"
qrc:/kcm/kcm_plasmalogin/WallpaperConfig.qml:35: Error: Cannot assign to
non-existent property "cfg_PreviewImage"
qrc:/kcm/kcm_plasmalogin/WallpaperConfig.qml:35: Error: Cannot assign to
non-existent property "cfg_DarkLightScheduleStateDefault"
qrc:/kcm/kcm_plasmalogin/WallpaperConfig.qml:35: Error: Cannot assign to
non-existent property "cfg_DarkLightScheduleState"
file:///usr/share/plasma/wallpapers/org.kde.image/contents/ui/config.qml:138:
TypeError: Value is null and could not be converted to an object

Hints from reading the sources:

- src/frontend/kcm/ui/WallpaperConfig.qml:30-35 copies every key of
configDialog.wallpaperConfiguration into the wallpaper plugin's config item. In
6.8.1, org.kde.image's contents/config/main.xml declares PreviewImage and
DarkLightScheduleState, but its contents/ui/config.qml declares no matching
cfg_* properties (those are internal there, handled as
wallpaperConfiguration.PreviewImage), so those four assignments fail.
- org.kde.image/contents/ui/config.qml:138 (when:
root.configDialog.currentWallpaper === "org.kde.slideshow") throws only in the
KCM; the same page works fine in System Settings -> Wallpaper (desktop). The
object the KCM hands over (Appearance.qml:23, property var configDialog: kcm)
is not equivalent to the one the desktop dialog provides, and the TypeError
aborts the wiring of the selected image.

Related reports: 523850 (same QML errors / wallpaper file not copied), 516247,
526940.

Workaround: after every save from the KCM, re-add
WallpaperPluginId=org.kde.image under [Greeter] (or set Image= manually after
copying the file into /var/lib/plasmalogin/wallpapers/).

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to