Re: Re: Re: Re: Re: Notes from "New OSD in Plasma 2"

2014-01-23 Thread Martin Gräßlin
On Tuesday 21 January 2014 17:29:12 Martin Klapetek wrote:
> On Tue, Jan 21, 2014 at 3:28 PM, Martin Klapetek
> 
> wrote:
> > On Tue, Jan 21, 2014 at 3:10 PM, Martin Gräßlin wrote:
> >> On Tuesday 21 January 2014 14:26:59 Martin Klapetek wrote:
> >> > On Tue, Jan 21, 2014 at 8:57 AM, Martin Gräßlin 
> >> 
> >> wrote:
> >> > > I had a look and the Plasma side seems fine. You can verify using
> >> 
> >> xprop.
> >> 
> >> > > My
> >> > > 
> >> > >  demo dialog got the notification type.
> >> > 
> >> > Hmm...I might have been wrong then, using xprop on the OSD I get
> >> > 
> >> > _NET_WM_WINDOW_TYPE(ATOM) = _KDE_NET_WM_WINDOW_TYPE_OVERRIDE,
> >> > _NET_WM_WINDOW_TYPE_NORMAL
> >> 
> >> That's not what I had. My example code which I wrote this morning for
> >> testing:
> >> http://pastebin.kde.org/phhnfbtda
> >> 
> >> I executed the code using qmlscene. Maybe that makes a difference.
> > 
> > Ok, two things I noticed:
> > 
> > 1) If "visible: true" is not present, the type is never NET::Notification,
> > even in your code. Once added, it has proper type.
> > 2) This works when executed in qmlscene only, it does not work when
> > using KDeclarative::QmlObject for the dialog.
> > 
> > I'll investigate why.
> 
> Update: windowType for the Dialog is overiden by Qt
> (in QXcbWindow::setNetWmWindowFlags). That method (in combination with
> window flags) however does not support NET::Notification. Should we extend
> that system? Or should we make that method not /replace/ the type but just
> add it (would that even work?)? Should we work around that in our code?

Just for the record: it is a bug in PlasmaCore.Dialog - see 
https://git.reviewboard.kde.org/r/115258/

Cheers
Martin G.

signature.asc
Description: This is a digitally signed message part.
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Re: Re: Re: Notes from "New OSD in Plasma 2"

2014-01-21 Thread Martin Klapetek
On Tue, Jan 21, 2014 at 3:28 PM, Martin Klapetek
wrote:

> On Tue, Jan 21, 2014 at 3:10 PM, Martin Gräßlin wrote:
>
>> On Tuesday 21 January 2014 14:26:59 Martin Klapetek wrote:
>> > On Tue, Jan 21, 2014 at 8:57 AM, Martin Gräßlin 
>> wrote:
>> > > I had a look and the Plasma side seems fine. You can verify using
>> xprop.
>> > > My
>> > >
>> > >  demo dialog got the notification type.
>> >
>> > Hmm...I might have been wrong then, using xprop on the OSD I get
>> >
>> > _NET_WM_WINDOW_TYPE(ATOM) = _KDE_NET_WM_WINDOW_TYPE_OVERRIDE,
>> > _NET_WM_WINDOW_TYPE_NORMAL
>>
>> That's not what I had. My example code which I wrote this morning for
>> testing:
>> http://pastebin.kde.org/phhnfbtda
>>
>> I executed the code using qmlscene. Maybe that makes a difference.
>>
>
> Ok, two things I noticed:
>
> 1) If "visible: true" is not present, the type is never NET::Notification,
> even in your code. Once added, it has proper type.
> 2) This works when executed in qmlscene only, it does not work when
> using KDeclarative::QmlObject for the dialog.
>
> I'll investigate why.
>

Update: windowType for the Dialog is overiden by Qt
(in QXcbWindow::setNetWmWindowFlags). That method (in combination with
window flags) however does not support NET::Notification. Should we extend
that system? Or should we make that method not /replace/ the type but just
add it (would that even work?)? Should we work around that in our code?

Please advise.

Cheers
-- 
Martin Klapetek | KDE Developer
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Re: Re: Re: Notes from "New OSD in Plasma 2"

2014-01-21 Thread Martin Klapetek
On Tue, Jan 21, 2014 at 3:10 PM, Martin Gräßlin  wrote:

