Plasma/Active/Development/Tasks: Difference between revisions

From KDE Community Wiki
No edit summary
Line 2: Line 2:
If you would like to support and become part of the [[Plasma/Active|Plasma Active]] team, you can use the following list of open tasks as inspiration. Please pick one of these tasks, for questions, you can always [[Plasma/Active/Info#Contact|get in touch with us]].
If you would like to support and become part of the [[Plasma/Active|Plasma Active]] team, you can use the following list of open tasks as inspiration. Please pick one of these tasks, for questions, you can always [[Plasma/Active/Info#Contact|get in touch with us]].


==Priority 1==
= On Screen Keyboard =
== Status: 0% ==


===Startactive===
Not started.
* klauncher problems when startactive is used


===Configuration===
==User Story==
* finish the clock configuration module: the old kcm is not built anymore
When there is a text edit area on screen, it should be possible to enter new
text and edit the text that is there using the on screen keyboard. Touching a
text edit area brings up the keyboard. It should be possible to use multiple
keyboard layouts; access numbers, symbols and accented letters; avoid covering
the editing area, etc.


===Default setup/packaging===
==Why this is important==
* ship a complete pre-made home directory with pre-built nepomuk database, etc. to prevent first-start CPU / disk thrashing.
Without a keyboard, text input is impossible; the better the keyboard is, the
better the text input experience will be and given that this is an extremely
common use case is an important item.


===Performance===
==Proposed implementation==
* current structure of one preview job per icon isn't acceptable
1) Write a keyboard layout description file to QML converter which would, using
the Maliit keyboard layout descriptions and the C++ library to access them the
Maliit project has written. This would give us a set of QML files that can be
loaded directly into a keyboard shell, and this QML should use Plasma Qt
Components


===Nepomuk===
2) Write a Maliit plugin that loads these QML files and provides integration
* seems it's indexing a single file per folder, packaging issue of libstreamanalyzer?
with things such as switching layouts, etc.


===Recommendations===
This will get us support for non-Qt apps, edit area avoidance, ability for
* basic recommendations setup with the most rated resources
apps to request specific layout types and other advanced features for "free".
It will add a Maliit dependency, however. The Maliit developers have been
extremely supportive and open so far, and we are holding monthly meetings with  
them.


==Task Details==
Owned by: Aaron Seigo
Effort Estimation: 4
Task dependencies: None.


= Unify suspend and shutdown with lock screen =
== Status: 90% ==
Implementation complete and working. Needs improved artwork for widgets on lock screen, power button applet on panel should be removed and screenlocker branch needs merging into master of kde-workspace.


==Priority 2==
== User Story ==


===KWin===
When finished using the device (which may have been 5 minutes or hours of
* windows strip as a KWin effect
usage), it is desirable to put the device to sleep to save the battery. In
certain cases, such as when a download or other background process is ongoing
and / or the time between usage is expected to be short, then it is desirable
to just lock device rather than sleep it. If usage is not expected for quite
some time (e.g. overnight or longer) where charging will not be possible, it
can be more desirable to actually turn the device off altogether and so a  
shutdown option is required. A single, elegant interface for these functions
will be provided.


==Why this is important==
Lock, sleep and shutdown are critical end-of-usage modes that people in
different scenarios will need. Making these features easy to get to and easy to
understand and use will make every end-of-use experience more pleasant.


==Unscheduled==
==Proposed implementation==
* On the QML based, lock screen add two sliders: one for Sleep and one for
Shutdown. The sleep slider will appear in the top left and shutdown in the top
right, aligned vertically with the clock.


===Default Configuration===
* Upon locking, the sleep slider will start moving slowly on its own towards
* KWallet configuation -> passwordless and no questions for access
the "activate" position. User intervention will stop the slider, thereby
cancelling the automatic sleep. This also gives the user feedback as to how
long until the device actually sleeps when it locks (e.g. automatically after
lack of usage)
 
* The Shutdown slider will only trigger if the user actually interacts with
it. If the user starts sliding it, the auto-sleep will be cancelled.
 
* This would also be a good opportunity to move the lock screen into ksmserver
itself, getting rid of the separate daemon that exists only for locking.
 
==Task Details==
Owned by: Aaron Seigo
Effort Estimation: 2
Task dependencies: None.


===Network Management Plasmoid (openSuse)===
* Check size hint of networking Plasmoid so that it doesn't shrink so small


===On Screen Keyboard===
=Unclaimed=
* Add arrow keys to the tablet layout


===Add Widgets===
=Unexplored=
* Close keyboard if opened due to focussing in on filter bar
==Default Configuration==
* KWallet configuation -> passwordless and no questions for access


===Activity screen===
==Activity screen==
* Custom titles for widgets, and a way for applets to set custom titles
* Custom titles for widgets, and a way for applets to set custom titles


===Panel===
==Panel==
* Put application icons after status icons
* Put application systray icons after status icons


===Panel===
==Panel==
* hardcoded positions of containments (panel containment)
* hardcoded positions of containments (panel containment)
* hardcoded positions of slc and clock (systray)
* hardcoded positions of slc and clock (systray)


===Javascript Setup===
==Javascript Setup==
* Ability to load initial widgets positions with a Javascript (ala Plasma Desktop Scripting)
* Ability to load initial widgets positions with a Javascript (ala Plasma Desktop Scripting)


===On Screen Keyboard===
==Launcher==
* KWin virtual keyboard awareness (always keep on everything else, e.g.)
* Copy/paste of text?
* Add arrow keys to the tablet layout
* Characters for more locales (e.g. German, French, etc)
* Gtk+ IM plugin to trigger it
* Multi-byte input
* Rewrite in QML
* Ensure that line edit does not get obscured by keyboard (mitigated now by being able to manually move it)
 
===Launcher===
* Show most used / favorites as first line on first page
* Show most used / favorites as first line on first page


===MeeGo Support===
=Braindumps=
* Connman backend for network management stack needed (either kded module or Plasma::DataEngine): quick and dirty applet now in place, will have to be replaced in PA2
==SLC==
 
 
==Unsorted==
===SLC===
* Better artwork: connect icon is very odd
* Better artwork: connect icon is very odd
* Not matter what is touched, Connect is always shown: probable touch screen bug: the touch event arrives always in the same coordinates unless a connected usb mouse is moved-> actually old qgraphicsview bug: occurs also in the desktop taskbar group menus, partially fixed
* Not matter what is touched, Connect is always shown: probable touch screen bug: the touch event arrives always in the same coordinates unless a connected usb mouse is moved-> actually old qgraphicsview bug: occurs also in the desktop taskbar group menus, partially fixed
Line 81: Line 113:
* <strike>Show title of URI to be operated on in the context menu</strike>
* <strike>Show title of URI to be operated on in the context menu</strike>


===Window Management===
==Window Management==
* OpenGL ES on MeeGO
* OpenGL ES on MeeGO


===Application workflow===
==Application workflow==
* Not obvious where apps are
* Not obvious where apps are
* Visual feedback between time when activity is selected and when the activity appears (so we know something is actually happening)
* Visual feedback between time when activity is selected and when the activity appears (so we know something is actually happening)


===Window Strip===
==Window Strip==
* Window sorting
* Window sorting
** find solution to get at methods Martin added to kdelibs/*/kworkspace MRU
** find solution to get at methods Martin added to kdelibs/*/kworkspace MRU
Line 95: Line 127:
* Sticky windows and moving windows across activities (SLC?)
* Sticky windows and moving windows across activities (SLC?)


=== Active Browser ===
== Active Browser ==
* search in page
* search in page
* save-as menus (e.g. for images)
* save-as menus (e.g. for images)
Line 104: Line 136:
* connect downloaded files to the activity (nepomuk bug)
* connect downloaded files to the activity (nepomuk bug)


=== Image viewer ===
== Image viewer ==
* nicer ui
* nicer ui
* possibility to browse sd cards/download/upload images
* possibility to browse sd cards/download/upload images
Line 110: Line 142:
* albums?
* albums?


=== Multimedia ===
== Multimedia ==
* Create multimedia activity
* Create multimedia activity
* Good touch volume applet
* Good touch volume applet
Line 116: Line 148:
* Webcam (kamoso?)
* Webcam (kamoso?)


=== Social Networks ===
== Social Networks ==
* touch-friendly configuration for PIM (email, contacts, events.)
* touch-friendly configuration for PIM (email, contacts, events.)
* touch-friendly setup of Facebook via Akonadi
* touch-friendly setup of Facebook via Akonadi
Line 126: Line 158:
** Events
** Events


=== Workspace ===
== Workspace ==
* Dynamic switching of Plasma workspace types, eg from the display manager, or due to hardware events such as docking?
* Dynamic switching of Plasma workspace types, eg from the display manager, or due to hardware events such as docking?


===KDM===
==KDM==
* Touch friendly login screen for eg touchscreen all-in-one PCs to use (low priority; we have auto-login)
* Touch friendly login screen for eg touchscreen all-in-one PCs to use (low priority; we have auto-login)


=== Tools ===
== Tools ==
* Make Plasmate release-ready
* Make Plasmate release-ready
** Improve editor for QML
** Improve editor for QML
Line 139: Line 171:


= Artwork =
= Artwork =
* Improve Plasma theme
* Make Contour logo play well with Active logo
* Sounds are jarring for a tablet; new sound theme needed


= Documentation =
= Documentation =
* Improve QML Plasma docs
* Improve installation docs
* Improve installation docs
* Create user docs (pending UI freeze)
* Create user docs (pending UI freeze)


= Support and Testing =
= Support and Testing =
* Help others with getting Plasma Active runnning on #active and the mailing list
* Test Plasma Active on more hardware, find solutions for problems encountered, document them


=Goals and Larger Ideas for PA2=
=Goals and Larger Ideas for Future Releases=
* Geolocation
* Geolocation
** Document and complete API
** Document and complete API
Line 163: Line 189:
* KXmlGui actions access in QML
* KXmlGui actions access in QML
* KConfig integration with ownCloud
* KConfig integration with ownCloud
* Finish porting all KDE applications to the mobile profile (mostly removing deprecated calls)
* Continue/finish porting KDE applications to the mobile build profile (mostly removing deprecated calls)

Revision as of 13:12, 2 February 2012

Contributing

If you would like to support and become part of the Plasma Active team, you can use the following list of open tasks as inspiration. Please pick one of these tasks, for questions, you can always get in touch with us.

On Screen Keyboard

Status: 0%

Not started.

User Story

When there is a text edit area on screen, it should be possible to enter new text and edit the text that is there using the on screen keyboard. Touching a text edit area brings up the keyboard. It should be possible to use multiple keyboard layouts; access numbers, symbols and accented letters; avoid covering the editing area, etc.

Why this is important

Without a keyboard, text input is impossible; the better the keyboard is, the better the text input experience will be and given that this is an extremely common use case is an important item.

Proposed implementation

1) Write a keyboard layout description file to QML converter which would, using the Maliit keyboard layout descriptions and the C++ library to access them the Maliit project has written. This would give us a set of QML files that can be loaded directly into a keyboard shell, and this QML should use Plasma Qt Components

2) Write a Maliit plugin that loads these QML files and provides integration with things such as switching layouts, etc.

