Bug 390654

Summary: KWin erroneously always enables the left touch screen edge
Product: [Plasma] kwin Reporter: Nate Graham <nate>
Component: inputAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED NOT A BUG    
Severity: normal    
Priority: NOR    
Version: git master   
Target Milestone: ---   
Platform: Neon   
OS: Linux   
See Also: https://bugs.kde.org/show_bug.cgi?id=380476
https://bugs.kde.org/show_bug.cgi?id=387775
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: KWin has a left touch screen edge, but kwinrc doesn't know about it

Description Nate Graham 2018-02-18 02:19:02 UTC
Created attachment 110768 [details]
KWin has a left touch screen edge, but kwinrc doesn't know about it

The following issue is a significant generator of online support requests and user complaints. People complain about "missed clicks" or a "dead pixel" on the left edge of the screen when using Xorg. For example, see Bug 380476 and Bug 387775. The issue is caused by KWin's left touch screen edge; turning it off resolves the issue.

The fact that the left touch screen edge is always on by default appears to be a bug, which can be seen by doing the following:

1. $ rm ~/.config/kwinrc
2. Go to System Settings > Desktop Behavior > Touch Screen
3. Click the button corresponding to the right edge and set it to something
4. $ tail -n 5 ~/.config/kwinrc

Kwinrc has the following:

[TouchEdges]
Bottom=None
Left=None
Right=ShowDesktop
Top=None

kwinrc knows about the right touch screen edge that you set, but thinks that there's no left touch screen edge. Yet, there is! See attached screenshot.

If I have misinterpreted the situation that the left touch screen edge is enabled deliberately, then please ignore the above and instead consider this Bugzilla ticket to be a request to turn off left touch screen edge by default on X11 as it generates a steady stream of user complaints.
Comment 1 Martin Flöser 2018-02-18 16:05:37 UTC
The left touch edge is enabled by default. I know it because I implemented it.

For any key not present in the config file, the hardcoded default is used. This is a standard feature of KConfig API.

In this particular case we have the following piece of code:
touchConfig(QStringLiteral("TouchBorderActivate"), m_touchActivate, TabBoxWindowsMode, QStringList{QString::number(int(ElectricLeft))});

Deleting the config file while KWin is running has 0 effect.

The setting will stay enabled by default. This is a maintainer decision! This is a useful feature and we seem to have conflicts here between users expecting it to work exactly like that and users not having a touch screen and having issues with that. In today's world we need to support touch screens by default in a sensible way (e.g. for notebooks) without looking like yesterdays thing. Thus this will stay on.
Comment 2 Martin Flöser 2018-02-18 16:23:28 UTC
> Kwinrc has the following:
> 
> [TouchEdges]
> Bottom=None
> Left=None
> Right=ShowDesktop
> Top=None

Btw. that's not how the screen/touch edges work. The settings exist multiple times. You need to look into the TabBox settings group to find it enabled.