> On Tuesday 21 January 2014 14:26:59 Martin Klapetek wrote:
> > On Tue, Jan 21, 2014 at 8:57 AM, Martin Gräßlin 
> wrote:
> > > I had a look and the Plasma side seems fine. You can verify using
> xprop.
> > > My
> > >
> > >  demo dialog got the notification type.
> >
> > Hmm...I might have been wrong then, using xprop on the OSD I get
> >
> > _NET_WM_WINDOW_TYPE(ATOM) = _KDE_NET_WM_WINDOW_TYPE_OVERRIDE,
> > _NET_WM_WINDOW_TYPE_NORMAL
>
> That's not what I had. My example code which I wrote this morning for
> testing:
> http://pastebin.kde.org/phhnfbtda
>
> I executed the code using qmlscene. Maybe that makes a difference.
>

Ok, two things I noticed:

1) If "visible: true" is not present, the type is never NET::Notification,
even in your code. Once added, it has proper type.
2) This works when executed in qmlscene only, it does not work when
using KDeclarative::QmlObject for the dialog.

I'll investigate why.

Cheers
-- 
Martin Klapetek | KDE Developer
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Re: Re: Re: Notes from "New OSD in Plasma 2"

2014-01-21 Thread Martin Gräßlin
On Tuesday 21 January 2014 14:26:59 Martin Klapetek wrote:
> On Tue, Jan 21, 2014 at 8:57 AM, Martin Gräßlin  wrote:
> > I had a look and the Plasma side seems fine. You can verify using xprop.
> > My
> > 
> >  demo dialog got the notification type.
> 
> Hmm...I might have been wrong then, using xprop on the OSD I get
> 
> _NET_WM_WINDOW_TYPE(ATOM) = _KDE_NET_WM_WINDOW_TYPE_OVERRIDE,
> _NET_WM_WINDOW_TYPE_NORMAL

That's not what I had. My example code which I wrote this morning for testing: 
http://pastebin.kde.org/phhnfbtda

I executed the code using qmlscene. Maybe that makes a difference.

> 
> Which I don't understand as the Dialog code looks fine and it goes through
> "NETWinInfo::setWindowType(..)" setting the notification type properly.
> 
> Also if the type is "Normal", shouldn't it have normal win decorations? I'm
> getting a borderless window (unless that's actually done by some inner kwin
> stuff).

No, the type is _KDE_NET_WM_WINDOW_TYPE_OVERRIDE, normal is just the fallback 
for all other window managers. Override is our window type hint for "don't 
decorate me".

Cheers
Martin

signature.asc
Description: This is a digitally signed message part.
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Re: Re: Notes from "New OSD in Plasma 2"

2014-01-21 Thread Martin Klapetek
On Tue, Jan 21, 2014 at 8:57 AM, Martin Gräßlin  wrote:

> I had a look and the Plasma side seems fine. You can verify using xprop. My
>  demo dialog got the notification type.
>

Hmm...I might have been wrong then, using xprop on the OSD I get

_NET_WM_WINDOW_TYPE(ATOM) = _KDE_NET_WM_WINDOW_TYPE_OVERRIDE,
_NET_WM_WINDOW_TYPE_NORMAL

Which I don't understand as the Dialog code looks fine and it goes through
"NETWinInfo::setWindowType(..)" setting the notification type properly.

Also if the type is "Normal", shouldn't it have normal win decorations? I'm
getting a borderless window (unless that's actually done by some inner kwin
stuff).

Cheers
-- 
Martin Klapetek | KDE Developer
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Re: Re: Notes from "New OSD in Plasma 2"

2014-01-21 Thread Martin Gräßlin
Martin GräßlinOn Tuesday 21 January 2014 08:32:16  wrote:
> On Tuesday 21 January 2014 01:06:36 Martin Klapetek wrote:
> > On Mon, Jan 20, 2014 at 6:59 PM, Thomas Lübking
> > 
> > wrote:
> > > On Montag, 20. Januar 2014 17:29:18 CEST, Martin Klapetek wrote:
> > >  How would the positioning work inside kwin and where?
> > > 
> > > kwin/placement.cpp
> > 
> > I'm stucked. I'm pretty sure I'm setting the NET::Notification windowType
> > on the PlasmaCore.Dialog, however when it shows up, KWin tells me it's
> > NET::Normal (Client::windowType()) plus Client::isNotification() returns
> > false.
> 
> Probably a bug in PlasmaCore.Dialog. It shouldn't be NET::Normal at all, but
> NET::Dialog by default. I'll have a look.
I had a look and the Plasma side seems fine. You can verify using xprop. My 
demo dialog got the notification type.

But KWin does not yet support notifications window type for managed windows. 
You need a patch to KWin, for example http://pastebin.kde.org/pkyshgvpx

Cheers
Martin


signature.asc
Description: This is a digitally signed message part.
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Re: Notes from "New OSD in Plasma 2"