This will get us support for non-Qt apps, edit area avoidance, ability for apps to request specific layout types and other advanced features for "free". It will add a Maliit dependency, however. The Maliit developers have been extremely supportive and open so far, and we are holding monthly meetings with them.

Task Details

Owned by: Aaron Seigo Effort Estimation: 4 Task dependencies: None.

Unify suspend and shutdown with lock screen

Status: 90%

Implementation complete and working. Needs improved artwork for widgets on lock screen, power button applet on panel should be removed and screenlocker branch needs merging into master of kde-workspace.

User Story

When finished using the device (which may have been 5 minutes or hours of usage), it is desirable to put the device to sleep to save the battery. In certain cases, such as when a download or other background process is ongoing and / or the time between usage is expected to be short, then it is desirable to just lock device rather than sleep it. If usage is not expected for quite some time (e.g. overnight or longer) where charging will not be possible, it can be more desirable to actually turn the device off altogether and so a shutdown option is required. A single, elegant interface for these functions will be provided.

Why this is important

Lock, sleep and shutdown are critical end-of-usage modes that people in different scenarios will need. Making these features easy to get to and easy to understand and use will make every end-of-use experience more pleasant.

Proposed implementation

  • On the QML based, lock screen add two sliders: one for Sleep and one for

Shutdown. The sleep slider will appear in the top left and shutdown in the top right, aligned vertically with the clock.

  • Upon locking, the sleep slider will start moving slowly on its own towards

