Plasma 5.7.5 / 5.8.0 multiscreen: Menu and widgets react to mouse events with seconds of delay if Primary Display = external monitor

Fredy Neeser nfd at zurich.ibm.com
Wed Nov 2 10:46:29 UTC 2016


Hi,

Fortunately, I was able to resolve this problem today with

- the upgrade to Plasma 5.8.2 and KDE Frameworks 5.27.0, combined with
- a cleanup of Plasma configuration files -- see the comments and
  solution inlined below.

Another Fedora user upgraded from an older Plasma version to 5.8.2
as well, and he also had a bunch of mysterious problems, including an
invisible panel. My cleanup suggestion solved most of his problems, too.

This raises the following questions: Does Plasma have any mechanism
to ensure that the files

      ~/.config/plasmashellrc and
      ~/.config/plasma-org.kde.plasma.desktop-appletsrc

remain in a consistent state during a Plasma upgrade - for example
at the first KDE login after upgrade?

Would it be possible to add a desktop consistency checker
in order to
- detect problems such as "panel xyz defined but not visible due to ..."
  or "version of config file foo is incompatible with Plasma x.y.z"
- warn users
- advise users how to clean up the affected config files
?

Such a consistency checker could be a useful tool for developers
during testing, to make sure that existing Plasma deployments are
not corrupted during an upgrade.


Cheers

Fredy Neeser
IBM Zurich Research Laboratory


Fredy Neeser wrote on 18.10.2016 16:14:04:

> Hi,
>
> I'm looking for advice on how to narrow down this delay issue, which is
> still present in 5.8.1. The delays make my desktop unusable
> when I set Primary display = external monitor.
>
> Could this be an unfortunate issue in the interaction between kwin
> and XCB/X11 which occurs only if Primary display = external monitor,
> or can you think of another potential culprit?
>
> I would like to help debugging the issue -- if necessary, I can try
> to build Plasma from sources, but I will likely need some guidance.
>
> Thank you

> "Plasma-bugs" <plasma-bugs-bounces at kde.org> wrote on 06.10.2016 14:27:05:
>
> > From: "Fredy Neeser" <nfd at zurich.ibm.com>
> > To: plasma-bugs at kde.org
> > Date: 06.10.2016 14:27
> > Subject: Plasma 5.7.5 / 5.8.0 multiscreen: Menu and widgets react to
> > mouse events with seconds of delay if Primary Display = external
monitor
> > Sent by: "Plasma-bugs" <plasma-bugs-bounces at kde.org>
> >
> > Hello list
> >
> > After upgrading from Fedora 22 (Plasma 5.5.5) to Fedora 24 (Plasma
> > 5.7.5 and now 5.8.0), I experience a new, multiscreen - related
> > mouse-event handling problem, which was not present in Plasma 5.5.5.
> > B.t.w., I read about the multiscreen related improvements being
> > worked on in 5.7 and 5.8, which I do appreciate.
> >
> > I'm using a dual-screen setup (LVDS + external monitor), where I
> > usually set Primary Display = external monitor. Moreover, I place
> > the KDE Panel also on the external monitor. When I do that and try
> > to navigate through the Application Menu (launcher with cascading
> > popup menus) or when I click / move over a desktop widget, the
> > following happens:
> >
> > - After a mouse left click on the KDE menu icon (left hand side of
> > KDE Panel), the menu pops up only after a delay of >= 1 second
> > - When the mouse pointer is moved to another item in a popup menu,
> > the focus visibly jumps from item to item, and a delay of at least 1
> > second is added on every intermediate item.
> > - When I click / move over a desktop widget, the desktop reacts with
> > a delay of >= 1 second
> >
> > Note that the delay occurs only for the panel and widgets on the
> > external monitor; if I add a second panel and move it manually to
> > the laptop screen, the menu on this second panel does NOT have a
> > delay problem.
> >
> > The delay problem on the menu consistently disappears when I set
> > Primary display = Laptop Screen, even when the KDE Panel is moved
> > manually (via Screen Edge) to the external monitor.
> >
> > B.t.w., after the recent design changes for multiscreen, it's
> > unclear to me in which case a Panel is supposed to move along with
> > the Primary display as opposed to being "pinned" to a specific
> > display. Could someone please clarify the behavior intended for
> > Plasma versions >= 5.7 ? Thanks!
> >
> > Also, the delay problem typically reappears when I go back to
> > Primary display = external monitor. Only in two out of perhaps a
> > dozen logout-login cycles, I observed that the delay problem was
> > gone, despite the fact that I had Primary display = external
> > monitor. This may indicate some kind of race condition at login.
> >
> >
> > Since this was an upgrade from an earlier Plasma version, I also
> > tried the following:
> > - Remove the contents of ~/.cache
> > - Temporarily remove ~/.config, ~/.local and ~/.kde and login to KDE
> > - Login to KDE as another user
> > but the delay problem behaved the same.
> >
> >
> > The delay problem is exactly the same for Plasma 5.7.5 and 5.8.0:
> >
> > Plasma 5.7.5 package versions:
> > kscreen-5.7.5-1.fc24.x86_64
> > kwin-5.7.5-1.fc24.x86_64
> > plasma-desktop-5.7.5-1.fc24.x86_64
> > plasma-systemsettings-5.7.5-1.fc24.x86_64
> > plasma-workspace-5.7.5-2.fc24.x86_64
> > plasma-workspace-libs-5.7.5-2.fc24.x86_64
> > qt5-qtbase-5.6.1-3.fc24.x86_64
> > Plasma 5.8.0 package versions:
> > kscreen-5.8.0-0.1.fc24.x86_64
> > kwin-5.8.0-0.1.fc24.x86_64
> > plasma-workspace-5.8.0-0.1.fc24.x86_64
> > plasma-workspace-libs-5.8.0-0.1.fc24.x86_64
> > qt5-qtbase-5.6.1-3.fc24.x86_64