2014-01-20 Thread Martin Gräßlin
On Tuesday 21 January 2014 01:06:36 Martin Klapetek wrote:
> On Mon, Jan 20, 2014 at 6:59 PM, Thomas Lübking
> 
> wrote:
> > On Montag, 20. Januar 2014 17:29:18 CEST, Martin Klapetek wrote:
> >  How would the positioning work inside kwin and where?
> > 
> > kwin/placement.cpp
> 
> I'm stucked. I'm pretty sure I'm setting the NET::Notification windowType
> on the PlasmaCore.Dialog, however when it shows up, KWin tells me it's
> NET::Normal (Client::windowType()) plus Client::isNotification() returns
> false.

Probably a bug in PlasmaCore.Dialog. It shouldn't be NET::Normal at all, but 
NET::Dialog by default. I'll have a look.

Cheers
Martin

signature.asc
Description: This is a digitally signed message part.
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Notes from "New OSD in Plasma 2"

2014-01-20 Thread Martin Klapetek
On Mon, Jan 20, 2014 at 6:59 PM, Thomas Lübking
wrote:

> On Montag, 20. Januar 2014 17:29:18 CEST, Martin Klapetek wrote:
>
>  How would the positioning work inside kwin and where?
>>
> kwin/placement.cpp
>

I'm stucked. I'm pretty sure I'm setting the NET::Notification windowType
on the PlasmaCore.Dialog, however when it shows up, KWin tells me it's
NET::Normal (Client::windowType()) plus Client::isNotification() returns
false.

Doesn't look as easy as I thought it would be :)

Cheers
-- 
Martin Klapetek | KDE Developer
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Notes from "New OSD in Plasma 2"

2014-01-20 Thread Thomas Lübking

On Montag, 20. Januar 2014 17:29:18 CEST, Martin Klapetek wrote:


How would the positioning work inside kwin and where?

kwin/placement.cpp
You may want to take a look at https://git.reviewboard.kde.org/r/110918/ in 
addition.


Btw does it also handle when you click a youtube link you got from someone
(IM, email etc)?


passing a yt url as minitube parameter works "as expected" (get's you that video and 
related ones) but handling "http://www.youtube.com/watch?v=foobar";; differently from eg. 
http://www.kde.org or even http://www.youtube.com would require a smarter kde-open (or xdg-open 
wrapper) - so far one can only handle protocols or mimetypes.

Cheers,
Thomas
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Notes from "New OSD in Plasma 2"

2014-01-20 Thread Martin Klapetek
On Sat, Jan 18, 2014 at 3:55 PM, Thomas Lübking
wrote:

>
> KWin cannot take care of moving it if plasma determines the position, but
> i think that the client requesting the OSD should determine the
> preferred/requried screen (see brightness example for why) and KWin the
> position.
>

Currently Plasma does not determine the position afaics, just the size, the
placing looks like it's done by kwin. How would the positioning work inside
kwin and where? I now set the NET::Notification window type on the OSD,
would there be some special "if (windowType == NET::Notification) {
position stuff; } ? I'd like to play around with that for a bit.