the "activate" position. User intervention will stop the slider, thereby cancelling the automatic sleep. This also gives the user feedback as to how long until the device actually sleeps when it locks (e.g. automatically after lack of usage)

  • The Shutdown slider will only trigger if the user actually interacts with

it. If the user starts sliding it, the auto-sleep will be cancelled.

  • This would also be a good opportunity to move the lock screen into ksmserver

itself, getting rid of the separate daemon that exists only for locking.

Task Details

Owned by: Aaron Seigo Effort Estimation: 2 Task dependencies: None.


Unclaimed

Unexplored

Default Configuration

  • KWallet configuation -> passwordless and no questions for access

Activity screen

  • Custom titles for widgets, and a way for applets to set custom titles

Panel

  • Put application systray icons after status icons

Panel

  • hardcoded positions of containments (panel containment)
  • hardcoded positions of slc and clock (systray)

Javascript Setup

  • Ability to load initial widgets positions with a Javascript (ala Plasma Desktop Scripting)

Launcher

  • Show most used / favorites as first line on first page

Braindumps

SLC

  • Better artwork: connect icon is very odd
  • Not matter what is touched, Connect is always shown: probable touch screen bug: the touch event arrives always in the same coordinates unless a connected usb mouse is moved-> actually old qgraphicsview bug: occurs also in the desktop taskbar group menus, partially fixed
  • Bigger target invoking popup, and implement dragable
  • Show title of URI to be operated on in the context menu

