KTp/Tasks/NonGlobalPresence

From KDE Community Wiki

Non-Global Presence

Currently if an account is 'available' and another is 'busy' or even offline everything breaks.

The situations/Goals

A user has two accounts, a personal account and a work account. When at work they want to be marked as online on their work account, and "busy" on their personal account. When at home they want to be online on their personal account, and offline on their work account.

Another user has 5 different accounts on many protocols and wants to easily set all of them to either "online" or "busy" to represent their current state.

It is important a user knows at any moment how they appear to others.

What's broken

We don't know how to show these presences in a different state whilst keeping it easy to modify all the accounts, so (also due to a code problem in a different module) simply disabled the possibility to have accounts in different state. This stops us moving forwards.

The presence plasmoid

This only shows global presence and has a menu for changing presence in all accounts.

The contact list?

This initially only shows and controls global presence in a dropdown, but a mouseover tooltip will show the state of each account. We have a hidden method to revert this to "per account" buttons which can be enabled by adding:

selected_presence_chooser=unsupported to the end of ~/.kde/share/config/ktelepathyrc


Auto Away plugins brings in extra complexity, as we are automatically putting the user to away if they're online or busy and the computer is inactive after N minutes. However this can be fixed with code.

Currently we have a concept of "Global Presence" which changes all accounts, and shows the highest currently online presence.

Tasks

We need to:

  • Fix the kded to work on an individual account basis.
  • Work out how to display "your accounts are all over the place" in the presence-plasmoid etc.
  • Work out how to set different accounts from the different interfaces?
  • Code it

Ideas

drdanz: We could add an icon user-mixed (something like user-mixed.png ). The global presence will return this icon if not all the accounts have the same presence When we have presence based on activity we can return the activity icon instead (perhaps with some overlay, otherwise the user won't understand what is the icon for)