> KWin can then avoid window collisions (as is now, in "smart", maybe with a
> center preference) and esp. fullscreen windows in the multiscreen case (if
> the OSD doesn't care), resp. we can allow a particular placing for OSDs
> (what could more or less be a simplified config for a window rule on
> screen/placing/position)
> "Smart" placement is typically not a client job.
>

+1


> Most important (from client side) about this window type should be fully
> input shaped ("output only") and denying input focus (latter "faking"
> override_redirect)
> We cannot enforce either from KWin's side if we're re-using an existing
> type.
>

Done now.


> OT about flash: minitube.
>

Btw does it also handle when you click a youtube link you got from someone
(IM, email etc)?

Cheers
-- 
Martin Klapetek | KDE Developer
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Notes from "New OSD in Plasma 2"

2014-01-18 Thread Martin Graesslin
On Saturday 18 January 2014 15:55:31 Thomas Lübking wrote:
> On Samstag, 18. Januar 2014 13:34:49 CEST, Martin Graesslin wrote:
> > Show it on all screens. That is create one OSD per screen. If that's not
> > wanted I'd say we use what KWin considers the "active" screen. And we
> > could
> > take care of moving it there. (Active screen is depending on
> > config option the
> > screen with the active window or the screen which has the mouse).
> 
> Plasma-desktop could need the "active" screen to be exported anyway (taskbar
> needs to know whether a window can raise - see bug #246838)

I like the idea of exposing the active screen. Will try to draft something 
tomorrow.

> Most important (from client side) about this window type should be fully
> input shaped ("output only") and denying input focus (latter "faking"
> override_redirect) We cannot enforce either from KWin's side if we're
> re-using an existing type.

Good point, we will need to extend the PlasmaCore.Dialog for that. I can also 
try to work on that.

Cheers
Martin

signature.asc
Description: This is a digitally signed message part.
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Notes from "New OSD in Plasma 2"

2014-01-18 Thread Jens Reuterberg
Just so my presence is known:
the icons are on their way! Its my birthday today so I thought "no one will 
notice if I slag off for one weekend, will they?" ;)
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Notes from "New OSD in Plasma 2"

2014-01-18 Thread Thomas Lübking

On Samstag, 18. Januar 2014 13:34:49 CEST, Martin Graesslin wrote:

Show it on all screens. That is create one OSD per screen. If that's not 
wanted I'd say we use what KWin considers the "active" screen. And we could 
take care of moving it there. (Active screen is depending on 
config option the 
screen with the active window or the screen which has the mouse).


Plasma-desktop could need the "active" screen to be exported anyway (taskbar 
needs to know whether a window can raise - see bug #246838)

KWin cannot take care of moving it if plasma determines the position, but i 
think that the client requesting the OSD should determine the 
preferred/requried screen (see brightness example for why) and KWin the 
position.
KWin can then avoid window collisions (as is now, in "smart", maybe with a 
center preference) and esp. fullscreen windows in the multiscreen case (if the OSD 
doesn't care), resp. we can allow a particular placing for OSDs (what could more or less 
be a simplified config for a window rule on screen/placing/position)
"Smart" placement is typically not a client job.

Most important (from client side) about this window type should be fully input shaped ("output 
only") and denying input focus (latter "faking" override_redirect)
We cannot enforce either from KWin's side if we're re-using an existing type.

Reg. the layer & fullscreen windows, we're more or less in the same dilemma as with "should this FS 
window unredirect?", ie. "when does what message is just annoying", ie. if one changes the screen 
brightness or the volume, one would likely not want to be informed about that while playing a video or game, 
while in the "chromebook" case (FS browser as sub-OS) the fullscreen state is completely irrelevant in 
this regard.
IOW: we need better information of the nature of a fullscreen window.


OT about flash: minitube.

Cheers,
Thomas
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Notes from "New OSD in Plasma 2"

2014-01-18 Thread Martin Klapetek
On Sat, Jan 18, 2014 at 2:05 PM, Kai Uwe Broulik wrote:

> Am Samstag, 18. Januar 2014, 14:01:29 schrieb Martin Klapetek:
> > Ah yes, I should have updated the list about that - I talked to Jens
> > shortly after and we came up with more icons than I requested originally,
> > including the "keyboard brightness" plus one for Wi-Fi being turned
> on/off
>
> Aaaand Bluetooh, and Touchpad? ;)
>

Bluetooth should already be there somewhere and touchpad too, yes.

Ok I just checked the log here's the complete list we talked about (sorted
by priority):

 * Screen brightness
 * Keyboard layout
 * Keyboard brightness
 * Wi-Fi on/off
 * Touchpad on/off
 * Bluetooth on/off (already there)

They should all be usable from OSD and also in their smaller versions from
inside plasmoids (like the battery one). I had left that up to Jens to
either make two sets of them (big for OSD with different details; small for
systray/plasmoid icons) or just one scalable.

Cheers
-- 
Martin Klapetek | KDE Developer
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Notes from "New OSD in Plasma 2"

2014-01-18 Thread Kai Uwe Broulik
Am Samstag, 18. Januar 2014, 14:01:29 schrieb Martin Klapetek:
> Ah yes, I should have updated the list about that - I talked to Jens
> shortly after and we came up with more icons than I requested originally,
> including the "keyboard brightness" plus one for Wi-Fi being turned on/off

Aaaand Bluetooh, and Touchpad? ;) 

Cheers
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Notes from "New OSD in Plasma 2"

2014-01-18 Thread Martin Klapetek
On Sat, Jan 18, 2014 at 1:57 PM, Kai Uwe Broulik wrote:

> Hi,
>
> (I hope I have used KMail's Reply-To-All feature correctly)
>
> > That actually brings another quesion - on which screen it should show up?
> > I'd put it wherever mouse cursor currently is.
> >
> > Opinions?
>
> I think it depends on what kind of OSD. For Keyboard layout and Volume it's
> fine to show where the cursor is but for the brightness I think it should
> be
> shown on the display that actually is affected (the internal one) - I'd say
> people would know/expect pressing the screen brightness keys on a notebook
> changes the notebook's screen and not the attached beamer, so the OSD
> should
> be shown on the notebook screen.
>

Good point, thanks. I wonder if we can get that info from some component.


> Btw what about Keyboard brightness? I've just seen a mail from Martin
> Klapetek(?) to Jens about keyboard *layout* and *screen* brightness - we
> need
> a fancy monochrome icon for keyboard brightness, too, as the current
> generic
> keyboard icon doesn't work very for this.
>

Ah yes, I should have updated the list about that - I talked to Jens
shortly after and we came up with more icons than I requested originally,
including the "keyboard brightness" plus one for Wi-Fi being turned on/off
:)

Cheers
-- 
Martin Klapetek | KDE Developer
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Notes from "New OSD in Plasma 2"

2014-01-18 Thread Kai Uwe Broulik
Hi,

(I hope I have used KMail's Reply-To-All feature correctly)

> That actually brings another quesion - on which screen it should show up?
> I'd put it wherever mouse cursor currently is.
> 
> Opinions?

I think it depends on what kind of OSD. For Keyboard layout and Volume it's 
fine to show where the cursor is but for the brightness I think it should be 
shown on the display that actually is affected (the internal one) - I'd say 
people would know/expect pressing the screen brightness keys on a notebook 
changes the notebook's screen and not the attached beamer, so the OSD should 
be shown on the notebook screen.

Btw what about Keyboard brightness? I've just seen a mail from Martin 
Klapetek(?) to Jens about keyboard *layout* and *screen* brightness - we need 
a fancy monochrome icon for keyboard brightness, too, as the current generic 
keyboard icon doesn't work very for this.

Cheers,
Kai Uwe
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Notes from "New OSD in Plasma 2"

2014-01-18 Thread Martin Klapetek
On Sat, Jan 18, 2014 at 1:48 PM, Martin Graesslin wrote:

> > > Proper fix: DPMS should not kick in when a video is being played and
> there
> > > are
> > > powermanagement hooks for it.
> >
> > YouTube.
>
> I heard rumors about Flash going to die in April :-)


If only ;)


