KarmicUI

Summary

Re-design the Computer Janitor user interface from scratch.

Release Note

The Computer Janitor has a clearer, more usable user interface.

Rationale

The current user interface was thrown quickly together based on the Update Manager code, but since it is aimed at a completely different kind of use, it doesn't work all that well. The new design should serve users much better.

Design

Martin Albisetti came up with a design at the Karmic UDS for a new user interface of Computer Janitor.

+------------------------------------------------------------------+
|File Help                                                         |
|------------------------------------------------------------------|
|                                                                  |
|Unused:            Recommended:                Optimizations:     |
|-----------------  ------------------------    ------------------ |
|| [ ] abiword   |  | [*] quake2           |    | [ ] relatime   | |
|| [*] emacs     |  | [ ] vim              |    |                | |
||               |  |                      |    |                | |
||               |  |                      |    |                | |
||               |  |                      |    |                | |
||               |  |                      |    |                | |
||               |  |                      |    |                | |
||               |  |                      |    |                | |
||               |  |                      |    |                | |
|-----------------  ------------------------    ------------------ |
|                                                                  |
|                                                 [Start cleanup]  |
|                                                                  |
+------------------------------------------------------------------+

There are three columns (lists) representing three kinds of problems CJ can find: unused or otherwise unwanted packages; missing packages that CJ recommends are installed; and other optimizations.

The items in each list is clickable (perhaps with a little expansion widget in front of the name of the item). Expanding the item reveals more information about the item: 1) how it got onto the system 2) what does it do (and other related information like size), and 3) what the plan is about that item.

For example, an item in the "Unused packages" list might be something like this, when expanded:

  • emacs: This is a software package for Ubuntu. It was installed because some other software required it, but that software is now no longer installed. This package uses about 36 kilobytes of disk space.

    Suggested action: remove from system. Description: The GNU Emacs editor (metapackage)

    • GNU Emacs is the extensible self-documenting text editor. This is a metapackage which will always depend on the latest Emacs release.

Each item has a checkbox. Unchecking an item will add it to the ignore list, meaning it won't be shown when the program is run again. The list of ignored items can be edited via File/Settings.

Implementation

CJ currently has a very simple user interface for GNOME, consisting of one simple .glade file and the corresponding Python class. All the logic of finding and fixing problems is independent of the user interface, making it easy to replace it.

The plan is to develop a new user interface in parallel to the existing one, replacing the existing one only when the new one actually works. The .glade file will be replaced with an XML file for GTKBuilder.

Problems found will be classified to the three lists based on the Python class of the item.

Test/Demo Plan

The new version will be uploaded to the PPA of LarsWirzenius, and advertised in suitable locations such as the ubuntu-devel-discuss mailing list, with a request for feedback.


CategorySpec

ComputerJanitor/KarmicUI (last edited 2009-06-15 14:38:09 by liw)