Jenkins-kde-ci: plasma-desktop Plasma-5.9 stable-kf5-qt5 » Linux,gcc - Build # 114 - Still Unstable!

2017-04-08 Thread no-reply

GENERAL INFO

BUILD UNSTABLE
Build URL: 
https://build.kde.org/job/plasma-desktop%20Plasma-5.9%20stable-kf5-qt5/PLATFORM=Linux,compiler=gcc/114/
Project: PLATFORM=Linux,compiler=gcc
Date of build: Sun, 09 Apr 2017 03:15:34 +
Build duration: 6 min 38 sec

CHANGE SET
Revision 94f796749a33a4e6015b04d1c58b0685531aeb0b by scripty: (SVN_SILENT made 
messages (.desktop file) - always resolve ours)
  change: edit kcms/colors/colors.desktop


JUNIT RESULTS

Name: (root) Failed: 1 test(s), Passed: 6 test(s), Skipped: 0 test(s), Total: 7 
test(s)Failed: TestSuite.appstreamtest

COBERTURA RESULTS

Cobertura Coverage Report
  PACKAGES 7/7 (100%)FILES 36/39 (92%)CLASSES 36/39 (92%)LINE 2306/3420 
(67%)CONDITIONAL 1566/3802 (41%)

By packages
  
kcms.cursortheme.xcursor
FILES 4/4 (100%)CLASSES 4/4 (100%)LINE 99/192 (52%)CONDITIONAL 
22/98 (22%)
kcms.keyboard
FILES 20/23 (87%)CLASSES 20/23 (87%)LINE 743/1511 
(49%)CONDITIONAL 619/1711 (36%)
kcms.keyboard.preview
FILES 4/4 (100%)CLASSES 4/4 (100%)LINE 500/582 (86%)CONDITIONAL 
432/1112 (39%)
kcms.keyboard.tests
FILES 5/5 (100%)CLASSES 5/5 (100%)LINE 229/231 (99%)CONDITIONAL 
236/358 (66%)
kcms.krdb
FILES 1/1 (100%)CLASSES 1/1 (100%)LINE 348/401 (87%)CONDITIONAL 
108/196 (55%)
kcms.lookandfeel
FILES 1/1 (100%)CLASSES 1/1 (100%)LINE 282/398 (71%)CONDITIONAL 
95/219 (43%)
kcms.lookandfeel.autotests
FILES 1/1 (100%)CLASSES 1/1 (100%)LINE 105/105 
(100%)CONDITIONAL 54/108 (50%)

Jenkins-kde-ci: plasma-workspace master kf5-qt5 » Linux,gcc - Build # 845 - Still Unstable!

2017-04-08 Thread no-reply

GENERAL INFO

BUILD UNSTABLE
Build URL: 
https://build.kde.org/job/plasma-workspace%20master%20kf5-qt5/PLATFORM=Linux,compiler=gcc/845/
Project: PLATFORM=Linux,compiler=gcc
Date of build: Sun, 09 Apr 2017 02:09:22 +
Build duration: 22 min

CHANGE SET
Revision b67d989399037c5b11d492e52f34dfef70480403 by scripty: (SVN_SILENT made 
messages (.desktop file) - always resolve ours)
  change: edit runners/appstream/appstreamrunner.desktop


JUNIT RESULTS

Name: (root) Failed: 1 test(s), Passed: 10 test(s), Skipped: 0 test(s), Total: 
11 test(s)Failed: TestSuite.appstreamtest

COBERTURA RESULTS

Cobertura Coverage Report
  PACKAGES 15/15 (100%)FILES 55/76 (72%)CLASSES 55/76 (72%)LINE 2336/5973 
(39%)CONDITIONAL 1648/5946 (28%)

By packages
  
drkonqi.parser
FILES 6/10 (60%)CLASSES 6/10 (60%)LINE 303/423 (72%)CONDITIONAL 
478/616 (78%)
drkonqi.tests.backtraceparsertest
FILES 4/4 (100%)CLASSES 4/4 (100%)LINE 74/74 (100%)CONDITIONAL 
33/50 (66%)
kioslave.desktop
FILES 2/3 (67%)CLASSES 2/3 (67%)LINE 110/144 (76%)CONDITIONAL 
56/90 (62%)
kioslave.desktop.tests
FILES 1/1 (100%)CLASSES 1/1 (100%)LINE 84/84 (100%)CONDITIONAL 
37/72 (51%)
klipper
FILES 12/13 (92%)CLASSES 12/13 (92%)LINE 256/384 
(67%)CONDITIONAL 109/210 (52%)
klipper.autotests
FILES 4/4 (100%)CLASSES 4/4 (100%)LINE 630/693 (91%)CONDITIONAL 
377/820 (46%)
libtaskmanager
FILES 6/21 (29%)CLASSES 6/21 (29%)LINE 196/3304 (6%)CONDITIONAL 
122/3251 (4%)
libtaskmanager.autotests
FILES 2/2 (100%)CLASSES 2/2 (100%)LINE 151/151 
(100%)CONDITIONAL 85/170 (50%)
runners.bookmarks
FILES 8/8 (100%)CLASSES 8/8 (100%)LINE 87/157 (55%)CONDITIONAL 
34/96 (35%)
runners.bookmarks.browsers
FILES 4/4 (100%)CLASSES 4/4 (100%)LINE 88/93 (95%)CONDITIONAL 
84/107 (79%)
runners.bookmarks.tests
FILES 2/2 (100%)CLASSES 2/2 (100%)LINE 65/65 (100%)CONDITIONAL 
31/62 (50%)
runners.services
FILES 1/1 (100%)CLASSES 1/1 (100%)LINE 128/201 (64%)CONDITIONAL 
117/206 (57%)
runners.services.autotests
FILES 1/1 (100%)CLASSES 1/1 (100%)LINE 67/70 (96%)CONDITIONAL 
50/90 (56%)
shell
FILES 1/1 (100%)CLASSES 1/1 (100%)LINE 57/90 (63%)CONDITIONAL 
20/76 (26%)
shell.autotests
FILES 1/1 (100%)CLASSES 1/1 (100%)LINE 40/40 (100%)CONDITIONAL 
15/30 (50%)