> Apart from that: let's
> follow what we said in other threads. Work on the best default experience
> with
> working applications and ignore the broken ones.
>

Afaik all normal video apps (vlc & (s)mplayer at least) use DPMS inhibition
(I heard mplayer generates "X mouse move" events for that).


Cheers
-- 
Martin Klapetek | KDE Developer
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Notes from "New OSD in Plasma 2"

2014-01-18 Thread Martin Graesslin
On Saturday 18 January 2014 13:34:39 Martin Klapetek wrote:
> On Sat, Jan 18, 2014 at 1:34 PM, Martin Graesslin wrote:
> > > I thought about exactly this case. But if you disable the OSD in
> > 
> > "passive"
> > 
> > > actions, you might also miss that the computer is about to power off
> > > your
> > > display (the brightness goes down every once in a while and when it's at
> > 
> > 0,
> > 
> > > DPMS will kick soon...by default). So I guess you do want some kind of
> > > notification on external TV in case you left your power management
> > 
> > enabled.
> > 
> > Proper fix: DPMS should not kick in when a video is being played and there
> > are
> > powermanagement hooks for it.
> 
> YouTube.

I heard rumors about Flash going to die in April :-) Apart from that: let's 
follow what we said in other threads. Work on the best default experience with 
working applications and ignore the broken ones.

Cheers
Martin

signature.asc
Description: This is a digitally signed message part.
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Notes from "New OSD in Plasma 2"

2014-01-18 Thread Martin Klapetek
On Sat, Jan 18, 2014 at 1:34 PM, Martin Graesslin wrote:

> >
> > I thought about exactly this case. But if you disable the OSD in
> "passive"
> > actions, you might also miss that the computer is about to power off your
> > display (the brightness goes down every once in a while and when it's at
> 0,
> > DPMS will kick soon...by default). So I guess you do want some kind of
> > notification on external TV in case you left your power management
> enabled.
>
> Proper fix: DPMS should not kick in when a video is being played and there
> are
> powermanagement hooks for it.
>

YouTube.

Cheers
-- 
Martin Klapetek | KDE Developer
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Notes from "New OSD in Plasma 2"

2014-01-18 Thread Martin Graesslin
On Saturday 18 January 2014 13:15:18 Martin Klapetek wrote:
> On Sat, Jan 18, 2014 at 1:03 PM, Martin Graesslin wrote:
> > > Who should do the positioning? Plasma or KWin?
> > 
> > I don't care, but I would say Plasma. I think that simplifies it given
> > that you
> > have to set x/y anyway.
> 
> That actually brings another quesion - on which screen it should show up?
> I'd put it wherever mouse cursor currently is.
> 
> Opinions?