Window Management

  • OpenGL ES on MeeGO

Application workflow

  • Not obvious where apps are
  • Visual feedback between time when activity is selected and when the activity appears (so we know something is actually happening)

Window Strip

  • Window sorting
    • find solution to get at methods Martin added to kdelibs/*/kworkspace MRU
    • Put new windows after the current window
  • Show windows from current activity only
  • Sticky windows and moving windows across activities (SLC?)

Active Browser

  • search in page
  • save-as menus (e.g. for images)
  • "back" repositions page to last viewed position
  • plugin support -> 100% depends from qtwebkit i.e. flash tries to work, but doesn't really ;)
  • display ssl status
  • accepting non-verifiable SSL certs
  • connect downloaded files to the activity (nepomuk bug)

Image viewer

  • nicer ui
  • possibility to browse sd cards/download/upload images
  • search ui
  • albums?

Multimedia

  • Create multimedia activity
  • Good touch volume applet
  • Mediaplayer (minitube? bangarang? tomahawk? Plasma Mediacenter components?)
  • Webcam (kamoso?)

Social Networks

  • touch-friendly configuration for PIM (email, contacts, events.)
  • touch-friendly setup of Facebook via Akonadi
  • touch-friendly setup of Google via Akonadi
  • Akonadi model for QML plasmoids
  • Plasma QML widgets for
    • Contacts
    • Messages
    • Events

Workspace

  • Dynamic switching of Plasma workspace types, eg from the display manager, or due to hardware events such as docking?

KDM

  • Touch friendly login screen for eg touchscreen all-in-one PCs to use (low priority; we have auto-login)

Tools

  • Make Plasmate release-ready
    • Improve editor for QML
    • Implement scripting console
    • Fix sizing problems in previewer

Artwork

Documentation

  • Improve installation docs
  • Create user docs (pending UI freeze)

Support and Testing

Goals and Larger Ideas for Future Releases

  • Geolocation
    • Document and complete API
    • Use geolocation in more widgets
    • Cache geolocation
  • libplasma2 & QSceneGraph port
  • test GLES backend for kwin
  • DBusmenu implementation in QML
  • KToolBar replacement in QML (using a KActionCollection)
  • KXmlGui actions access in QML
  • KConfig integration with ownCloud
  • Continue/finish porting KDE applications to the mobile build profile (mostly removing deprecated calls)