Jenkins-kde-ci: plasma-desktop master kf5-qt5 » Linux,gcc - Build # 705 - Still Unstable!

2017-04-08 Thread no-reply

GENERAL INFO

BUILD UNSTABLE
Build URL: 
https://build.kde.org/job/plasma-desktop%20master%20kf5-qt5/PLATFORM=Linux,compiler=gcc/705/
Project: PLATFORM=Linux,compiler=gcc
Date of build: Sun, 09 Apr 2017 02:08:52 +
Build duration: 6 min 59 sec

CHANGE SET
Revision c5911b52a6b8fd57f2a53239102dcab60e25 by scripty: (SVN_SILENT made 
messages (.desktop file) - always resolve ours)
  change: edit kcms/colors/colors.desktop


JUNIT RESULTS

Name: (root) Failed: 1 test(s), Passed: 6 test(s), Skipped: 0 test(s), Total: 7 
test(s)Failed: TestSuite.appstreamtest

COBERTURA RESULTS

Cobertura Coverage Report
  PACKAGES 7/7 (100%)FILES 36/39 (92%)CLASSES 36/39 (92%)LINE 2306/3420 
(67%)CONDITIONAL 1546/3761 (41%)

By packages
  
kcms.cursortheme.xcursor
FILES 4/4 (100%)CLASSES 4/4 (100%)LINE 99/192 (52%)CONDITIONAL 
22/98 (22%)
kcms.keyboard
FILES 20/23 (87%)CLASSES 20/23 (87%)LINE 743/1511 
(49%)CONDITIONAL 600/1672 (36%)
kcms.keyboard.preview
FILES 4/4 (100%)CLASSES 4/4 (100%)LINE 500/582 (86%)CONDITIONAL 
431/1110 (39%)
kcms.keyboard.tests
FILES 5/5 (100%)CLASSES 5/5 (100%)LINE 229/231 (99%)CONDITIONAL 
236/358 (66%)
kcms.krdb
FILES 1/1 (100%)CLASSES 1/1 (100%)LINE 348/401 (87%)CONDITIONAL 
108/196 (55%)
kcms.lookandfeel
FILES 1/1 (100%)CLASSES 1/1 (100%)LINE 282/398 (71%)CONDITIONAL 
95/219 (43%)
kcms.lookandfeel.autotests
FILES 1/1 (100%)CLASSES 1/1 (100%)LINE 105/105 
(100%)CONDITIONAL 54/108 (50%)

Re: Complex text input in Plasma

2017-04-08 Thread Weng Xuetian
On Saturday, 8 April 2017 12:43:54 PDT,Martin Gräßlin wrote:
> Am 2017-04-08 21:21, schrieb Weng Xuetian:
> > On Saturday, 8 April 2017 09:46:17 PDT,Martin Gräßlin wrote:
> > 
> >> Am 2017-04-08 17:26, schrieb Weng Xuetian:
> >> > You're wrong about the QT_IM_MODULE stuff. To make application to use
> >> > the
> >> > wayland protocol to type (text-input), the implementation must be done
> >> > with
> >> > QT_IM_MODULE=wayland. I don't mind if it is set to certain application
> >> > but set
> >> > it in general won't work. Also to have real virtual keyboard , you need
> >> > to let
> >> > the input method daemon to provides a virtual keyboard implementation.
> >> 
> >> No you are wrong about that one :-) It might be that it used to be
> >> like
> >> that, but Wayland is the default if no QT_IM_MODULE is specified. See
> >> https://code.qt.io/cgit/qt/qtwayland.git/tree/src/client/qwaylandintegrat
> >> ion .cpp#n142
> > 
> > What I want to say is, if you set QT_IM_MODULE to qtvirtualkeyboard,
> > that app
> > can't talk to im daemon via the wayland protocol. The automatic
> > selection
> > procedure is not really a problem there.
> 
> And that's not the case. Our virtual keyboard is using the Wayland text
> input protocol and does not require setting the QT_IM_MODULE at all.
> 
> Please believe a little bit in what I'm writing. I coded this stuff.
> 
> > Also, running it inside kwin could still be problematic. It'll also
> > need to
> > display UI. From what I heard about, to run a qml window inside kwin
> > could
> > even be a problem.
> 
> I don't know what you have heard but all our UI in KWin is written in
> Qml nowadays.
> 
> > The races you pointed about is not really a problem. Weston has already
> > done
> > it well. Unless you want to reinvent a new protocol, using the current
> > wayland
> > protocol essentially does what I said. And if such a thing would
> > interfere
> > with kwin's rendering procedure, then probably kwin should refactor
> > about
> > that.
> 
> Just because Weston doesn't think of this problem doesn't mean it
> doesn't exist. Weston is not perfect and I found several bugs in the way
> they implemented the protocols they developed and Weston is the
> reference for.
> 
> > And let me give you some number here, a modern input method for Chinese
> > could
> > takes about 30ms to handle one single key (it is THAT complex and we
> > are all
> > limited by the complexity, though I measured it about 5 years ago). You
> > really
> > want to have kwin block on that and wait for such a long time? And just
> > because it is such a slow thing, the IPC latency is not even
> > comparable. If
> > you want good prediction or handwriting, it will be slow. There's no im
> > use
> > neural network on linux right now, but iOS's virtual keyboard is
> > already doing
> > that. Which might be the future, but also mean the im processing time
> > might
> > not slow down.
> 
> I don't want to base any decisions on 5 year old numbers. 30 msec would
> be bad, but if it is with modern hardware just 10 it wouldn't be that
> bad.

30ms is almost the maximum time that I found it would be accepted by the user. 
But it also means that if it is ok, we could put more computation into it to 
achieve better result. Also, I do feel that synchronously wait for input 
method result would be bad. In our customized im module era, we are also 
moving to synchronous wait to key event processing result to asynchronous. As 
you said their exists same problem, but overall it improves the 
responsivieness when something does go wrong (when it's not a bug it could be 
memory or disk io).