Besides the delay problem, the Plasma upgrades to 5.8.1 and 5.8.2
first seemed to make matters worse, adding the following problems
with panels and icons:

- Second panel can be added ok, but suddenly disappears in a later session
- Windows are minimizing to a second panel that is invisible
  (Only <Alt>-<TAB> allowed me to find the application window in that case)

- Application icons are shown on Primary Display only
- Inconsistent size and alignment of application icons


> > Please advise on how to best narrow down this issue -- I'd be happy
> > to do some testing / debugging!

Here's the solution:

I realized that certain Plasma config files in ~/.config got messed up,
possibly as a result of the Plasma upgrades and/or caused by changing
the Primary Display setting back and forth, which swaps panels.


***************************************************************
After cleaning up the Plasma config files today (see below) and
recreating my Panel and Desktop, the above problems (including
the delay problem) were all gone!!!
***************************************************************

I started to suspect a problem with Plasma desktop config files
when I read

  https://www.kde.org/announcements/plasma-5.8.2-5.8.3-changelog.php
  - See in particular the change
    "Update screen pool connector ID ordering before adjusting
     desktop containments. Commit. See bug #370711"

and the related bugs

  https://bugs.kde.org/show_bug.cgi?id=369665
  Impossible to modify the layout of the second screen
  - where Comment 12 suggests to clean
      ~/.config/plasmashellrc and
      ~/.config/plasma-org.kde.plasma.desktop-appletsrc

  https://bugs.kde.org/show_bug.cgi?id=370711
  wallpaper on second monitor is always set to default

My problems did not look exactly like those in bug #369665, but
the cleaning procedure suggested by Comment 12 of bug #369665
saved my day:

I removed
      ~/.config/plasmashellrc and
      ~/.config/plasma-org.kde.plasma.desktop-appletsrc

executed 'kquitapp5 plasmashell' from a konsole window,
and then 'kstart5 plasmashell' to restart it.
This resulted in clean (almost empty) desktop containments with
fresh wallpapers (one on LVDS, the other on the external monitor)
and one (default) panel placed on the primary display.


<side remark on desktop layouts>

After this cleanup, adding an application to Desktop creates
an icon on each desktop containment. Application icons are
consistent in size and nicely aligned; moreover, their position
can be adjusted separately on each desktop containment.

Actually this is a different story, but I should add that the
cleanup causes plasmashell to create (default) desktop
containments with

  Layout = Folder View

rather than

  Layout = Desktop

which I had before.

So the nice behavior with application icons can be attributed
to the Folder View layout:

If someone wants to try it out as an alternative, select it
by right clicking the desktop > Desktop Settings > Wallpaper

Some observations:
- Application icons added to Folder View layout are visible
  on each screen; they are not shown when you convert the layout
  to Desktop but reappear when you go back to Folder View.

- Application icons added to Desktop layout are visible
  only on the screen to which they are added; otoh, they are
  also shown when the layout is switched to Folder View.

- Widgets such as the "Analog Clock" added to either the
  Folder View layout or the Desktop layout are shown only
  on the screen to which they were added; they remain visible
  when one switches to the other layout.


Are these actually the intended behaviors?
(As a user, one should perhaps stick to one layout
 when adding application icons ...)

</side remark on desktop layouts>


I really think that my previous Plasma config files were
corrupted: The file
   ~/.config/plasma-org.kde.plasma.desktop-appletsrc
contained

- 3 containments of type org.kde.desktopcontainment,
  with references to lastScreen=0, 1, and 2,
  even though I'm using two screens only.

- 2 containments of type org.kde.panel and
  2 containments of type org.kde.plasma.private.systemtray
  but only one panel (and systemtray) was shown.

Here's the relevant portion of
  ~/.config/plasma-org.kde.plasma.desktop-appletsrc
showing just Desktop Containments, Panels, and System Trays:


// Desktop Containments

[Containments][169]
activityId=abb2c567-3754-4794-ab37-4b3f73a33619
formfactor=0
immutability=1
lastScreen=2
location=0
plugin=org.kde.desktopcontainment
wallpaperplugin=org.kde.image

[Containments][19]
activityId=abb2c567-3754-4794-ab37-4b3f73a33619
formfactor=0
immutability=1
lastScreen=0
location=0
plugin=org.kde.desktopcontainment
wallpaperplugin=org.kde.image

[Containments][26]
activityId=abb2c567-3754-4794-ab37-4b3f73a33619
formfactor=0
immutability=1
lastScreen=1
location=0
plugin=org.kde.desktopcontainment
wallpaperplugin=org.kde.image


// Panels

[Containments][111]
activityId=
formfactor=2
immutability=1
lastScreen=2
location=4
plugin=org.kde.panel
wallpaperplugin=org.kde.image

[Containments][139]
activityId=
formfactor=2
immutability=1
lastScreen=1
location=4
plugin=org.kde.panel
wallpaperplugin=org.kde.image


// System Trays

[Containments][116]
activityId=
formfactor=2
immutability=1
lastScreen=2
location=4
plugin=org.kde.plasma.private.systemtray
wallpaperplugin=org.kde.image

[Containments][144]
activityId=
formfactor=2
immutability=1
lastScreen=1
location=4
plugin=org.kde.plasma.private.systemtray
wallpaperplugin=org.kde.image

// End of snippets from ~/.config/plasma-org.kde.plasma.desktop-appletsrc
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20161102/09b22bf8/attachment-0001.html>


More information about the Plasma-devel mailing list