[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-panel-devel
Subject:    Re: Review Request 108957: Adding BAMF support to KWin
From:       Martin_Gräßlin <mgraesslin () kde ! org>
Date:       2013-02-18 8:18:24
Message-ID: 20130218081824.8004.1336 () vidsolbach ! de
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


> On Feb. 14, 2013, 2:45 p.m., Thomas Lübking wrote:
> > * better filtering on whether two Clients belong to the same application
> > The WM is supposed to have better information about that than the desktop service \
> > (group leader, class and eventually PID hint, which is mandatory for bamf anyway) \
> > -> rl usecase? 
> > * Using the application name as caption in case the window title is bad
> > The title is handed by the application and while i admit to believe they add far \
> > too much stuff there: what's the actual usecase of a "bad window title" (even \
> >                 scummvm lost it's stupidity ;-)
> > -> rl usecase?
> > Aside this we can now script-a-fix particular titles.
> > 
> > * Getting better icons for window switcher/decorations, mostly important
> > for high resolution displays as icons provided through X property do
> > not include the large icons (e.g. 128x128)
> > This is probably the most relevant aspect, but i'd frankly consider \
> > _NET_WM_LOCAL_ICON_NAME more straightforward and less heuristic (did you look \
> > into the bamf sources? - special case strings all over the place. that's a \
> > hack-a-round, not a protocol) 
> > * Using application name for application menu button
> > Since the client is supposed to know this information very precisely: why does it \
> > not export it alongsise appmenu? For clients unaware of their name, see below on \
> > how to add window data information from the launcher. 
> > Looking at bamf, it seems to double ksycoca but using dbus instead of shm, and \
> > then does some (cached) reverse lookup on the exec property. 
> > Information should be hinted by the client, not guessed by the DE, but to take \
> > profit from the service launcher, passing additional process information onto \
> > windows could be done (by the service launcher, ie. KRun) by watching the PID of \
> > the launched exe and place it on either root (immediately) or client leader \
> > (watching for new windows) window and some info should be NETWM extensions \
> > (rasterizing the various icon sizes as theme-un-aware properties onto the window \
> > always seemed stupid enough, wastes space and bandwidth and does not integrate \
> > with the local environment in esp. the network case - or all others unless the \
> > applications notices the theme changed and updates the property. yeah.) 
> > I frankly have no concept for the above ready (esp: "who'd forgets information in \
> > the root case") but am not convinced about the bamf approach. It looks like some \
> > of my hack solutions in this regard, not anything like a proper solution.

I consider this as a review failed :-)

Let's try to get something better for the icons in KF 5 and if that works get it \
through NETWM.


- Martin


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/108957/#review27443
-----------------------------------------------------------


On Feb. 14, 2013, 1:02 p.m., Martin Gräßlin wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/108957/
> -----------------------------------------------------------
> 
> (Updated Feb. 14, 2013, 1:02 p.m.)
> 
> 
> Review request for kwin and Plasma.
> 
> 
> Description
> -------
> 
> Adding BAMF support to KWin
> 
> BAMF is a library used by Unity to match windows to their applications.
> This is also pretty useful for KWin, possible uses are:
> * better filtering on whether two Clients belong to the same application
> * Using the application name as caption in case the window title is bad
> * Getting better icons for window switcher/decorations, mostly important
> for high resolution displays as icons provided through X property do
> not include the large icons (e.g. 128x128)
> * Using application name for application menu button
> 
> So far support is added to get the KDesktopFile for a Client and this is
> exported to KWinEffects.
> 
> BAMF is probably also useful in other areas of the workspaces, e.g. for
> libtaskmanager.
> 
> 
> Diffs
> -----
> 
> CMakeLists.txt 6084d7dd7655372506e02abe9f141b73155c5857 
> cmake/modules/CMakeLists.txt 8d3d58189dbcb9e89d4d9c9aa4f3c1c93abad5e4 
> cmake/modules/FindQtBAMF.cmake PRE-CREATION 
> config-workspace.h.cmake 4a2dcbf481bff35c3b05366a3d1a79bb1f400b88 
> kwin/CMakeLists.txt 2f44c57066913e05062bc1a3c3d8a03e924906dc 
> kwin/client.h 4cbc20f8e2b3aa31c1c33d63ae90f1f0c9eeefbf 
> kwin/client.cpp 2ce68fb4a0f108442b3476d39a90895bb1d12ffb 
> kwin/libkwineffects/kwineffects.h 464d7f2c3261c389dcf2349168b8d67cb691563a 
> kwin/libkwineffects/kwineffects.cpp 7d522d11e1cc71598e646c972c37f1af2275c3fc 
> 
> Diff: http://git.reviewboard.kde.org/r/108957/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Martin Gräßlin
> 
> 