> 
> > Also the "input method always on" idea is not saying that every single
> > key
> > will be send to input method, it just mean whenever user need type
> > text, it
> > will be forwarded to input method.
> > 
> > I don't know whether I could persuade you, but please look around the
> > world,
> > iOS, android, sailfish (also use wayland), mac OS , (windows used to
> > run im
> > directly inside application.. but now they also have a service for that
> > ), no
> > one would run a im daemon inside the compositor. Are they all ignore
> > the ipc
> > overhead?
> 
> I'm using sailfish and Android and both keyboards suck bad times.
> Sailfish is really bad, well it's maliit so no surprise there. With both
> systems I see problems in UI positioning because it's not in the
> compositor. Both don't feel perfect especially not in the "every frame
> perfect sense" we are aiming for on Wayland.
> 
But afterall, running fcitx as a library is possible since it is how it is 
implemented. Technically there's no such difficulty prevent us to do so.  And I 
have been using fcitx as a library for testing purpose.  But I guess the story 
is different for ibus, ibus is multi-process and its engine always running in 
different process, and it will always need to pass some ipc to its own engine.

On the bright side, I could bypass the ugly zwp_input_method_v1 

Akademy 2017 Call for Papers deadline is this Monday!

2017-04-08 Thread Albert Astals Cid
I'm sure you're working on some amazing things you want to let the community 
know about, so head to
  https://akademy.kde.org/2017/cfp

And submit your proposal!

Cheers,
  Albert


D5144: Change the volume icon/mute button into a ToolButton

2017-04-08 Thread Chris Holland
This revision was automatically updated to reflect the committed changes.
Closed by commit R115:2ac365e96b70: Change the volume icon/mute button into a 
ToolButton (authored by Zren).

REPOSITORY
  R115 Plasma Audio Volume Applet

CHANGES SINCE LAST UPDATE
  https://phabricator.kde.org/D5144?vs=13070=13242

REVISION DETAIL
  https://phabricator.kde.org/D5144

AFFECTED FILES
  applet/contents/ui/ListItemBase.qml
  applet/contents/ui/SmallToolButton.qml

To: Zren, #plasma, subdiff, drosca
Cc: mart, subdiff, drosca, plasma-devel, progwolff, lesliezhai, ali-mohamed, 
jensreuterberg, abetts, sebas, apol


Re: Default touch screen edge gestures

2017-04-08 Thread Martin Gräßlin

Am 2017-04-08 19:40, schrieb Ivan Čukić:

Hi Martin,

I think this needs more in-depth investigation.


That's exactly why I put up this thread!


From my point of view, window switching, present windows and the
desktop grid are essentially the same thing. The best solution IMO
would be to combine them all,


Wishful thinking :-) I wanted to have that for years: 
https://blog.martin-graesslin.com/blog/2013/04/hitting-walls-a-story-of-present-windows-2/



and the UI should not be the same for
all devices.

For example, on a medium screen, for devices that are handheld, window
switcher is perfect since the window list is reachable with the finger
the user swiped with.

For small screens, that is on the phones, the whole screens should be
coverable by 'the finger', so a whole screen could be used for the
switching (like present windows).

On larger devices that are not handhelds, but are still touch-enabled,
we could have a desktop grid, or some present windows + present
virtual desktops switcher.


I wasn't exactly clear on for what I want to have the gestures. The 
gestures should be for notebooks which have touch screens. Plasma phone 
needs completely different gestures and giving the design it should just 
disable all.


For convertables (e.g. Lenovo Yoga) the same gestures as for notebooks 
might make sense but it would also be possible to consider different 
gestures once it's in "tablet" mode. But we currently aren't able to 
detect that at all, so for the moment we only need to consider what we 
support: notebooks with touch screens.


Personally I think that this will be a feature which we will advertise 
in the release announcement and we must define some default gestures, 
otherwise we just look unpolished. We should assign a gesture even if we 
would want a better fitting UI - we don't have that and we won't get 
that any time soon. So better trigger Alt+Tab than no window switching 
at all.


Cheers
Martin


Re: Complex text input in Plasma

2017-04-08 Thread Martin Gräßlin

Am 2017-04-08 21:21, schrieb Weng Xuetian:

On Saturday, 8 April 2017 09:46:17 PDT,Martin Gräßlin wrote:

Am 2017-04-08 17:26, schrieb Weng Xuetian:
> You're wrong about the QT_IM_MODULE stuff. To make application to use
> the
> wayland protocol to type (text-input), the implementation must be done
> with
> QT_IM_MODULE=wayland. I don't mind if it is set to certain application
> but set
> it in general won't work. Also to have real virtual keyboard , you need
> to let
> the input method daemon to provides a virtual keyboard implementation.

No you are wrong about that one :-) It might be that it used to be 
like

that, but Wayland is the default if no QT_IM_MODULE is specified. See
https://code.qt.io/cgit/qt/qtwayland.git/tree/src/client/qwaylandintegration
.cpp#n142


What I want to say is, if you set QT_IM_MODULE to qtvirtualkeyboard, 
that app
can't talk to im daemon via the wayland protocol. The automatic 
selection

procedure is not really a problem there.


And that's not the case. Our virtual keyboard is using the Wayland text 
input protocol and does not require setting the QT_IM_MODULE at all.


Please believe a little bit in what I'm writing. I coded this stuff.

Also, running it inside kwin could still be problematic. It'll also 
need to
display UI. From what I heard about, to run a qml window inside kwin 
could

even be a problem.


I don't know what you have heard but all our UI in KWin is written in 
Qml nowadays.




The races you pointed about is not really a problem. Weston has already 
done
it well. Unless you want to reinvent a new protocol, using the current 
wayland
protocol essentially does what I said. And if such a thing would 
interfere
with kwin's rendering procedure, then probably kwin should refactor 
about

that.


Just because Weston doesn't think of this problem doesn't mean it 
doesn't exist. Weston is not perfect and I found several bugs in the way 
they implemented the protocols they developed and Weston is the 
reference for.




