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

Ric Grant <rich...@qweb.co.uk> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |rich...@qweb.co.uk

--- Comment #17 from Ric Grant <rich...@qweb.co.uk> ---
I've been experiencing this since I set up a new laptop in January 2021. Laptop
is an Asus UX563F which has a second screen under the touchpad. It's a vertical
phone sized screen rotated 90 degrees to make a touchpad and it's a really
handy place to put app icons, except that Plasma scrambles them.

In Plasma System Settings -> Display Configuration, the main laptop screen is
3840x2160 at 60hz. Secondary screen is 1080x2160 at 50hz, rotated 90 degrees
anticlockwise. There's a 150% global scale applied.

This is an Optimus set-up so I'm running Xorg with modesetting drivers and
Bumblebee to switch between Intel and nVidia GPUs.

For all this time, I've barked up many trees trying to figure out if this is
caused by the screen rotation (XrandR under the hood I assume?), the
modesetting/bumblebee configuration, the global scale, etc. I've read through
all of the comments in this bug report,
https://bugs.kde.org/show_bug.cgi?id=354802 , and a bunch of other duplicates,
and like many others I've spent some time trying to work around the ever
changing plasma-org.kde.plasma.desktop-appletsrc file but this seems to be
updated regularly when all sorts of things happen, it's not just for desktop
icon arrangement so readonly states etc don't cut it for me. Additionally,
adding scripts to shutdown/startup procedures to dynamically fiddle with this
isn't enough because closing the laptop lid or just turning off and back on the
secondary screens doesn't trigger those events.

What I've found though, and hopefully this is useful to somebody with more
knowledge of these scripts than me, is that if you open a Konsole and restart
plasmashell:

$ kquitapp5 plasmashell
$ kstart5 plasmashell

Then when you do something to trigger the icon scramble, e.g. close and open
the lid or turn off and on the second display, the Konsole floods with
interesting errors like this:

file:///usr/share/plasma/plasmoids/org.kde.desktopcontainment/contents/ui/FolderItemDelegate.qml:382:21:
Unable to assign [undefined] to bool
file:///usr/share/plasma/plasmoids/org.kde.desktopcontainment/contents/ui/FolderItemDelegate.qml:497:25:
Unable to assign [undefined] to bool

and this:

file:///usr/share/plasma/plasmoids/org.kde.desktopcontainment/contents/ui/FolderItemDelegate.qml:320:17:
QML Label: Binding loop detected for property "width"

FolderItemDelegate.qml appears to be used for generating the icons in folder
views, which fits with this being a bug for people who run the desktop as a
folder view.

Lines 382 and 497 reference model.isLink and model.selected so I'm wondering
whether model isn't fully set-up yet at the time this script runs. If these
couple of lines throw errors because they're expecting to read properties that
don't yet exist, then other lines more related to positioning could also be
looking at properties that simply don't yet exist. Which makes sense if XrandR
for example hasn't yet finished rotating the output.

There's also FolderView.qml in here which I assume sets up the main container
for these icons to sit in. Interestingly this seems to be where all of the drag
handling code sits, including an onPositionChanged handler that I think is
designed to figure out where in the grid to bounce icons to when dragging them
around. Is it possible that this routine is firing prematurely during the
initiation phase and bouncing icons to grid locations before the screen sizing
and rotation has happened, because their current position isn't valid at the
point of firing?

Lots of interesting code in these two files and though I might once again be
barking up the wrong tree, I do feel it worth somebody with more knowledge of
this stuff looking over it.

Hope this in some way helps.

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

Reply via email to