[Attachment #5 (text/html)]

<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 \
solid;">  <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="http://git.reviewboard.kde.org/r/108957/">http://git.reviewboard.kde.org/r/108957/</a>
  </td>
    </tr>
   </table>
   <br />





<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: \
10px;">  <p style="margin-top: 0;">On February 14th, 2013, 2:45 p.m. CET, <b>Thomas \
Lübking</b> wrote:</p>  <blockquote style="margin-left: 1em; border-left: 2px solid \
#d0d0d0; padding-left: 10px;">  <pre style="white-space: pre-wrap; white-space: \
-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;">* better filtering on whether two Clients belong to the same application \
The WM is supposed to have better information about that than the desktop service \
(group leader, class and eventually PID hint, which is mandatory for bamf anyway) \
-&gt; rl usecase?

* Using the application name as caption in case the window title is bad
The title is handed by the application and while i admit to believe they add far too \
much stuff there: what&#39;s the actual usecase of a &quot;bad window title&quot; \
                (even scummvm lost it&#39;s stupidity ;-)
 -&gt; rl usecase?
Aside this we can now script-a-fix particular titles.

* Getting better icons for window switcher/decorations, mostly important
  for high resolution displays as icons provided through X property do
  not include the large icons (e.g. 128x128)
This is probably the most relevant aspect, but i&#39;d frankly consider \
_NET_WM_LOCAL_ICON_NAME more straightforward and less heuristic (did you look into \
the bamf sources? - special case strings all over the place. that&#39;s a \
hack-a-round, not a protocol)

* Using application name for application menu button
Since the client is supposed to know this information very precisely: why does it not \
export it alongsise appmenu? For clients unaware of their name, see below on how to \
add window data information from the launcher.

Looking at bamf, it seems to double ksycoca but using dbus instead of shm, and then \
does some (cached) reverse lookup on the exec property.

Information should be hinted by the client, not guessed by the DE, but to take profit \
from the service launcher, passing additional process information onto windows could \
be done (by the service launcher, ie. KRun) by watching the PID of the launched exe \
and place it on either root (immediately) or client leader (watching for new windows) \
window and some info should be NETWM extensions (rasterizing the various icon sizes \
as theme-un-aware properties onto the window always seemed stupid enough, wastes \
space and bandwidth and does not integrate with the local environment in esp. the \
network case - or all others unless the applications notices the theme changed and \
updates the property. yeah.)

I frankly have no concept for the above ready (esp: &quot;who&#39;d forgets \
information in the root case&quot;) but am not convinced about the bamf approach. It \
looks like some of my hack solutions in this regard, not anything like a proper \
solution.</pre>  </blockquote>







</blockquote>

<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I consider this as a \
review failed :-)

Let&#39;s try to get something better for the icons in KF 5 and if that works get it \
through NETWM.</pre> <br />










<p>- Martin</p>


<br />
<p>On February 14th, 2013, 1:02 p.m. CET, Martin Gräßlin wrote:</p>








<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" \
style="background-image: \
url('http://git.reviewboard.kde.org/static/rb/images/review_request_box_top_bg.ab6f3b1072c9.png'); \
background-position: left top; background-repeat: repeat-x; border: 1px black \
solid;">  <tr>
  <td>

<div>Review request for kwin and Plasma.</div>
<div>By Martin Gräßlin.</div>


<p style="color: grey;"><i>Updated Feb. 14, 2013, 1:02 p.m.</i></p>






<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
 <table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" \
style="border: 1px solid #b8b5a0">  <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: \
-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;">Adding BAMF support to KWin

BAMF is a library used by Unity to match windows to their applications.
This is also pretty useful for KWin, possible uses are:
* better filtering on whether two Clients belong to the same application
* Using the application name as caption in case the window title is bad
* Getting better icons for window switcher/decorations, mostly important
  for high resolution displays as icons provided through X property do
  not include the large icons (e.g. 128x128)
* Using application name for application menu button

So far support is added to get the KDesktopFile for a Client and this is
exported to KWinEffects.

BAMF is probably also useful in other areas of the workspaces, e.g. for
libtaskmanager.</pre>
  </td>
 </tr>
</table>





<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>CMakeLists.txt <span style="color: \
grey">(6084d7dd7655372506e02abe9f141b73155c5857)</span></li>

 <li>cmake/modules/CMakeLists.txt <span style="color: \
grey">(8d3d58189dbcb9e89d4d9c9aa4f3c1c93abad5e4)</span></li>

 <li>cmake/modules/FindQtBAMF.cmake <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>config-workspace.h.cmake <span style="color: \
grey">(4a2dcbf481bff35c3b05366a3d1a79bb1f400b88)</span></li>

 <li>kwin/CMakeLists.txt <span style="color: \
grey">(2f44c57066913e05062bc1a3c3d8a03e924906dc)</span></li>

 <li>kwin/client.h <span style="color: \
grey">(4cbc20f8e2b3aa31c1c33d63ae90f1f0c9eeefbf)</span></li>

 <li>kwin/client.cpp <span style="color: \
grey">(2ce68fb4a0f108442b3476d39a90895bb1d12ffb)</span></li>

 <li>kwin/libkwineffects/kwineffects.h <span style="color: \
grey">(464d7f2c3261c389dcf2349168b8d67cb691563a)</span></li>

 <li>kwin/libkwineffects/kwineffects.cpp <span style="color: \
grey">(7d522d11e1cc71598e646c972c37f1af2275c3fc)</span></li>

</ul>

<p><a href="http://git.reviewboard.kde.org/r/108957/diff/" style="margin-left: \
3em;">View Diff</a></p>







  </td>
 </tr>
</table>








  </div>
 </body>
</html>



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


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic