Replies: 14 comments
-
I like the idea of having different wallpapers per virtual desktop, so I'll take a look at Vallpaper to better understand how it works. Regarding the wallpapers not appearing, I'm fixing the problem together with KWin devs. I think that in the next version of KWin and Parachute the problem will be solved. |
Beta Was this translation helpful? Give feedback.
-
this is just an idea for conversation and to check what is your opinion: instead of "developing support for different wallpapers per virtual desktop", could it be instead support switching activities instead of virtual desktops ? Activities with just 1 virtual desktop do the same as using virtual desktops, but leaving the wallpaper management to plasma shell. The points are:
Negatives:
what do you think ? |
Beta Was this translation helpful? Give feedback.
-
I also thought that one of the benefits of working with activities instead of virtual desktops would be exactly what you described. Showing several wallpapers in a future activity bar could help to visually identify each one, besides giving a beautiful visual effect. Unfortunately I recently discovered that the desktop window used to show the wallpapers is only one for all activities and plasma is responsible for changing the wallpaper when we change activities. As a practical result of this, only one wallpaper is shown for all activities each time. This could even give the wrong impression that all activities have the same wallpaper. |
Beta Was this translation helpful? Give feedback.
-
If you change activities on Parachute, it should update the wallpaper ( maybe needs some kinda of refresh or do like present window and don't actually manage the background ). maybe this would help ( dunno, i am an idiot, so i may be wrong ! ):
on plasma-desktop/desktoppackage/contents/activitymanager |
Beta Was this translation helpful? Give feedback.
-
I also don't know the code responsible for the wallpapers of each activity. Maybe @zzag can help here. Or know who can. |
Beta Was this translation helpful? Give feedback.
-
The code here could serve as a good example: https://github.com/astatide/kwinOverview/blob/master/contents/ui/ActivitiesContainer.qml I used the activity model, which I just imported from the existing kde/kwin library or whatever. I think this is what they normally use in the activity switcher (which is brought by up ctrl+q in the default KDE config). : ) |
Beta Was this translation helpful? Give feedback.
-
As an aside, I believe the code there works with Wayland, too. I've run your plugin on Wayland and it works really well, except for the fact that wallpapers don't pop up. I love how your scaling code actually works rather than whatever garbage I cobbled together for kwinOverview. On that note, you should feel free to liberally take from anything in kwinOverview, as I just don't have the time work on it anymore. Parachute does a lot of things better than kwinOverview ever did, but there might be a few edge cases like the wallpaper issue that I managed to sort out. Check out the v2Rework branch for cleaner, albeit not 100% functional code. Regarding the wallpaper per desktop issue, my understanding is that goes against the EHWM standard which both Gnome and KDE stick to like glue. The deepin multitasking plugin supports different wallpapers per desktop, but they use their own dbus service to get/receive the appropriate wallpaper. My (VERY ROUGH) understanding is that KWin just normally grabs the wallpaper as specificed by whatever the EHWM standard gives; the grid plugin does this, for instance (if you run kwin as the window manager for deepin 20 and enable the grid plugin, you'll notice that it just displays the wallpaper from the current desktop for each desktop). If you wanted to have 1 wallpaper per desktop, you'd likely have to keep an internal mapping of desktop ID to wallpaper, then signal plasma to change the wallpaper whenever you switch desktops, as plasma is what is responsible for showing the background. |
Beta Was this translation helpful? Give feedback.
-
Even though I wrote a wallpaper plugin for plasma, I still have pretty limited knowledge of how the wallpaper infrastructure in plasma works under hood. I suggest to ask questions about wallpapers in |
Beta Was this translation helpful? Give feedback.
-
Sorry for the delay, tough week here. @astatide, I know your solution and I imagine the trouble you had to show activities wallpapers. But as you work with image paths we would be loading again images that are already loaded by plasma. Also I'm not sure how your solution would work with plugins like Smart Video Wallpaper. Parachute works by showing live replicas of desktop windows through the PlasmaCore.WindowThumbnail component. I think the ideal solution would be plasma to create a desktop window for each activity, but I don't know if this change would be viable. EDIT: I haven't had time to get to know Vallpaper better yet. |
Beta Was this translation helpful? Give feedback.
-
Great point! I suspect this is how Plasma itself handles it, or close to
it, though, as I cribbed pretty liberally from it when writing that
component (although it was a few years ago). It would be worth to check
out the activity switcher that ships with Plasma and see what they do. It
would be interesting to see if they load up the image or if they're able to
nab a preloaded element somehow.
Activities aren't really well supported in KWin, currently; they don't work
in Wayland, and don't seem to be a really high priority. I originally
tried to write something like this as an actual plugin (in C++) and while I
had some proof of concept stuff working, I ran into problems with
activities. I inquired on the mailing list and basically hit a wall of
'we'd have to make changes to the underlying components in KWin and don't
really care to at the moment' and I don't think anything has changed
there. A lot of the activities stuff is read-only in the scripting
interface, for instance. I think KWinFT has changed some of that, but it's
also sort of an indictment on the speed of the development process that an
active KWin developer had to fork the project to make any progress on
things.
My suspicion, based on very little, mind you, is that activities are really
just a slightly complex way of hiding/starting/closing/showing applications
and so they may do things 'on the fly' as much as possible. I don't think
a WindowThumbnail component can exist for them because I don't think an
activity is something that is 'visible' when it's inactive. I'm wrong
about a lot of things though and am definitely not an expert : )
Applications that don't have a KWin decoration exist on the same desktop at
the same position in every activity, which suggests something about the
underlying way they're managed.
It's certainly worth checking in with the KWin/Plasma people on it!
…On Sat, 30 May 2020 at 14:22, tcorreabr ***@***.***> wrote:
Sorry for the delay, tough week here.
@astatide <https://github.com/astatide>, I know your solution and I
imagine the trouble you had to show activities wallpapers. But as you work
with image paths we would be loading again images that are already loaded
by plasma. Also I'm not sure how your solution would work with plugins like Smart
Video Wallpaper <https://store.kde.org/p/1316299/>. Parachute works by
showing live replicas of desktop windows through the
PlasmaCore.WindowThumbnail component. I think the ideal solution would be
plasma to create a desktop window for each activity, but I don't know if
this change would be viable.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<https://github.com/tcorreabr/Parachute/issues/29#issuecomment-636387098>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACEYEQ5XJ72SOUYQJJPDBDLRUF2KDANCNFSM4NCTKM7A>
.
--
Audrey Pratt
Graduate Student in Chemistry
Chong Lab, Room 338, Eberly Hall
University of Pittsburgh
Pittsburgh, PA 15260
|
Beta Was this translation helpful? Give feedback.
-
This is a hard limit on plasmashell, or rather certain outdated X protocols... The Vallpaper thing basically just listens on workspace changed event and then tells plasma to load a new wallpaper through dbus all in a very convoluted way. |
Beta Was this translation helpful? Give feedback.
-
@jiaiz, I think allowing Parachute wallpapers in addition to the real wallpapers could lead to a confusing situation. @astatide, maybe KWin people are more open to changes now. Some changes I proposed were quickly accepted, including changes that allow write access to activities related properties. But support for different wallpapers per activity the way we discussed here is something that requires more complex changes in Plasma and that is out of my scope at the moment. So until someone decides to venture down this path we won't have the proper view of activities wallpapers in Parachute. |
Beta Was this translation helpful? Give feedback.
-
https://phabricator.kde.org/T13037 you can read some proposals. For the record the Plasma Activity Manager tracks on its own the plasmashellrc file all the time in order to identify which wallpapers are assigned for each activity. It can understand only files and colors, I think it fails also in multi-screen environments. This is why I propose Solution B in phabricator task, in order to provide a better way to consume wallpaper data. |
Beta Was this translation helpful? Give feedback.
-
I'm Using Different Wallpaper For Each Activities, Same Wallpaper For Every Desktop Inside One Activity. |
Beta Was this translation helpful? Give feedback.
-
Wonderful extension.
One suggestion is to be able to manually set wallpaper inside the plugin instead of fetching it from Plasma.
This would not only prevent the problem with the extension not being able to see the wallpaper but also allow to set different wallpaper per workspace and make it usable with https://github.com/lehklu/Vallpaper
I tried looking through the code but sadly I have no clue about QML and didnt get how to set different Wallpapers on the Repeater item.
Beta Was this translation helpful? Give feedback.
All reactions