And let me give you some number here, a modern input method for Chinese 
could
takes about 30ms to handle one single key (it is THAT complex and we 
are all
limited by the complexity, though I measured it about 5 years ago). You 
really

want to have kwin block on that and wait for such a long time? And just
because it is such a slow thing, the IPC latency is not even 
comparable. If
you want good prediction or handwriting, it will be slow. There's no im 
use
neural network on linux right now, but iOS's virtual keyboard is 
already doing
that. Which might be the future, but also mean the im processing time 
might

not slow down.


I don't want to base any decisions on 5 year old numbers. 30 msec would 
be bad, but if it is with modern hardware just 10 it wouldn't be that 
bad.




Also the "input method always on" idea is not saying that every single 
key
will be send to input method, it just mean whenever user need type 
text, it

will be forwarded to input method.

I don't know whether I could persuade you, but please look around the 
world,
iOS, android, sailfish (also use wayland), mac OS , (windows used to 
run im
directly inside application.. but now they also have a service for that 
), no
one would run a im daemon inside the compositor. Are they all ignore 
the ipc

overhead?


I'm using sailfish and Android and both keyboards suck bad times. 
Sailfish is really bad, well it's maliit so no surprise there. With both 
systems I see problems in UI positioning because it's not in the 
compositor. Both don't feel perfect especially not in the "every frame 
perfect sense" we are aiming for on Wayland.


Cheers
Martin


Re: Complex text input in Plasma

2017-04-08 Thread Weng Xuetian
On Saturday, 8 April 2017 09:46:17 PDT,Martin Gräßlin wrote:
> Am 2017-04-08 17:26, schrieb Weng Xuetian:
> > You're wrong about the QT_IM_MODULE stuff. To make application to use
> > the
> > wayland protocol to type (text-input), the implementation must be done
> > with
> > QT_IM_MODULE=wayland. I don't mind if it is set to certain application
> > but set
> > it in general won't work. Also to have real virtual keyboard , you need
> > to let
> > the input method daemon to provides a virtual keyboard implementation.
> 
> No you are wrong about that one :-) It might be that it used to be like
> that, but Wayland is the default if no QT_IM_MODULE is specified. See
> https://code.qt.io/cgit/qt/qtwayland.git/tree/src/client/qwaylandintegration
> .cpp#n142

What I want to say is, if you set QT_IM_MODULE to qtvirtualkeyboard, that app  
can't talk to im daemon via the wayland protocol. The automatic selection 
procedure is not really a problem there.

> > And also, merging more and more daemon into kwin is not always good
> > even from
> > security point of view. The problem is, once it got merged, the whole
> > memory
> > space is being exposed. Which means, if there's a single piece of code
> > is
> > vulnerable, it will affect the whole compositor. We are not perfect
> > people, and
> > that's why put more code together will make it more vulnerable to
> > attacker. If
> > you consider that, your prevention of ptrace on kwin becomes nothing
> > and so
> > does your effort to make kwin not loading some random plugin (prevent
> > ld_preload and qt_plugins_path?).
> 
> The security of the system breaks with the weakest link. Whether the IM
> daemon is insecure by running standalone or inside KWin isn't a
> difference.
> 
> > So, my proposal to this will be:
> > im daemon <-> kwin <-> application, and the communication is done with
> > some
> > wayland protocol.
> > 
> > and imho that would be best option to all people. Here's the reason
> > 
> > Pros
> > - less code to run within kwin process
> > - less change needed to existing im daemon (we just need an extra
> > frontend)
> > and kwin
> > - no hard dependency
> > 
> > Cons:
> > more ipc latency, but this only happens if user need to type.
> 
> The IPC latency is a huge problem here. If we want to have a good
> experience KWin needs to decide whether to send a key event to the IM
> daemon or through wl_keyboard interface to the application. This means
> possibly a roundtrip in the event handling code. This code is currently
> the most crucial part of KWin. It opens a can of worms if we go IPC
> there and given your suggestion it needs IPC.
> 
> And even if we handle it without roundtrip we run into timing issues.
> Consider:
>   * KWin gets key event
>   * KWin decides it goes to IM for window foo
>   * IM does something with it
>   * window foo closes
>   * IM sends the composed text for window foo to KWin
> 
> Now what? In case we would eliminate the IPC by making KWin link the IM
> module it becomes:
> 
>   * KWin gets key event
>   * KWin decides it goes to IM for window foo
>   * IM returns the composed text for window foo
>   * KWin forwards the composed text to window foo
>   * window foo closes
> 
> So from KWin perspective everything becomes cleaner if there is no IPC
> involved towards the IM daemon. In that case KWin needs to adjust way
> less as we don't need a dedicated protocol.
> 
> I understand your concerns with linking stuff and loading plugins but I
> don't share them. Yes I also see this as a problem but I think it's less
> of a problem than IPC in this crucial area.
Then why IPC exists in the first place? The whole wayland stuff IS IPC. Why 
there ARE processes?..

Also, running it inside kwin could still be problematic. It'll also need to 
display UI. From what I heard about, to run a qml window inside kwin could 
even be a problem.

The races you pointed about is not really a problem. Weston has already done 
it well. Unless you want to reinvent a new protocol, using the current wayland 
protocol essentially does what I said. And if such a thing would interfere 
with kwin's rendering procedure, then probably kwin should refactor about 
that.

And let me give you some number here, a modern input method for Chinese could 
takes about 30ms to handle one single key (it is THAT complex and we are all 
limited by the complexity, though I measured it about 5 years ago). You really 
want to have kwin block on that and wait for such a long time? And just 
because it is such a slow thing, the IPC latency is not even comparable. If 
you want good prediction or handwriting, it will be slow. There's no im use 
neural network on linux right now, but iOS's virtual keyboard is already doing 
that. Which might be the future, but also mean the im processing time might 
not slow down.

Also the "input method always on" idea is not saying that every single key 
will be send to input method, it just mean whenever user need type text, it 
will be forwarded to 

Re: Default touch screen edge gestures