Show it on all screens. That is create one OSD per screen. If that's not 
wanted I'd say we use what KWin considers the "active" screen. And we could 
take care of moving it there. (Active screen is depending on config option the 
screen with the active window or the screen which has the mouse).

> 
> > > Truth is you don't need to know the /exact/ brightness or volume level
> > > in
> > > fullscreen video, you simply fiddle with it until it suits you. In this
> > > case it's maybe not as much about showing the exact percentage, but
> > > about
> > > providing visual feedback that you hit the correct keys and that they
> > > are
> > > working - I can imagine cases where users will press it couple times
> > > more
> > > to actually check if the brightness controls do work.
> > 
> > The main problem I used to have is when powerdevil changes the brightness,
> > especially when e.g. a TV is connected to the system. Kind of useless
> > then.
> 
> I thought about exactly this case. But if you disable the OSD in "passive"
> actions, you might also miss that the computer is about to power off your
> display (the brightness goes down every once in a while and when it's at 0,
> DPMS will kick soon...by default). So I guess you do want some kind of
> notification on external TV in case you left your power management enabled.

Proper fix: DPMS should not kick in when a video is being played and there are 
powermanagement hooks for it.

Cheers
Martin


signature.asc
Description: This is a digitally signed message part.
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Notes from "New OSD in Plasma 2"

2014-01-18 Thread Marco Martin
On Saturday 18 January 2014, Martin Klapetek wrote:
> On Sat, Jan 18, 2014 at 1:03 PM, Martin Graesslin wrote:
> > > Who should do the positioning? Plasma or KWin?
> > 
> > I don't care, but I would say Plasma. I think that simplifies it given
> > that you
> > have to set x/y anyway.
> 
> That actually brings another quesion - on which screen it should show up?
> I'd put it wherever mouse cursor currently is.
> 
> Opinions?

+1

Cheers, 
Marco Martin
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Notes from "New OSD in Plasma 2"

2014-01-18 Thread Martin Klapetek
On Sat, Jan 18, 2014 at 1:03 PM, Martin Graesslin wrote:

> >
> > Who should do the positioning? Plasma or KWin?
>
> I don't care, but I would say Plasma. I think that simplifies it given
> that you
> have to set x/y anyway.
>

That actually brings another quesion - on which screen it should show up?
I'd put it wherever mouse cursor currently is.

Opinions?


> > Truth is you don't need to know the /exact/ brightness or volume level in
> > fullscreen video, you simply fiddle with it until it suits you. In this
> > case it's maybe not as much about showing the exact percentage, but about
> > providing visual feedback that you hit the correct keys and that they are
> > working - I can imagine cases where users will press it couple times more
> > to actually check if the brightness controls do work.
>
> The main problem I used to have is when powerdevil changes the brightness,
> especially when e.g. a TV is connected to the system. Kind of useless then.
>

I thought about exactly this case. But if you disable the OSD in "passive"
actions, you might also miss that the computer is about to power off your
display (the brightness goes down every once in a while and when it's at 0,
DPMS will kick soon...by default). So I guess you do want some kind of
notification on external TV in case you left your power management enabled.

Cheers
-- 
Martin Klapetek | KDE Developer
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Notes from "New OSD in Plasma 2"

2014-01-18 Thread Martin Graesslin
On Saturday 18 January 2014 12:53:10 Martin Klapetek wrote:
> On Sat, Jan 18, 2014 at 12:25 PM, Martin Graesslin 
wrote:
> > On Monday 13 January 2014 18:46:28 Martin Klapetek wrote:
> > > Hey all,
> > > 
> > > following are the notes from the "New OSD in Plasma 2" discussion we had
> > > here at the Plasma sprint.
> > > 
> > > The basic idea is that the shell should provide a way for certain apps
> > > to
> > > display a short passive transient notification. That includes things
> > > like
> > > when user changes brightness, volume, changes the keyboard layout,
> > 
> > virtual
> > 
> > > desktop or activity and possibly few others.
> > > 
> > > This would be handled over DBus with custom QML files doing the
> > 
> > rendering.
> > 
> > > The flow is as follows: user changes volume - kmix sends a dbus signal -
> > > plasma has a slot handling that signal - plasma loads the QML file for
> > > rendering and puts it on screen with special window class - kwin gives
> > > it
> > > extra love cause of the win class.
> > 
> > I had some thought on the "KWin gives it extra love" and how we can
> > identify
> > the window. The preferred way on my side would be a window type and there
> > is
> > one existing type which we might reuse: _NET_WM_WINDOW_TYPE_NOTIFICATION
> > [1].
> > We have complete support for it in KWin and KWindowsystem as
> > NET::Notification
> > in NET::WindowTypes enum. KWin recognizes the notification and does
> > nothing
> > with it [2]. To be more precise KWin does not support the window type for
> > managed windows, only for override redirect windows. That's easy to
> > change,
> > though.
> 
> Who should do the positioning? Plasma or KWin?

