QuitAppletPlus

Summary

Quit Applet Plus Logo

QuitAppletPlus is a python-gtk based graphical prototype for the Ubuntu quit applet (Gnome). This prototype implements some ideas and should finally be presented to the Ubuntu Desktop Team.

The final goal for the Ubuntu quit applet is: "You will start Ubuntu just to try it again!" Smile :)

What QuitAppletPlus is NOT

  • It's NOT a replacement for the current Intrepid fast-switch-user applet, the ideas from both should be merged.
  • It's NOT a brand-new way either, like DesktopTeam/Specs/ExitStrategy.

  • It's NOT a perfect/final/polished/... solution and it won't be, the following subjects have only minor or low priority (because it's only a prototype):
    • exactly definitions of labels and texts, colors, fonts, icons etc.
    • exactly layout of GTK widgets, resize behavior etc. (also for the reason it's my first GTK project...)
    • performance, memory usage...




Installation

Currently the version "1.0.1" is available (January 17th, 2009). This version was tested on Hardy and Intrepid and additionally includes German and Spanish (many thanks to Luis J. Claros!) translations.

While installation and testing your system will be affected as little as possible:

  • all files will be installed into /opt/quit-applet-plus/ (except the /usr/lib/bonobo/servers/Quit_Applet_Plus.server)

  • the system settings will be not touched (neither gconf entries nor local settings are made)
  • all actions won't be performed, only a message dialog will be shown (it is and will continue to be just a graphical prototype, a mock-up)

From a PPA repository

  • add the following line to the apt sources list, depending on your Ubuntu version:
    • Ubuntu 8.04 Hardy Heron

      deb http://ppa.launchpad.net/krokosjablik/ubuntu hardy main
    • Ubuntu 8.10 Intrepid Ibex

      deb http://ppa.launchpad.net/krokosjablik/ubuntu intrepid main
  • reload source lists

    sudo apt-get update 
  • install the quit-applet-plus package

    sudo apt-get install quit-applet-plus 
  • right click on the gnome panel and choose "Add to Panel"
  • search for "Quit Applet Plus" and add it to the panel (see known problems below)

Uninstall

  • remove the applet from the Gnome panel
  • uninstall the quit-applet-plus package

    sudo apt-get remove quit-applet-plus 
  • remove the related line from the apt sources list

From a Tarball

  • download the tar archive (for the "md5" check sum see the download site)

    wget http://launchpad.net/quit-applet-plus/1.0/1.0.1/+download/quit-applet-plus-1.0.1.tar.gz
  • unpack the tar archive

    tar -xzf quit-applet-plus-1.0.1.tar.gz
  • change to the created directory

    cd quit-applet-plus-1.0.1
  • execute the installation script

    sudo ./setup.py install
  • add the new "Quit Applet Plus" to a Gnome panel (see known problems below)

Uninstall

  • remove the applet from the Gnome panel
  • remove installed files

    sudo rm /usr/lib/bonobo/servers/Quit_Applet_Plus.server
    sudo rm -R /opt/quit-applet-plus

Known problems

  • if you cannot find the applet in the "Add to Panel" dialog, just relogin (or perform "killall gnome-panel", the panel will be restarted automatically)

  • if you have an old version installed, please readd the applet to the Gnome panel
  • if you install the applet from the PPA repository, Synaptic may don't show the quit-applet-plus package after you updated the sources list, the workaround is just to use "apt-get install" as described above




Concept

You will find a lot of screenshots in this chapter, but not all prototype features and scenarios are presented here.

Challenges:

  • Where/how to place all quit actions: lock screen, switch user, suspend, hibernate, log out, restart, shutdown (seven!)?
  • How to protect users from mistakes avoiding "Are you sure"-like confirmations?
  • How to provide extended options without overloading the view?
  • How to present technical actions for inexperienced users?
  • How to match experienced user's requirements, as well?

Where/how to place all quit actions

Applet Default Menu

At first we have to answer some questions:

  • Which quit actions are usually more often used?
  • Which actions can be problematic if you perform that by mistake?

I'm quit sure the most frequently used action is by far the "Shut Down", at least at home. The second one (at least in the office) will probably be the "Lock Screen".

For the second question I would say, if you perform "Shut Down", "Restart" or "Log Out" by mistake, you cannot undo this mistake quickly, and it could be very annoyed... Other actions you can undo quite quickly.

Quit dialog

As a consequence for the first question, we should provide at least direct access to "Shut Down" and "Lock Screen" actions. But due to the second question we can safely do it only for "Lock Screen", for "Shut Down" we will need some protection.

The 'Suspend' and 'Switch User' actions are less often used. They also have little potential to cause big troubles due to mistakes, so we could provide direct access to this actions together with the "Lock Screen" action (preferable with a possibility to hide this two actions as they are less often used).

Addressing the second question we should also protect the "Log Out" and "Restart" actions. We could group them into the same place with the "Shut Down" action as an alternative choice, where "Shut Down" should be preselected by default as the most used action. This "shared" place can be just a dialog (quit dialog) with three radio buttons for "Log Out", "Restart" and "Shut Down".

How to protect users from mistakes

We should minimize the risk of user mistakes. Symptoms of them are exclamations like "Oh, sh...!!! I was going to log out and not to restart the computer!!!". Sounds familiar to you, doesn't it?

The solution "Are you sure you want to ...?" is not a preferred way as it would be just an empty dialog without useful functionality and users will always click OK unreflected to get things done.

As we have a quit dialog (see above) for our time-consuming actions, this dialog could also be our minimal protection against those mistakes.

How to provide extended options without overloading the view

You know... we have a dialog ... Big Grin :) so we can place such options there and hide them by default (see the quit dialog screenshot above).

"Power Off" extended options are presented in the next chapter.

"Log Out" and "Restart" extended options:

"Log Out" options

"Restart" options

How to present technical actions for inexperienced users

Power Off Saved

Mm, how about "Shut Down" -> "Power Off", "Suspend (to RAM)" -> "Standby", "Hibernate" -> "Saved Power Off"?

Oops! Did I say "Saved Power Off"? How about making the "Hibernate" as an option for the "Power Off" action? Wink ;)