2017-04-08 Thread Ivan Čukić
Hi Martin,

I think this needs more in-depth investigation. We've had a couple of,
I'd say, knee jerk shortcuts pushed to master without much thought
about them (Alt+Space for KRunner, Meta+number for tasks).

>From my point of view, window switching, present windows and the
desktop grid are essentially the same thing. The best solution IMO
would be to combine them all, and the UI should not be the same for
all devices.

For example, on a medium screen, for devices that are handheld, window
switcher is perfect since the window list is reachable with the finger
the user swiped with.

For small screens, that is on the phones, the whole screens should be
coverable by 'the finger', so a whole screen could be used for the
switching (like present windows).

On larger devices that are not handhelds, but are still touch-enabled,
we could have a desktop grid, or some present windows + present
virtual desktops switcher.

Cheers,
Ivan


D5355: Fix query for available modules

2017-04-08 Thread Albert Astals Cid
aacid created this revision.
Restricted Application added a project: Plasma.
Restricted Application added a subscriber: plasma-devel.

REVISION SUMMARY
  The old query was bad because two reasons:
  
  - it didn't use the same query systemsettings uses fo
  - it didn't use exist so if the first property did not exist the second one 
was not evaluated since the parser bailed out

TEST PLAN
  Ran kcmshell5 --list, it's better now

REPOSITORY
  R126 KDE CLI Utilities

BRANCH
  Plasma/5.8

REVISION DETAIL
  https://phabricator.kde.org/D5355

AFFECTED FILES
  kcmshell/main.cpp

To: aacid
Cc: plasma-devel, progwolff, lesliezhai, ali-mohamed, jensreuterberg, abetts, 
sebas, apol


Re: Complex text input in Plasma

2017-04-08 Thread Martin Gräßlin

Am 2017-04-08 17:26, schrieb Weng Xuetian:


You're wrong about the QT_IM_MODULE stuff. To make application to use 
the
wayland protocol to type (text-input), the implementation must be done 
with
QT_IM_MODULE=wayland. I don't mind if it is set to certain application 
but set
it in general won't work. Also to have real virtual keyboard , you need 
to let

the input method daemon to provides a virtual keyboard implementation.


No you are wrong about that one :-) It might be that it used to be like 
that, but Wayland is the default if no QT_IM_MODULE is specified. See 
https://code.qt.io/cgit/qt/qtwayland.git/tree/src/client/qwaylandintegration.cpp#n142




And also, merging more and more daemon into kwin is not always good 
even from
security point of view. The problem is, once it got merged, the whole 
memory
space is being exposed. Which means, if there's a single piece of code 
is
vulnerable, it will affect the whole compositor. We are not perfect 
people, and
that's why put more code together will make it more vulnerable to 
attacker. If
you consider that, your prevention of ptrace on kwin becomes nothing 
and so

does your effort to make kwin not loading some random plugin (prevent
ld_preload and qt_plugins_path?).


The security of the system breaks with the weakest link. Whether the IM 
daemon is insecure by running standalone or inside KWin isn't a 
difference.



So, my proposal to this will be:
im daemon <-> kwin <-> application, and the communication is done with 
some

wayland protocol.

and imho that would be best option to all people. Here's the reason

Pros
- less code to run within kwin process
- less change needed to existing im daemon (we just need an extra 
frontend)

and kwin
- no hard dependency

Cons:
more ipc latency, but this only happens if user need to type.


The IPC latency is a huge problem here. If we want to have a good 
experience KWin needs to decide whether to send a key event to the IM 
daemon or through wl_keyboard interface to the application. This means 
possibly a roundtrip in the event handling code. This code is currently 
the most crucial part of KWin. It opens a can of worms if we go IPC 
there and given your suggestion it needs IPC.


And even if we handle it without roundtrip we run into timing issues.
Consider:
 * KWin gets key event
 * KWin decides it goes to IM for window foo
 * IM does something with it
 * window foo closes
 * IM sends the composed text for window foo to KWin

Now what? In case we would eliminate the IPC by making KWin link the IM 
module it becomes:


 * KWin gets key event
 * KWin decides it goes to IM for window foo
 * IM returns the composed text for window foo
 * KWin forwards the composed text to window foo
 * window foo closes

So from KWin perspective everything becomes cleaner if there is no IPC 
involved towards the IM daemon. In that case KWin needs to adjust way 
less as we don't need a dedicated protocol.


I understand your concerns with linking stuff and loading plugins but I 
don't share them. Yes I also see this as a problem but I think it's less 
of a problem than IPC in this crucial area.


Cheers
Martin


Re: Complex text input in Plasma

