Jump to content

Plasma/Activities: Difference between revisions

From KDE Community Wiki
Chani (talk | contribs)
Arunce (talk | contribs)
 
(23 intermediate revisions by 4 users not shown)
Line 1: Line 1:
===Plasma===
===Plasma Plugins===
====bugs====
* system tray not activity aware
 
====functionality====
* DataEngine+Service for interacting with Activities that way (mostly for scripts)
 
===Plasma Desktop===


the plasma side of activities...
the plasma side of activities...


====bugs====
====bugs====
* play/stop/delete icons are misaligned
* iirc the list gets a bit funny when things resize or go away


====functionality====
====functionality====
* when plasma is locked, the activitymanager runs away. it shouldn't do that; instead it should disable the add/remove buttons (and maybe stop/play too?)
* we need a way to rename and set icon from the activity manager, inline. that's the stuff that was in the containment config for 4.5
* support switching to other-screen containments (explained better on the [[Plasma/Multiscreen|Multiscreen page]]
* support switching to other-screen containments (explained better on the [[Plasma/Multiscreen|Multiscreen page]]
* templates are only half-implemented. there's no js way to create a new activity, only new containment. what we need is a mode (and way to set it) in plasmaapp that creates a new activity and says that new containments will be autoassigned to that activity. then when the script is done creating containments we unset the mode (and probably do a sanity check on the activity).
* activity manager UI
** sorting of the activities (probably by last activation?)
** 'running'/'stopped' categories that scroll to the first running/stopped activity
** something in the panel that tells me what activity I'm on and lets me switch quickly


====polish====
====polish====
* activity manager doesn't show which activity is the current one. some sort of pretty highlight or something would be nice.
* those remove/stop buttons could be a lot prettier. hover effects n'stuff
* those remove/stop buttons could be a lot prettier. hover effects n'stuff
* random wallpaper when creating a new containment?
* random wallpaper when creating a new containment?
Line 20: Line 25:


====guts====
====guts====
* View::swapContainment could do with cleanup like Activity::open.
* we should hack something into Context so that it keeps the activity name in sync itself, instead of relying on Activity while KActivity* is in kdebase
* Activity could pay better attention to its containments, in case they get moved around by something else... it kinda assumes that it has full control when it doesn't.
* Activity could pay better attention to its containments, in case they get moved around by something else... it kinda assumes that it has full control when it doesn't.
====features====
* sorting of the activities (probably by last activation?)
* 'running'/'stopped' categories that scroll to the first running/stopped activity
* something in the panel that tells me what activity I'm on and lets me switch quickly
* dataengine? (what are use cases? how much easier than ActivityConsumer is it?)


===KWin===
===KWin===
Line 36: Line 33:
====bugs====
====bugs====
* iirc some effects leave 'holes' for windows on other activities. need to check if anyone solved that
* iirc some effects leave 'holes' for windows on other activities. need to check if anyone solved that
* present windows shows windows from other activities?


====features====
====features====
* special window rules for activities, for those stubborn apps that will never play well (might want to wait until session support is in though)
* special window rules for activities, for those stubborn apps that will never play well (might want to wait until session support is in though)
* <s>expose the associations somehow so that the taskbar can have activity features</s>
* turn libtaskmanager's window-context-menu stuff into a library that can be reused instead of reimplemented in three places (there, kwin and somewhere-I-forget).


===Sessions===
===Sessions===
Line 46: Line 44:


====bugs====
====bugs====
*on store, it either works instantly or hits the ten-second timeout. some callback is getting dropped somewhere and I'm not sure why.


====functionality====
====functionality====
*I need to know which clients are on which activities, so that I can close the right ones instead of a hardcoded set. 18:11 < fredrikh> Chani: windows are supposed to have either an SM_CLIENT_ID property, or a WM_CLIENT_LEADER property that points to the window that has it
* expose the generic loading function over dbus instead of the testing one
* figure out how to restore activity-window associations
* give the activity kded API for open/closed activities (a close will have to be requested first, because ksmserver can cancel it, and we want the plasma part going down last for prettiness. that means we need cancel/done functions so that plasma's notified when ksmserver finishes.
* give the activity kded API for open/closed activities (a close will have to be requested first, because ksmserver can cancel it, and we want the plasma part going down last for prettiness. that means we need cancel/done functions so that plasma's notified when ksmserver finishes.
*get it all working smoothly, plasma -> ksmserver -> plasma


====features====
====features====
Line 67: Line 60:
===activitymanager kded===
===activitymanager kded===


stuff...
New API...
 
definitely needed:
* void requestCloseActivity(id);
* QStringList openActivities();
* QStringList closedActivities();
signals:
* activityClosed(id);
* activityCloseCancelled();
 
not 100% sure about:
* in KActivityInfo, bool isOpen() or State state() (possible values Open, Closed, Opening, Closing) ?
 
notes:
* only one activity can be in an inbetween state (opening/closing) at a time, but it can be in this state for an arbitrary amount of time (eg. if an application asks whether to save and the user doesn't answer).
* although opening can take more time than closing, it's not interactive, so it would be easy to pretend it's instant. the catch is that you can't actually open/close any others until that one's done opening.
* if the activity manager can't find anyone to close the session for it (say, if the user's running compiz), it will assume there's nothing to save and immediately emit activityClosed.
 
===Network Manager===
VPN
====notes====
* In network manager VPN Connections should be associated with an activity.
* user should be able to connect or not after notification pop up after activity start.
 
===Ideas===
 
[[/Ideas]] for the future

Latest revision as of 21:37, 28 January 2011

Plasma Plugins

bugs

  • system tray not activity aware

functionality

  • DataEngine+Service for interacting with Activities that way (mostly for scripts)

Plasma Desktop

the plasma side of activities...

bugs

functionality

  • support switching to other-screen containments (explained better on the Multiscreen page
  • activity manager UI
    • sorting of the activities (probably by last activation?)
    • 'running'/'stopped' categories that scroll to the first running/stopped activity
    • something in the panel that tells me what activity I'm on and lets me switch quickly

polish

  • those remove/stop buttons could be a lot prettier. hover effects n'stuff
  • random wallpaper when creating a new containment?
  • prettify the search filter?

guts

  • Activity could pay better attention to its containments, in case they get moved around by something else... it kinda assumes that it has full control when it doesn't.

KWin

windows can be associated with activities

bugs

  • iirc some effects leave 'holes' for windows on other activities. need to check if anyone solved that
  • present windows shows windows from other activities?

features

  • special window rules for activities, for those stubborn apps that will never play well (might want to wait until session support is in though)
  • turn libtaskmanager's window-context-menu stuff into a library that can be reused instead of reimplemented in three places (there, kwin and somewhere-I-forget).

Sessions

ksmserver handles your login and logout session; now it's going to handle saving and restoring the non-plasma side of activities too :)

bugs

functionality

  • give the activity kded API for open/closed activities (a close will have to be requested first, because ksmserver can cancel it, and we want the plasma part going down last for prettiness. that means we need cancel/done functions so that plasma's notified when ksmserver finishes.

features

  • have a look at that "legacy" session stuff
  • start dealing with behaviour for processes on >1 activity (can probably note who they're sharing with, copy on store and purge/skip on restore)
  • start looking into making apps activity-aware and improving session support

Nepomuk

features

  • tell us whether a resource is associated with an activity, so that its window can be auto-associated

activitymanager kded

New API...

definitely needed:

  • void requestCloseActivity(id);
  • QStringList openActivities();
  • QStringList closedActivities();

signals:

  • activityClosed(id);
  • activityCloseCancelled();

not 100% sure about:

  • in KActivityInfo, bool isOpen() or State state() (possible values Open, Closed, Opening, Closing) ?

notes:

  • only one activity can be in an inbetween state (opening/closing) at a time, but it can be in this state for an arbitrary amount of time (eg. if an application asks whether to save and the user doesn't answer).
  • although opening can take more time than closing, it's not interactive, so it would be easy to pretend it's instant. the catch is that you can't actually open/close any others until that one's done opening.
  • if the activity manager can't find anyone to close the session for it (say, if the user's running compiz), it will assume there's nothing to save and immediately emit activityClosed.

Network Manager

VPN

notes

  • In network manager VPN Connections should be associated with an activity.
  • user should be able to connect or not after notification pop up after activity start.

Ideas

/Ideas for the future