Furthermore we can make icons more intuitive, for example if you select the option "Save computer state" ("Hibernate"), the "Power Off" icon will be extended with a little "save" icon (see the screenshot right). The same we could do with the "Log Out" icon if the option "Save session" is selected. In this way you can see directly, whether this options are selected or not.

The option names "Save computer state" and "Save session" are short but not intuitive, so the tooltips should help:

  • "Restore the current computer state on the next start (Hibernation)"
  • "Restore the actually running applications on the next log in"

How to match experienced user's requirements

The related preference to disable the quit dialog

Unbelievably, but it's true, sometimes inexperienced users have its life easier. Big Grin :)

The quit dialog extended options and One Click Actions are designed first for experienced users.

See also available preferences in the screenshot right.

And yes, if you want to perform all quit actions directly from the applet menu (without the quit dialog), you can select the option "I hate this quit dialog!!!" (OK, the option name is a bit different Wink ;) ). Then you don't have this dialog any more and all actions will be performed without any confirmations (like in Intrepid now).

Menu with all items

One Click Actions

"Ctrl + Mouse" performs lock screen

As discussed above, the most frequently used actions are "Power Off" ("Shut Down") and "Lock Screen". Therefore it would be very handy, if you would have a direct access to this actions.


"Ctrl + Shift + Mouse" starts the quit dialog

Exactly for this reason you can perform this actions in the prototype just with one click! Hold the "Ctrl" key (for "Lock Screen") or the "Ctrl + Shift" keys (for "Power Off") and click the applet with left mouse button, done! 1

According to the key/mouse combination the applet changes its icon and the tooltip.

"Ctrl + Shift + Mouse" performs power off

Depending on the settings and permissions, the "Ctrl + Shift + mouse" can start the quit dialog, or perform "Power Off" or "Log Out" actions directly.

You can also use "Ctrl + Shift + Return" or "Ctrl + Return", if the applet is focused in the panel.

"Ctrl + Shift + Mouse" performs log out




Automatic Shut Down

Quit dialog with countdown

Perhaps you know this feature from Gnome (or KDE). In the quit dialog a countdown runs and if you don't do anything, after one minute the computer will be powered off automatically. The prototype contains this feature too, but the countdown is a graphical component (in Gnome the countdown is text based).

The prototype let you also define how long the countdown should be exactly (3, 10, 30 or 60 seconds) or just turn it off.

You can stop the countdown with a mouse click on it or if you select any other component in the dialog. In this case the progress bar will be removed from the view after three seconds. 2

See also countdown other usages.





How to protect another logged-in users

Applet Default Menu

Should "Shut Down" and "Restart" actions be enabled only for admins while there are other users logged-in? I don't think so. If an user has local access to the computer, she/he can just push the reset button. So we cannot forbid something we cannot avoid.

In my opinion, the current solution in the Intrepid is a better approach. But this approach has also its drawbacks. First: the computer doesn't do what I order: instead of "Power Off" the "Log Out" and "Switch User" actions are performed. Second: what will you do, if the other user (you switched to) is away for next year? For this reasons I would like present an alternative approach here, that surely have its drawbacks too (at least one, see below). Big Grin :)

We will let the user power off the computer, but first: we will advise the user of the problem, and second: we will make sure she/he cannot perform the action unreflected (see the screenshot right).

If you select the option "Proceed anyway" the "Power Off" button is enabled and you can power off.

You can also log out and switch to another logged-in user (with "Log Out" extended options), but you will need four(!) additional clicks for that. Probably you can find a better solution here...

A special case: if you power off the computer directly from the applet menu (without the quit dialog) and other users are logged in, the quit dialog is shown with this warning as well. So far so good... But there is a little problem here. You won't expect this dialog (normally the action is performed directly without any confirmations) and therefore you probably won't notice this warning and will go away for next three months for example. Should the computer wait for you? Wink ;) For this reason the countdown runs and if you don't do anything the computer will be powered off after 300 seconds.


Applet Default Menu

Please use the "Test scenarios" dialog (via the applet context menu) in order to simulate the following scenarios:

  • other users are logged in
  • you have no permissions to power off the computer







Credits

  • First of all I want to thank the wonderful community and the environment (like Launchpad) the Ubuntu offers, without that this project wouldn't be possible...

  • Particularly I want also to thank all people who contributed to this project with its feedback, translations or the prototype testing, thank you very much!
  • Last but not least I also would like to thank my company that I could work on this project for the large part also in the office.




Links

Brainstorm idea





  1. Earlier the combination was "Ctrl + Alt + mouse", but it clashes with the compiz cube add-on, therefore this combination was replaced with "Ctrl + Shift + mouse" (1)

  2. At first I put a "stop-countdown" button on the right side of the countdown progress bar, however the dialog looked overloaded... Finally I removed this button. (2)

QuitAppletPlus (last edited 2009-01-18 14:53:47 by p5086A578)