2017-04-08 Thread Weng Xuetian
On Friday, 7 April 2017 23:18:37 PDT,Martin Gräßlin wrote:
> Am 2017-04-08 01:04, schrieb Weng Xuetian:
> > On Friday, 7 April 2017 06:46:03 PDT,Martin Gräßlin wrote:
> > 
> >> Am 2017-04-07 07:56, schrieb Takao Fujiwara:
> >> >> Due to that: no chance for IM controlling part of our stack. We
> >> >> control the IM.
> >> > 
> >> > Probably I think this way would not work with IBus.
> >> > Each IBus IME are called by IBus dbus method. You hardly ask each IME
> >> > maintainer to change the protocol.
> >> > IBus daemon would be the controller of IBUs IMEs.
> >> 
> >> I think I need to describe in a better way how I envision the future
> >> architecture.
> >> 
> >> I want to have the IM daemon merged into the wayland compositor. So
> >> KWin
> >> would talk directly with the IM through library calls and the composed
> >> text would be sent from KWin to the application through the Wayland
> >> text-input protocol.
> >> 
> >> I want to eliminate the IPC between applications and IM daemon.
> >> 
> >> If we are going to touch this code we can strive for the best solution
> >> and not keep stuck on the approach used on X11. And yes that might
> >> need
> >> adjusting the IMEs. But they need to be adjusted anyway. We wouldn't
> >> have this discussion if it would just work on Wayland.
> >> 
> >> Cheers
> >> Martin
> > 
> > I'm sorry to point out this won't really works. The Xwayland client
> > will have
> > to use XIM anyway.
> 
> Let's please completely ignore the legacy world in the planning for the
> future. We setup the perfect world and then look how we can make
> Xwayland work. Even ignoring X11 might be an option as Wayland will now
> get a massive push thanks to Mir finally being dead.
> 
> > From security point of view, I'm ok if the daemon doesn't directly
> > connect to
> > application. But I don't want kwin to run the daemon within kwin's
> > process. It
> > would impose too much complication and I will not be comfortable about
> > that.
> 
> I don't mind the IM daemon being part of KWin.
> 
> > People will need to load certain concrete input method as a plugin, I
> > don't
> > think kwin itself want to include yet another plugin complex system to
> > be
> > running inside kwin.
> 
> I don't mind that either.
> 
> > Just think it something similar, will kwin merge plasma? I don't think
> > you
> > really want to  that.
> 
> Well we merged:
>   * kglobalaccel
>   * screenlocker
>   * keyboard kded
>   * virtual keyboard
>   * multi screen functionality
>   * Everything that X-Server does
>   * ...
> 
> No I wouldn't mind merging plasma if it would make sense and improve the
> overall experience. That's what I care for: offering the best possible
> and secure experience. If that requires merging yet another daemon I
> don't mind. There are no sacred cows to me. We are changing the complete
> architecture of the display management, so I don't have a problem with
> rethinking everything.
> 
> > So the best solution IMHO, is to let kwin to expose certain feature
> > that will
> > only be allowed to be accessed the im daemon that kwin starts, which
> > means
> > user any not arbitrary launch a daemon and do whatever they want. And
> > that IS
> > what current wayland's im protocol is doing.
> > 
> > Also, talking about the layout, I don't think you really want to write
> > the
> > layout control code. I have never seen a developer who only use
> > keyboard
> > layout stuff knows what kind of feature that input method could
> > achieve.
> 
> Please note that only the Wayland compositor is able to set the keyboard
> layout. That is a technical restriction of the Wayland protocol. So yes
> KWin must (!) manage the keyboard layout no matter what IM devs think
> about it. It just must be in KWin.
> 
> > Compositor should really give this kind of freedom to input method
> > daemon. It
> > doesn't expose extra security issue if you think about it. kwin would
> > just
> > works like a router that talks with input method via wayland protocol.
> > And
> > kwin will not talk with some random input method daemon that it
> > unprivileged.
> 
> I don't mind giving IM some freedom, but at the center of the
> interaction there is KWin.
> 
> So for me the requirements are:
>   * no key events are sent via DBus
>   * applications do not talk to IM daemon
>   * QT_IM_MODULE must not be used as that breaks virtual keyboard
> handling
>   * No IPC in the key event handling code of KWin
> 
> I don't mind whether the IM daemon is a separate process only KWin
> interacts with or a library KWin links. I think a library would be
> better as that removes the need for IPC and allows to directly involve
> the IM from keyboard handling code. Please compare in that point to
> kglobalaccel.
> 
> On X11 kglobalaccel only listens to the key events which would trigger
> the shortcut and it's restricted by things like keyboard grab. On
> Wayland KWin can send any key event through kglobalaccel as it's linked
> directly. This allows us to make 

D5343: applet: Reset height of item label

2017-04-08 Thread David Rosca
drosca added inline comments.

INLINE COMMENTS

> anthonyfieroni wrote in ListItemBase.qml:104
> maximumLineCount: 1 should be added or elide will stop to work
> http://doc.qt.io/qt-5/qml-qtquick-text.html#elide-prop

Eliding still works though.

REVISION DETAIL
  https://phabricator.kde.org/D5343

To: drosca, #plasma
Cc: anthonyfieroni, plasma-devel, progwolff, lesliezhai, ali-mohamed, 
jensreuterberg, abetts, sebas, apol


D5343: applet: Reset height of item label

2017-04-08 Thread Anthony Fieroni
anthonyfieroni added inline comments.

INLINE COMMENTS

> ListItemBase.qml:104
>  Layout.fillWidth: true
> +height: undefined
>  level: 5

maximumLineCount: 1 should be added or elide will stop to work
http://doc.qt.io/qt-5/qml-qtquick-text.html#elide-prop

REVISION DETAIL
  https://phabricator.kde.org/D5343

To: drosca, #plasma
Cc: anthonyfieroni, plasma-devel, progwolff, lesliezhai, ali-mohamed, 
jensreuterberg, abetts, sebas, apol


D5351: kcm_baloofile: Add option to disable file content indexing

2017-04-08 Thread Fabian Vogt
fvogt updated this revision to Diff 13233.
fvogt added a comment.


  Obviously for master only.

REPOSITORY
  R119 Plasma Desktop

CHANGES SINCE LAST UPDATE
  https://phabricator.kde.org/D5351?vs=13232=13233

BRANCH
  master

REVISION DETAIL
  https://phabricator.kde.org/D5351

AFFECTED FILES
  CMakeLists.txt
  kcms/baloo/configwidget.ui
  kcms/baloo/kcm.cpp
  kcms/baloo/kcm.h

To: fvogt, #plasma
Cc: plasma-devel, progwolff, lesliezhai, ali-mohamed, jensreuterberg, abetts, 
sebas, apol


D5351: kcm_baloofile: Add option to disable file content indexing

2017-04-08 Thread Fabian Vogt
fvogt created this revision.
Restricted Application added a project: Plasma.

REVISION SUMMARY
  Baloo supports "only basic indexing" since version 5.15, which
  causes it to only store file names into the database:
  https://community.kde.org/Baloo/Configuration

TEST PLAN
  Ran "balooctl config show contentIndexing" after changing the option.

REPOSITORY
  R119 Plasma Desktop

BRANCH
  Plasma/5.9

REVISION DETAIL
  https://phabricator.kde.org/D5351

AFFECTED FILES
  CMakeLists.txt
  kcms/baloo/configwidget.ui
  kcms/baloo/kcm.cpp
  kcms/baloo/kcm.h

