Systemtray breakout notes

Eike Hein hein at kde.org
Fri Jan 17 15:22:34 UTC 2014


On Friday 17 January 2014 10:23:48 Martin Klapetek wrote:
> On Thu, Jan 16, 2014 at 6:01 PM, Sebastian Kügler <sebas at kde.org> wrote:
> > Some applications nest in the systemtray, and appear in both taskbar and
> > systemtray. We'd like to merge their entries. Example: Kmail's taskbar
> > item
> > could show the number of unread emails as an overlay, instead of having a
> > separate icon in the systray.
> 
> Note that there exists DockManager API for exactly this purpose and
> IconTasks is implementing it. Also Chrome/Chromium was integrating with it
> (IconTasks using DockManager), I don't think it does anymore, though their
> dockmanager handler checking is weird (basically they check for some
> ubuntu/unity lib being loaded in memory), but it may have changed since I
> last looked.

A couple of rough notes on the general idea:

* The status quo: The objects exposed on the KDE default Task Manager
  traditionally are windows, not applications, and in this it differs
  somewhat from the system tray ... the tray represents windows at
  times, too, but in some sense is limited to docked main windows
  while the Task Manager is not (document windows, utilitiy windows,
  dialog windows ...). Assuming this difference persists, exposing
  system tray data on the Task Manager unassisted would be met with a
  couple of practical problems:
 
  - Apps may not use the same icon for their window and for their tray
    icon, and window icons can further contain their own stateful in-
    formation of their own (e.g. some drawing apps put a thumbnail of
    the current document in there), so there can be contention between
    the two.

  - Some apps use the tray for 'docking' in addition to notifica-
    tions, e.g. IM messenger buddy lists. This can conceivably cause
    the information to be perceived as window-specific, so showing it
    on all windows the app has on the Task Manager wouldn't be appro-
    priate. However if we want to put it only on one Task Manager
    item, we run into the problem of how to programmatically decide
    which.

  I think there's lots of problems there that might conspire to make
  this impractical with legacy apps. That would mean something opt-in
  like DockManager is needed. Whether the DockManager API can fill
  that need would have to be evaluated ... purely going by the name,
  it probably doesn't allow window-specific customization, though.

* If we actually want to go with a dock pattern for the default Task
  Manager instead to reduce the cognitive load on the user (i.e. move
  window-specific information into a second tier like Icon Tasks does
  with its tooltips) then libtaskmanager requires its own round of work
  for that, too, to maintain positions and item identities stably across
  the launcher -> [start-up notification] -> task -> launcher lifecycle
  (Icon Tasks does some of this on the applet side instead which isn't
  viable in a QML frontend).

  A lot of this work exists to some degree in an experimental fork
  of the Plasma 1 Task Manager:

  http://quickgit.kde.org/?p=scratch%2Fhein%2Fexpanding-icons-taskmanager.git

  ... but it still requires cleanup, and many of the matching-heuris-
  tics involved are leaky abstractions on X11 (like e.g. the old
  OpenOffice-on-docks problem that requires exception rules to deal
  with).

  Note that moving to the pure dock pattern involves some real down-
  sides and trade-offs though, e.g. making it harder on users to keep
  track of window-specific state. It's a decision with far-reaching
  consequences for the feel of the workspace so it shouldn't be done
  lightly, especially when we're discussing potentially creating new
  APIs for apps to push info ... there are opportunities there for
  both interaction patterns.


> Cheers

Cheers,
Eike


More information about the Plasma-devel mailing list