||'''Contents'''<
> <>|| = Summary = {{attachment:logo.png|Quit Applet Plus Logo|align="left"}} QuitAppletPlus is a python-gtk based graphical prototype for the Ubuntu quit applet (Gnome). This prototype implements [[#Concept | some ideas]] and should finally be presented to the [[DesktopTeam | Ubuntu Desktop Team]]. The final goal for the Ubuntu quit applet is: "You will start Ubuntu just to try it again!" :) == 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 [[https://launchpad.net/~luisj-claros | 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 [[WikiPedia:Mock_up | 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 <
> {{{#!sh deb http://ppa.launchpad.net/krokosjablik/ubuntu hardy main }}} * Ubuntu 8.10 Intrepid Ibex <
> {{{#!sh deb http://ppa.launchpad.net/krokosjablik/ubuntu intrepid main }}} * reload source lists <
> {{{#!sh sudo apt-get update }}} * install the '''quit-applet-plus''' package <
> {{{#!sh 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 [[#InstallKnownProblems | known problems ]] below) === Uninstall === * remove the applet from the Gnome panel * uninstall the '''quit-applet-plus''' package <
> {{{#!sh sudo apt-get remove quit-applet-plus }}} * remove the related line from the apt sources list == From a Tarball == * download the [[http://launchpad.net/quit-applet-plus/1.0/1.0.1/+download/quit-applet-plus-1.0.1.tar.gz | tar archive]] (for the "md5" check sum see the [[https://launchpad.net/quit-applet-plus/1.0/1.0.1 | download site]]) {{{#!sh 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 {{{#!sh tar -xzf quit-applet-plus-1.0.1.tar.gz }}} * change to the created directory {{{#!sh cd quit-applet-plus-1.0.1 }}} * execute the installation script {{{#!sh sudo ./setup.py install }}} * add the new "Quit Applet Plus" to a Gnome panel (see [[#InstallKnownProblems | known problems ]] below) === Uninstall === * remove the applet from the Gnome panel * remove installed files <
> {{{#!sh 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 [[#InstallPPA | 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 [[#Install | 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 == {{attachment:menu-with-quit.png|Applet Default Menu|align="right"}} 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. {{attachment:quit-dialog.png|Quit dialog|align="right"}} 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 ... :D 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 [[#InexperiencedUsers|next chapter]]. "Log Out" and "Restart" extended options: ||{{attachment:quit-dialog-logout-options.png|"Log Out" options}} || {{attachment:quit-dialog-restart-options.png|"Restart" options}} || <> == How to present technical actions for inexperienced users == {{attachment:quit-dialog-poweroff-saved.png|Power Off Saved|align="right"}} 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? ;) 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 [[WikiPedia:Tooltip | 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 == {{attachment:preferences.png|The related preference to disable the quit dialog|align="right"}} Unbelievably, but it's true, sometimes inexperienced users have its life easier. :D The quit dialog [[#QuitDialogOptions | extended options]] and [[#OneClickActions|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 [[#MenuAndQuitDialog|quit dialog]]), you can select the option "I hate this quit dialog!!!" (OK, the option name is a bit different ;) ). Then you don't have this dialog any more and all actions will be performed without any confirmations (like in Intrepid now). {{attachment:menu-with-all.png|Menu with all items}} <> == One Click Actions == {{attachment:ctrl.png| "Ctrl + Mouse" performs lock screen |align="right"}} 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. <
> {{attachment:ctrl+alt_quit.png| "Ctrl + Shift + Mouse" starts the quit dialog | align="right"}} 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! <> According to the key/mouse combination the applet changes its icon and the [[WikiPedia:Tooltip | tooltip]]. {{attachment:ctrl+alt_poweroff.png| "Ctrl + Shift + Mouse" performs power off | align="right"}} 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. {{attachment:ctrl+alt_logout.png| "Ctrl + Shift + Mouse" performs log out | align="right"}} <
><
><
> <> == Automatic Shut Down == {{attachment:quit-dialog-countdown.png|Quit dialog with countdown|align="right"}} 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. <> See also countdown [[#OtherUsersLoggedIn| other]] usages. <
><
><
><
> <> == How to protect another logged-in users == {{attachment:quit-dialog-others-logged-in.png|Applet Default Menu|align="right"}} 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). :D 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 [[#ExperiencedUsers|applet menu]] (without the [[#MenuAndQuitDialog|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? ;) For this reason the [[#AutomaticShutDown|countdown]] runs and if you don't do anything the computer will be powered off after 300 seconds. <
> {{attachment:test-settings.png|Applet Default Menu|align="right"}} 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 [[https://launchpad.net/ | 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 [[http://www.ropardo.de | company]] that I could work on this project for the large part also in the office. <
><
><
> = Links = [[http://brainstorm.ubuntu.com/idea/16865/ | {{http://brainstorm.ubuntu.com/idea/16865/image/1/|Brainstorm idea|align="right"}}]] * [[http://ubuntuforums.org/showthread.php?t=1023652 | Ubuntu Forum]] * [[http://brainstorm.ubuntu.com/idea/16865/ | Brainstorm idea]] * [[https://launchpad.net/quit-applet-plus | Launchpad project]] * [[http://wiki.ubuntuusers.de/Benutzer/krokosjablik | German Wiki]] * [[http://wiki.netbeans.org/Python | NetBeans Python]] - my best recommendation :) : code and import statements completion, instant rename, mark occurrences and unused variables, debugger and much more (actually available as early access version only) <
><
><
> ----