To: fvogt, #plasma
Cc: plasma-devel, progwolff, lesliezhai, ali-mohamed, jensreuterberg, abetts, 
sebas, apol


D5339: Include a bottom toolbar for the application page

2017-04-08 Thread Jens Reuterberg
jensreuterberg added a comment.


  I think both are good (but man those colours Aleix :D also the text should be 
white) 
  The logic behind the alternatives for posterity:
  
  1. Buttons on bottom of Detail view - the install button in the detail view 
is there for those who will want to read information about the application. The 
goal being that all applications should have a wealth of meta data (we're not 
there yet but "one day" etc) and since a user can install from the middle 
column as well the assumption is that a user in the detail view will be 
interested in the information within. So the bottom right is in that case (and 
in the case of left-to-right reading of course) is the naturall place for such 
a button.
  2. Buttons on the top of Detail view - the back button is in this case 
slightly more natural as it resembles a breadcrumb its a page system and that 
is where its often expected, that being said the downside is that it camoflages 
the install button. Since we don't have coloured buttons and can't make the 
install button pop out that makes it slightly more tricky.
  3. Coloured areas instead of buttons - this is the tack-and-paste solution to 
#2's problem. By making strikingly coloured areas instead of buttons we can 
essentially put the install button wherever we like since it will scream for 
attention no matter what.

REPOSITORY
  R134 Discover Software Store

REVISION DETAIL
  https://phabricator.kde.org/D5339

To: apol, leinir, colomar, jensreuterberg
Cc: plasma-devel, progwolff, lesliezhai, ali-mohamed, jensreuterberg, abetts, 
sebas, apol


D5222: Make the applet DBus activated

2017-04-08 Thread David Rosca
This revision was automatically updated to reflect the committed changes.
Closed by commit R115:50157cc0de87: Make the applet DBus activated (authored by 
drosca).

REPOSITORY
  R115 Plasma Audio Volume Applet

CHANGES SINCE LAST UPDATE
  https://phabricator.kde.org/D5222?vs=12922=13224

REVISION DETAIL
  https://phabricator.kde.org/D5222

AFFECTED FILES
  applet/metadata.desktop

To: drosca, #plasma, apol
Cc: plasma-devel, progwolff, lesliezhai, ali-mohamed, jensreuterberg, abetts, 
sebas, apol


Default touch screen edge gestures

2017-04-08 Thread Martin Gräßlin

Hi Plasmates,

now that we have touch screen edge swipe gesture support both on X11 and 
Wayland we could define which actions to put on each edge.


My suggestion would be to put a sensible action on each of the four 
actions.


Personal proposal:

*Left Edge:*
Window Switching as the default alt+tab theme is on the left side. Also 
on Windows 10 this happens on the left edge.


*Top Edge:*
Present Windows as 4 finger swipe downwards on touchpad triggers present 
windows.


*Bottom Edge:*
Desktop Grid as 4 finger swipe upwards on touchpad triggers desktop 
grid.


*Right Edge:*
Application launcher


What I dislike about the proposal is: Present Windows and Alt+Tab are 
kind of redundant. Given that a better default edge would be nice for 
top edge. KRunner would be a nice fit as it's also on top, but it's 
rather useless on touch.


The application launcher is rather disconnected in the default setup if 
we swipe in from left screen. What I personally would prefer if we could 
trigger the application dashboard. Of course we still don't have working 
touch support in the application launchers, so if we go for that we need 
fixing (same applies for alt+tab btw.).


So please comment and propose your own ideas.

Cheers
Martin



D5346: DigitalClock: Use correct language for month and day names

2017-04-08 Thread David Rosca
drosca created this revision.
Restricted Application added a project: Plasma.
Restricted Application added a subscriber: plasma-devel.

REVISION SUMMARY
  Same as https://phabricator.kde.org/D5345

TEST PLAN
  I have English ui language + Czech time format. Months and days are now in 
English and not Czech.

REPOSITORY
  R120 Plasma Workspace

BRANCH
  master

REVISION DETAIL
  https://phabricator.kde.org/D5346

AFFECTED FILES
  applets/digital-clock/package/contents/ui/CalendarView.qml

To: drosca, #plasma, mck182
Cc: plasma-devel, progwolff, lesliezhai, ali-mohamed, jensreuterberg, abetts, 
sebas, apol


D5339: Include a bottom toolbar for the application page

2017-04-08 Thread Thomas Pfeiffer
colomar added a comment.


  Version 2 (top toolbar, no colors) looks the best to me, with the downside 
that the install button does not stick out. If we go without colors, we'd 
probably at least need an icon for the install button to not make it totally 
blend with the rest.

REPOSITORY
  R134 Discover Software Store

REVISION DETAIL
  https://phabricator.kde.org/D5339

To: apol, leinir, jensreuterberg, colomar
Cc: plasma-devel, progwolff, lesliezhai, ali-mohamed, jensreuterberg, abetts, 
sebas, apol


D5345: Calendar: Use correct language for month and day names

2017-04-08 Thread David Rosca
drosca created this revision.
Restricted Application added projects: Plasma, Frameworks.
Restricted Application added subscribers: Frameworks, plasma-devel.

REVISION SUMMARY
  Apply fix for bug 353715 also on QML side.

TEST PLAN
  I have English ui language + Czech time format. Months and days are now in 
English and not Czech.

REPOSITORY
  R242 Plasma Framework (Library)

BRANCH
  master

REVISION DETAIL
  https://phabricator.kde.org/D5345

AFFECTED FILES
  src/declarativeimports/calendar/qml/DaysCalendar.qml
  src/declarativeimports/calendar/qml/MonthMenu.qml
  src/declarativeimports/calendar/qml/MonthView.qml

To: drosca, #plasma, mck182
Cc: plasma-devel, #frameworks, progwolff, lesliezhai, ali-mohamed, 
jensreuterberg, abetts, sebas, apol


D5343: applet: Reset height of item label

2017-04-08 Thread David Rosca
drosca created this revision.
Restricted Application added a project: Plasma.
Restricted Application added a subscriber: plasma-devel.

