SUMMARY The user can set an animated wallpaper on the desktop and on the lock screen as well. The animated wallpaper is set to stop when a window is maximized. [1] When a window is maximized, also the animation on the lock screen is stopped. I guess that was not intended. DESIRED RESULT The lock screen should always be animated, regardless of maximized windows. [1]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1831/diffs?commit_id=013ad03370a1b08d2db79d88cf8f752434d0e401 SOFTWARE/OS VERSIONS Linux/KDE Plasma: EndeavourOS Linux 6.0.2-arch1-1 #1 SMP PREEMPT_DYNAMIC x86_64 GNU/Linux KDE Plasma Version: 5.26.1 KDE Frameworks Version: 5.99.0 Qt Version: 5.15.6 Graphics platform: Wayland
Need to check for whether any of the maximized or full screen windows are the lock screen, I guess.
Thank you Mariano for pointing out in the right direction. I browsed the commit and found a flaw in the logic of pausing the animation. Line 43 of AnimatedImageComponent.qml: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1831/diffs?commit_id=6e43d469811222f889eed71ad96e0073ddfbba65#5e76689bb88c1344227f1aad04ef9a5637692901_0_43 The code checks for activeWindowMonitor count which in turn finds the no. of maximized windows. Now, this logic works for an unlocked screen but when the screen is locked, the value remains the same. Maybe adding a logic to Line 43 for checking for locked status of device will help mitigate this bug.
Cool, would you like to submit a merge request to fix this?
I would love too. Sadly, I have no experience in Qt and C++. I explored a possible solution which I am not sure would work, but I am gonna drop it just in case. Using dbus interface to get the status of lock screen. I am not sure if this would work but I do get the status of lock screen using GetActive method. reference: https://superuser.com/questions/820596/kde-screen-lock-log Again, sorry for not contributing further due to lack of my experience.
Doing `property bool isLockScreen: Window.window ? Window.window.source.toString().endsWith("LockScreen.qml") : false` works but feels more like a workaround as it will have to keep in sync with https://invent.kde.org/plasma/plasma-desktop/-/blob/master/desktoppackage/contents/lockscreen/LockScreen.qml, tried looking at MaximizedWindowMonitor class but my C++ fu is not so great to understand how it works :P
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/5941
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kscreenlocker/-/merge_requests/297