I don't care, but I would say Plasma. I think that simplifies it given that you 
have to set x/y anyway.

> Truth is you don't need to know the /exact/ brightness or volume level in
> fullscreen video, you simply fiddle with it until it suits you. In this
> case it's maybe not as much about showing the exact percentage, but about
> providing visual feedback that you hit the correct keys and that they are
> working - I can imagine cases where users will press it couple times more
> to actually check if the brightness controls do work.

The main problem I used to have is when powerdevil changes the brightness, 
especially when e.g. a TV is connected to the system. Kind of useless then.

> 
> Changing the layer order would be easy afterwards right? I guess we could
> try your proposal and see how it works in practice.

Yes, that would be very easy.

Cheers
Martin

signature.asc
Description: This is a digitally signed message part.
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Notes from "New OSD in Plasma 2"

2014-01-18 Thread Martin Klapetek
On Sat, Jan 18, 2014 at 12:25 PM, Martin Graesslin wrote:

> On Monday 13 January 2014 18:46:28 Martin Klapetek wrote:
> > Hey all,
> >
> > following are the notes from the "New OSD in Plasma 2" discussion we had
> > here at the Plasma sprint.
> >
> > The basic idea is that the shell should provide a way for certain apps to
> > display a short passive transient notification. That includes things like
> > when user changes brightness, volume, changes the keyboard layout,
> virtual
> > desktop or activity and possibly few others.
> >
> > This would be handled over DBus with custom QML files doing the
> rendering.
> > The flow is as follows: user changes volume - kmix sends a dbus signal -
> > plasma has a slot handling that signal - plasma loads the QML file for
> > rendering and puts it on screen with special window class - kwin gives it
> > extra love cause of the win class.
>
> I had some thought on the "KWin gives it extra love" and how we can
> identify
> the window. The preferred way on my side would be a window type and there
> is
> one existing type which we might reuse: _NET_WM_WINDOW_TYPE_NOTIFICATION
> [1].
> We have complete support for it in KWin and KWindowsystem as
> NET::Notification
> in NET::WindowTypes enum. KWin recognizes the notification and does nothing
> with it [2]. To be more precise KWin does not support the window type for
> managed windows, only for override redirect windows. That's easy to change,
> though.
>

Who should do the positioning? Plasma or KWin?


> Adding support for it in the PlasmaCore.Dialog should be simple. It already
> has a WindowType enum which just needs another value for Notification.
>

We do have control over the QWindow inside which Dialog is displayed.


>
> In KDE software it is used in Krita and Amarok for a notification (in case
> of
> Amarok it's the OSD). Other uses I couldn't find on my system. I failed
> with
> lxr, maybe someone else is more apt at using that tool ;-)
>
> The special love KWin could give the OSD is to put it into an own layer.
> The
> recommendation for stacking orders does not contain notifications [3]. The
> question is where to put it. In my opinion it should be above keep above
> and
> dock windows, but I'm unsure whether it should be above active fullscreen
> windows or below. Personally I'm always annoyed by the screen brightness
> notification on top of a video. Given that I suggest that we introduce a
> new
> layer between keep above and active fullscreen windows.


> Comments?
>

Truth is you don't need to know the /exact/ brightness or volume level in
fullscreen video, you simply fiddle with it until it suits you. In this
case it's maybe not as much about showing the exact percentage, but about
providing visual feedback that you hit the correct keys and that they are
working - I can imagine cases where users will press it couple times more
to actually check if the brightness controls do work.

Changing the layer order would be easy afterwards right? I guess we could
try your proposal and see how it works in practice.

Cheers
-- 
Martin Klapetek | KDE Developer
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Notes from "New OSD in Plasma 2"

2014-01-18 Thread Martin Graesslin
On Monday 13 January 2014 18:46:28 Martin Klapetek wrote:
> Hey all,
> 
> following are the notes from the "New OSD in Plasma 2" discussion we had
> here at the Plasma sprint.
> 
> The basic idea is that the shell should provide a way for certain apps to
> display a short passive transient notification. That includes things like
> when user changes brightness, volume, changes the keyboard layout, virtual
> desktop or activity and possibly few others.
> 
> This would be handled over DBus with custom QML files doing the rendering.
> The flow is as follows: user changes volume - kmix sends a dbus signal -
> plasma has a slot handling that signal - plasma loads the QML file for
> rendering and puts it on screen with special window class - kwin gives it
> extra love cause of the win class.