REVISION SUMMARY
  Fixes item label text jumping up and down when resizing applet or the
  text changes.

TEST PLAN
  Issue fixed

BRANCH
  master

REVISION DETAIL
  https://phabricator.kde.org/D5343

AFFECTED FILES
  applet/contents/ui/ListItemBase.qml

To: drosca, #plasma
Cc: plasma-devel, progwolff, lesliezhai, ali-mohamed, jensreuterberg, abetts, 
sebas, apol


D5144: Change the volume icon/mute button into a ToolButton

2017-04-08 Thread David Rosca
drosca accepted this revision.
drosca added a comment.
This revision is now accepted and ready to land.


  > My theory is that clicking the button will change the ToolButton's svg, 
which probably causes the naturalHeight to be set, causing the ColumnLayout to 
recalculate the height of the rows. Whatever is loading wrong at initialization 
is corrected, causes the reflow, which makes the text shift.
  
  No, it's a bug in PlasmaComponents.Label, it sets:
  
height: Math.round(Math.max(paintedHeight, 
theme.mSize(theme.defaultFont).height*1.6))
  
  If you do `height: paintedHeight` in our code, the issue is fixed.
  
  > Should I go ahead and commit this?
  
  Yes, thanks.

REPOSITORY
  R115 Plasma Audio Volume Applet

REVISION DETAIL
  https://phabricator.kde.org/D5144

To: Zren, #plasma, subdiff, drosca
Cc: mart, subdiff, drosca, plasma-devel, progwolff, lesliezhai, ali-mohamed, 
jensreuterberg, abetts, sebas, apol


Re: Complex text input in Plasma

2017-04-08 Thread Martin Gräßlin

Am 2017-04-08 01:04, schrieb Weng Xuetian:

On Friday, 7 April 2017 06:46:03 PDT,Martin Gräßlin wrote:

Am 2017-04-07 07:56, schrieb Takao Fujiwara:
>> Due to that: no chance for IM controlling part of our stack. We
>> control the IM.
>
> Probably I think this way would not work with IBus.
> Each IBus IME are called by IBus dbus method. You hardly ask each IME
> maintainer to change the protocol.
> IBus daemon would be the controller of IBUs IMEs.

I think I need to describe in a better way how I envision the future
architecture.

I want to have the IM daemon merged into the wayland compositor. So 
KWin

would talk directly with the IM through library calls and the composed
text would be sent from KWin to the application through the Wayland
text-input protocol.

I want to eliminate the IPC between applications and IM daemon.

If we are going to touch this code we can strive for the best solution
and not keep stuck on the approach used on X11. And yes that might 
need

adjusting the IMEs. But they need to be adjusted anyway. We wouldn't
have this discussion if it would just work on Wayland.

Cheers
Martin
I'm sorry to point out this won't really works. The Xwayland client 
will have

to use XIM anyway.


Let's please completely ignore the legacy world in the planning for the 
future. We setup the perfect world and then look how we can make 
Xwayland work. Even ignoring X11 might be an option as Wayland will now 
get a massive push thanks to Mir finally being dead.




From security point of view, I'm ok if the daemon doesn't directly 
connect to
application. But I don't want kwin to run the daemon within kwin's 
process. It
would impose too much complication and I will not be comfortable about 
that.


I don't mind the IM daemon being part of KWin.



People will need to load certain concrete input method as a plugin, I 
don't
think kwin itself want to include yet another plugin complex system to 
be

running inside kwin.


I don't mind that either.



Just think it something similar, will kwin merge plasma? I don't think 
you

really want to  that.


Well we merged:
 * kglobalaccel
 * screenlocker
 * keyboard kded
 * virtual keyboard
 * multi screen functionality
 * Everything that X-Server does
 * ...

No I wouldn't mind merging plasma if it would make sense and improve the 
overall experience. That's what I care for: offering the best possible 
and secure experience. If that requires merging yet another daemon I 
don't mind. There are no sacred cows to me. We are changing the complete 
architecture of the display management, so I don't have a problem with 
rethinking everything.




So the best solution IMHO, is to let kwin to expose certain feature 
that will
only be allowed to be accessed the im daemon that kwin starts, which 
means
user any not arbitrary launch a daemon and do whatever they want. And 
that IS

what current wayland's im protocol is doing.

Also, talking about the layout, I don't think you really want to write 
the
layout control code. I have never seen a developer who only use 
keyboard
layout stuff knows what kind of feature that input method could 
achieve.


Please note that only the Wayland compositor is able to set the keyboard 
layout. That is a technical restriction of the Wayland protocol. So yes 
KWin must (!) manage the keyboard layout no matter what IM devs think 
about it. It just must be in KWin.


Compositor should really give this kind of freedom to input method 
daemon. It
doesn't expose extra security issue if you think about it. kwin would 
just
works like a router that talks with input method via wayland protocol. 
And
kwin will not talk with some random input method daemon that it 
unprivileged.


I don't mind giving IM some freedom, but at the center of the 
interaction there is KWin.


So for me the requirements are:
 * no key events are sent via DBus
 * applications do not talk to IM daemon
 * QT_IM_MODULE must not be used as that breaks virtual keyboard 
handling

 * No IPC in the key event handling code of KWin

I don't mind whether the IM daemon is a separate process only KWin 
interacts with or a library KWin links. I think a library would be 
better as that removes the need for IPC and allows to directly involve 
the IM from keyboard handling code. Please compare in that point to 
kglobalaccel.


On X11 kglobalaccel only listens to the key events which would trigger 
the shortcut and it's restricted by things like keyboard grab. On 
Wayland KWin can send any key event through kglobalaccel as it's linked 
directly. This allows us to make way better decisions as we have a 
global view. We can decide whether right now a global shortcut makes 
sense or not and then not send it in.


Please note that I look at this from an absolute engineer perspective. I 
don't care how it was in the past and only look at how it should be in 
the future. Especially given that the situation on X11 is bad. I don't 
want users to have to configure anything. If we add this to KWin