I had some thought on the "KWin gives it extra love" and how we can identify 
the window. The preferred way on my side would be a window type and there is 
one existing type which we might reuse: _NET_WM_WINDOW_TYPE_NOTIFICATION [1]. 
We have complete support for it in KWin and KWindowsystem as NET::Notification 
in NET::WindowTypes enum. KWin recognizes the notification and does nothing 
with it [2]. To be more precise KWin does not support the window type for 
managed windows, only for override redirect windows. That's easy to change, 
though.

Adding support for it in the PlasmaCore.Dialog should be simple. It already 
has a WindowType enum which just needs another value for Notification.

In KDE software it is used in Krita and Amarok for a notification (in case of 
Amarok it's the OSD). Other uses I couldn't find on my system. I failed with 
lxr, maybe someone else is more apt at using that tool ;-)

The special love KWin could give the OSD is to put it into an own layer. The 
recommendation for stacking orders does not contain notifications [3]. The 
question is where to put it. In my opinion it should be above keep above and 
dock windows, but I'm unsure whether it should be above active fullscreen 
windows or below. Personally I'm always annoyed by the screen brightness 
notification on top of a video. Given that I suggest that we introduce a new 
layer between keep above and active fullscreen windows.

Comments?

Cheers
Martin

[1] http://standards.freedesktop.org/wm-spec/wm-spec-1.4.html#id2560306
[2] Exception: the glide effect excludes notifications from animation
[3] http://standards.freedesktop.org/wm-spec/wm-spec-1.4.html#STACKINGORDER

signature.asc
Description: This is a digitally signed message part.
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Notes from "New OSD in Plasma 2"

2014-01-16 Thread Sebastian Kügler
On Thursday, January 16, 2014 14:40:43 Martin Klapetek wrote:
> On Thu, Jan 16, 2014 at 2:02 PM, Bhushan Shah  wrote:
> 
> Small question, will shell define this QML files or apps? If shell,
> will it be possible for applications to override it?
> 
> Currently shell, but since it will be installing those QML files, I guess
> apps/themes will be able to override it. I need to talk to someone more
> knowledgeable about that first, but they should definitely be themeable.

Themable, yes, by means of Look and Feel package. Overridden by apps: no, for 
the sake of consistency.
-- 
sebas

http://www.kde.org | http://vizZzion.org | GPG Key ID: 9119 0EF9
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Notes from "New OSD in Plasma 2"

2014-01-16 Thread David Edmundson
If you load a qml file from look&feel that should be fine.

David
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Notes from "New OSD in Plasma 2"

2014-01-16 Thread Martin Klapetek
On Thu, Jan 16, 2014 at 2:02 PM, Bhushan Shah  wrote:

>
> Small question, will shell define this QML files or apps? If shell,
> will it be possible for applications to override it?
>

Currently shell, but since it will be installing those QML files, I guess
apps/themes will be able to override it. I need to talk to someone more
knowledgeable about that first, but they should definitely be themeable.

Cheers
-- 
Martin Klapetek | KDE Developer
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Notes from "New OSD in Plasma 2"

2014-01-16 Thread Bhushan Shah
Hello,

On Mon, Jan 13, 2014 at 11:16 PM, Martin Klapetek
 wrote:
> This would be handled over DBus with custom QML files doing the rendering.

Small question, will shell define this QML files or apps? If shell,
will it be possible for applications to override it?

Thanks!

-- 
Bhushan Shah

http://bhush9.github.io
IRC Nick : bshah on Freenode
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Notes from "New OSD in Plasma 2"

2014-01-13 Thread Martin Klapetek
Hey all,

following are the notes from the "New OSD in Plasma 2" discussion we had
here at the Plasma sprint.

The basic idea is that the shell should provide a way for certain apps to
display a short passive transient notification. That includes things like
when user changes brightness, volume, changes the keyboard layout, virtual
desktop or activity and possibly few others.

This would be handled over DBus with custom QML files doing the rendering.
The flow is as follows: user changes volume - kmix sends a dbus signal -
plasma has a slot handling that signal - plasma loads the QML file for
rendering and puts it on screen with special window class - kwin gives it
extra love cause of the win class.

We are reluctant to provide a general API which all apps could abuse;
that's to be refined after listing all the usecases we want to support.

That's all from that session, ask if you have questions.

Cheers
-- 
Martin Klapetek | KDE Developer
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel