SoftwareCenter
114888
Comment: #Unsorted Ideas
|
115812
I meant “Installed Software”, not “Get Software”
|
Deletions are marked like this. | Additions are marked like this. |
Line 366: | Line 366: |
The “Get Software” section encompasses a “lobby” screen, screens for each “department”, screens for subsections, and screens for individual packages. | The “Get Software” section should provide access to all software items that are installable from any of the computer’s current software sources, regardless of whether they are already installed (already-installed items should have the “installed” emblem). It should not provide access to packages that are currently installed but not in any of your software sources; these should be in [[#installed|the “Installed Software” section]] instead. The section contains a “lobby” screen, screens for each “department”, screens for subsections, and a screen for each [[#def-software-item|software item]]. |
Line 371: | Line 373: |
Software items should be shown regardless of whether they are already installed (already-installed items should have the “installed” emblem). |
|
Line 514: | Line 514: |
The “Installed Software” section should provide access to all software items that are currently installed, regardless of whether they are available from any of the computer’s current software sources. |
|
Line 559: | Line 561: |
In the navigation pane, individual software sources should be separate child items of both the “Get Software” item and the “Installed Software” item. “Get Software” should have child items for each software source that is enabled, while “Installed Software” should have child items for each software source from which any software is currently installed. If an item disappears while it is selected, the parent item should become selected. '''Test case:''' Expand both the “Get Software” and “Installed Software” items. Add a PPA in Software Sources; the PPA should appear immediately as a child item of “Get Software”, and should quickly be renamed from its URL to its display name. Install a package from that PPA; when it finishes installing, the PPA should appear immediately as a child item of “Installed Software” too. Select that new child item. Remove the package; when it finishes uninstalling, the PPA should disappear as a child item of “Installed Software”, and that parent item should become selected. Select the PPA inside “Get Software”, then remove the PPA from Software Sources; the PPA should disappear immediately as a child item of “Get Software”, and that parent item should become selected. | In the navigation pane, individual software sources should be separate child items of both the “Get Software” item and the “Installed Software” item. “Get Software” should have child items for each software source that is enabled. “Installed Software” should have child items for each source from which any software is currently installed, plus an item for any installed packages with an unknown source. If an item disappears while it is selected, the parent item should become selected. '''Test case:''' Expand both the “Get Software” and “Installed Software” items. Add a PPA in Software Sources; the PPA should appear immediately as a child item of “Get Software”, and should quickly be renamed from its URL to its display name. Install a package from that PPA; when it finishes installing, the PPA should appear immediately as a child item of “Installed Software” too. Select that new child item. Remove the package; when it finishes uninstalling, the PPA should disappear as a child item of “Installed Software”, and that parent item should become selected. Select the PPA inside “Get Software”, then remove the PPA from Software Sources; the PPA should disappear immediately as a child item of “Get Software”, and that parent item should become selected. |
Line 569: | Line 573: |
1. In “Installed Software”, the section for packages with an unknown source should have a question mark as its icon, and the display name “Other”. '''Test case:''' Download and install the Skype package. Expand the Ubuntu Software Center “Installed Software” section. It should have an “Other” child item that lists the Skype package. |
|
Line 1318: | Line 1325: |
Line 1332: | Line 1338: |
Line 1334: | Line 1339: |
This is a living specification for the utility previously known as the Ubuntu Software Store. Your feedback is welcome at SoftwareCenter/Comments. The Ubuntu Software Center is a major part of Ubuntu’s overall software handling.
Launchpad entry: software-library
Created: 2005-08-29 by MatthewPaulThomas
The Ubuntu Software Center is a graphical utility for package management in Ubuntu. In version 1, it builds on the basic philosophy of Add/Remove Applications with an easier-to-use design. In version 2, the primary goals are to take the place of Synaptic and apturl, and to include ratings and reviews of software. In version 3, we plan to offer commercial software for sale. Later versions may include recommendation features, and replace other tools such as gdebi, APTonCD, and most of the Computer Janitor. Unifying the interface will make handling software easier, socially improve security, hopefully free space on the Ubuntu CD, and provide a prominent showcase for Ubuntu and partner software. The Center is implemented using Python, GTK, and Aptdaemon, and may use PackageKit for some components. The project is hosted in Launchpad.
How you can help
We welcome useful contributions from anyone, regardless of age, gender, or experience.
If your expertise is in one of these areas, search through this specification for the color-coded sections relevant to you:
Artists |
Copy-editors |
GTK/Clutter hackers |
Interface designers |
Librarians |
Packagers |
Otherwise, if you are a Python programmer, get the latest code and try fixing existing bugs, or implementing something for version 2.0. When you have something ready, propose it for merging.
If you are a tester, look through this specification and compare the behavior described to the behavior you see in the trunk version. If something has been implemented but behaves differently from how the specification describes it, report a bug if it hasn’t been reported already.
Contents
- How you can help
- Rationale
-
Ubuntu Software Center 2.0
- Definitions used in this specification
- Branding
- Launching
- Common interface components
- Main window
- Determining software item information
- Handling a broken apt cache
- Handling an externally-changed apt cache
- Copying a Web link for a package
- Installing software
- Removing software
- Help
- About window
- Features currently scheduled
-
Features you can implement
- Minimum pane sizes
- Auto-sizing the navigation pane
- Smarter ellipsis of software list view items
- Copying software list view items to the clipboard
- Copying software item text to the clipboard
- Add-on packages
- Date installed
- Cancel bar in “In Progress” screen
- More informative text for waiting tasks
- Copying a Web link for an “In Progress” package
- “Where Is It?” button
- Animation of the main pane
- Roadmap
- Eventual scope
- User stories
- Similar efforts
- Yet-to-be-specified features
- Unresolved issues
- Unsorted ideas
Rationale
In past versions of Ubuntu, there have been at least four graphical utilities promoted for installing and removing software. For installing and uninstalling graphical applications you could use “Add/Remove Applications“ or the more technical “Synaptic Package Manager”, though the former warned you to use the latter “for more complicated needs”. For installing and uninstalling other software, you must use Synaptic. For installing updates, the usual route is Update Manager, but it instructs you to run Synaptic if it encounters conflicts. For configuring where these utilities look for software, you use “Software Sources”. For installing downloaded .deb packages, you use gdebi. And for removing no-longer-needed software, you use Computer Janitor. This redundancy increases the amount of interface people have to learn, wastes space on the Ubuntu CD, and fragments development effort. Having multiple sanctioned graphical methods of installing software also makes people more likely to think that unsanctioned methods are just as safe, when they are not. Meanwhile, the descriptions of available software are often technical gibberish. And many software project and vendor Web sites either provide command-line installation instructions (dulling users to malicious terminal commands from other sources) or .tar.gz downloads that are difficult to install and near-impossible to update.
Instead, there should be one obvious mechanism for installing, removing, and updating software in Ubuntu, with a self-evident name and an interface anyone can use. There should be a coordinated system for developers and enthusiasts to improve the usefulness of descriptions and other metadata for software packages. And projects and vendors whose software is packaged for Ubuntu should be encouraged to provide links to their software’s presence in the Software Center, instead of command-line installation instructions.
If Linux has an Achilles heel, from the point of view of a Windows user, it's installing new software. Be prepared to enter a new world in which Windows Update is a model of simplicity by comparison, and in which you may feel as if you need a Ph.D. in physics merely to install new applications or updates. |
First there is the Add/Remove Applications program, which is designed to allow you to Add and Remove Applications. Second, there is the Synaptic Package Manager, which allows you to Manage Packages (in a manner that is uniquely synaptic, apparently) or Applications as some might call them, by allowing you to Add and Remove them. Finally there is Software Sources, which, if Wine’s installation instructions are any indication, provides Sources of Software, filling a glaring gap in Ubuntu Linux by allowing you to Add and Remove Applications. |
Ubuntu Software Center 2.0
Packages affected: aptdaemon, apturl, software-center, synaptic
Definitions used in this specification
- alphabetically
Following the Unicode Collation Algorithm for the user’s locale. For example, in an English locale, “Déjà Dup Backup Utility” should be sorted alphabetically between “Debian Documentation Browser” and “DeskScribe”.
- em
- The height of the Gnome application font setting. For example, if the current Gnome application font setting works out to be 12 pixels, then 3 em = 36 pixels.
- leading
- Left whenever the system is using a left-to-right language, and “right” whenever the system is using a right-to-left language. (All mockups in this specification are of left-to-right layouts.)
- software item
A package or an application. If app-install-data or an archive index refer to one and only one application in a package, the package itself should not be treated as a software item, because it is represented by the application instead. But if there are multiple applications in a package, or none at all, the package should be treated as a software item.
Unresolved issue: This means searching in “Tech Stuff” for abiword returns several abiword- packages but not the actual program. Does this matter?
- trailing
- Right whenever the system is using a left-to-right language, and “left” whenever the system is using a right-to-left language.
Branding
The program itself, as well as application launchers, help pages, and marketing materials, should consistently use the term “Ubuntu Software Center” (not just “Software Center”). This name should be localized, for example as “Centre” in Commonwealth countries. It is not necessary to translate it word-for-word, but:
Translations should include the word “Ubuntu”, to reduce confusion about whether some software is available in the Ubuntu Software Center, as opposed to being available in any other OS that adopts the Center code.
- Translations should not use a word that means “applications” in particular rather than “software” in general, because as of version 2, the Center allows installation of non-application software such as fonts and themes.
The package name and executable name should both be software-center.
The application Comment should be “Lets you choose from thousands of free applications available for Ubuntu” (without a period), and the summary in the About window should be “Lets you choose from thousands of free applications available for Ubuntu.” (with a period).
The package Summary should be “Utility for browsing, installing, and removing applications” (without a period).
The application and package Descriptions should both be:
The Ubuntu Software Center lets you browse and install thousands of free applications available for Ubuntu. You can view available applications by category, or search quickly by name or description. You can also examine the applications already installed, and remove those you no longer need. |
The application icon should be of an attractive shopping bag with handles, such as you might get from a high-class department store.
1.x |
2.x |
The version shipped in Ubuntu 10.04 should be at least 2.0.
Launching
Launching graphically
In the standard gnome-panel “Menu Bar” applet, “Ubuntu Software Center” should be the last item in the “Applications” menu, with a separator immediately before it.
In the gnome-panel “Main Menu” applet, “Ubuntu Software Center” should similarly be after the list of application categories, with separators immediately before and after it.
In Ubuntu Netbook Remix (netbook-launcher), “Ubuntu Software Center” should appear in the “System” > “Administration” subcategory.
How do we specify performance requirements? Also need to specify progress feedback if launching is slow.
When opened directly, the Center should by default display the lobby screen of the “Get Software” section, scrolled to the top. The search field should be empty. Default focus should be on the search field (so that you can start searching immediately, or use Down followed by other arrow keys to navigate the items in the lobby screen).
Launching from the command line
software-center should launch the Center to its default view. software-center package-name should open the Center to display that package. What to do if the package is unknown?
Common interface components
Menus
_File ===== _Install _Remove ------------------- _Close Ctrl W
“Install” and “Remove” should be disabled by default. “Close” should, by default, close the window and exit the Center.
_Edit ===== _Undo Ctrl Z _Redo Shift Ctrl Z ----------------------------------- Cu_t Ctrl X _Copy Ctrl C Copy _Web Link Shift Ctrl C _Paste Ctrl V _Delete ----------------------------------- Select _All Ctrl A ----------------------------------- Searc_h… Ctrl F ----------------------------------- _Software Sources…
“Software Sources…” should open the Software Sources control panel, or focus it if it is already open.
All other items in this menu should be insensitive by default; their availability and behavior is defined elsewhere in this specification.
_View ===== * All Software Canonical-Maintained Software
All items in this menu should be insensitive by default; their availability and behavior is defined elsewhere in this specification. Test case: While a package is installing, navigate to the “In Progress” section, and open the “View” menu. Its items should be insensitive.
_Help ===== Ubuntu Software Center _Help… -------------------------------- _About This Version
By default, “Ubuntu Software Center Help…” should open the help viewer to the front page of the help.
“About This Version” should open the About window, or focus it if it is already open.
Location bar
Many Center sections include a location bar, which appears at the top of the main pane. It should appear as a raised block inside the main pane.
The location bar contains various contents, sometimes including a title, path button, and/or search field. Where there is a title, it should be displayed in bold text. The search field should always be at the trailing end, while any other contents are at the leading end. Whenever the search field is not present, the other contents should consume, if necessary, some of the space the search field would otherwise consume.
Path button
In some screens, the location bar includes a path button. This should consist of a button in one or more interlocking segments, with the point of one fitting into the crook of the next. If the button cannot be wide enough to display the text of all the segments, then the first segment should be shortened, with the text inside it being ellipsized at the trailing end, e.g. “Get Softw…”. If the button is still too wide even after the first segment has been shortened to read just “…”, then the second segment should be shortened in the same way, and so on.
Search field
Whenever a search field is present in the window, the “Edit” > “Search…” menu item should be sensitive. Selecting it should focus the search field, and (even if it is focused already) select its entire contents.
Whenever the search field is focused, the “Edit” > “Undo”, “Redo”, “Cut”, “Copy”, “Paste”, “Delete”, and “Select All” items should have their usual sensitivity and operation for a text field.
Inside the leading end of the field should be a symbolic magnifying glass icon. Clicking the icon should focus the field and select its entire contents.
When (and only when) the search field is not empty, the trailing end of the field should have a symbolic clear icon. Clicking the icon should focus the field and clear its contents.
Besides the normal behavior for text fields, whenever the insertion point (caret) is at the trailing end of the search field, pressing the Down arrow key should focus the contents of the main pane and select the first item — such as the first department in the lobby screen, or the first result in any list of search results.
Searching in general
When searching anywhere in the Center, any word in the search string that is followed by a space or punctuation should be treated as a a complete word, while any word that is not should be treated as if it may be either a complete word or the beginning of a word. Test case: Searching from the lobby for “atom” should return both Atomix and Liferea (an Atom feed reader). But searching for “atom ” (with a trailing space) should return only Liferea.
[foundations-lucid-non-applications-in-software-center 1 of 4]
If the search terms exactly match a package name, that package should be returned first in the results, even if the package was hidden by default.
Software icon view
A software icon view is used mainly to present software items, and currently also to display the list of departments in the “Get Software” section.
Each item in an icon view features the software item’s icon and its title.
If the icon is scalable, or larger than 4 em in either dimension, it should be scaled down proportionally so that it is 4 em in its largest dimension. If the icon is already smaller than 4 em in both dimensions, it should be drawn at actual size and centered (both horizontally and vertically) inside a 4 em square that has a 0.05-em-wide border of color 170,170,170 (#aaaaaa).
Underneath the icon, the item title should be printed in 0.9-em text that is horizontally centered but top-aligned in its own block; if the title occupies more than two lines, it should be ellipsized in the middle (because unique elements of titles are more often at the beginning or the end). If the package is not available for this computer’s architecture, both the icon and the text should have 50% opacity, but the package should still be selectable.
Items should be laid out like horizontal text: starting at the leading edge and continuing until there is no room for another item on the same line, then wrapping downward.
Each item in an package icon view should produce a pointing-hand pointer when moused over, and single-clicking should navigate to that item.
Software list view
[foundations-lucid-software-center-ui-improvements 1 of 7]
A software list view is used in several screens in the Center. In a list view, each software item should have a row with the item’s icon, title, and summary.
In the “Get Software” section, a list view item has extra elements: stars for ratings, and a hyperlink of the number of reviews. Selecting a row expands it to reveal buttons relating to that item; deselecting the row collapses it.
⇄ |
||
Similarly, rows in the “Installed Software” section expand to show buttons when selected. These rows are also indented under parent department items. |
||
|
In any software list view, as with the software icon view, the icon should be overlaid in the corner with the installed emblem if the package is currently installed.
If either row of text is wider than the space available, it should be ellipsized at the trailing end.
By default, none of the rows in a software list view should be selected. If the view allows selection, clicking anywhere in an row should select that item, and Ctrl+clicking on a selected item should deselect it. If no item is selected, pressing the Down arrow key should select the first row, and conversely pressing the Up arrow key should select the last row. If the view does not allow selection, the arrow keys should scroll the view without highlighting rows.
If the software item is not installable for this computer’s architecture, both the icon and the text — but not the buttons when the row is expanded — should have 50% opacity, but the item should still be selectable.
Whenever an item is selected in a software list view:
“Edit” > “Copy Web Link” should be sensitive. Choosing it should copy a Web link for the relevant package.
Pressing Tab once should focus the first sensitive button in the row; subsequent presses should cycle through any remaining buttons before leaving the list. Test case: With an item (that does not have add-ons) selected and focused in the list, press Ctrl F; the search field should be focused. Press Tab; the row as a whole should be focused. Press Tab again; the “More Info” button should be focused. Press Tab again; the “Install” button should be focused. Press Tab again; the selected item in the navigation pane should be focused.
Unless otherwise specified, a software list view should always have a vertical scrollbar. (This prevents elements at the trailing end from jumping about when the view contents switches between shorter than, and longer than, the container’s height). A software list view should never have a horizontal scrollbar.
[foundations-lucid-non-applications-in-software-center 2 of 4]
If a software list view has items hidden by default, the bottom of the pane containing the view should have a panel (below the bottom of the scrollbar) containing text of the form “17 other technical items”. Following that link should display the items that were hidden by default, and make the panel itself slide down into oblivion.
Categorized list view screen
[foundations-lucid-software-center-ui-improvements 2 of 7]
A categorized list view screen should use a software list view, with the addition that all its software items should be child items of parent items for the department (but not the subsection) that they belong to. Only departments that actually contain items should be shown. The expanded or collapsed state of every surviving department, for every surviving categorized list view screen, should be remembered between sessions.
Any categorized list view screen should have a location bar, containing a section-dependent title and a #search-field. It should also have section-dependent status bar text (which, as usual, should temporarily be overridden when displaying search results).
Searching from a categorized list view screen should not cause any departments to expand of their own accord. However, departments that do not either (a) contain any matching software items, or (b) have names that match the search text themselves, should themselves be removed from the list view.
Software item screen
In both the “Get Software” and “Installed Software” sections, a software item screen should show information about an item, and let you install or remove it. (Once add-on handling is implemented, it should also let you select and change add-ons.)
Whenever a software item screen is being displayed:
If it is an item that is neither currently installed nor being installed, “File” > “Install” should be sensitive. Selecting it should install the selected item.
If it is an item that is currently installed and not currently being removed, “File” > “Remove” should be sensitive. Selecting it should remove the selected item.
Whenever text is selected in the screen, “Edit” > “Copy” should be sensitive. Choosing it should copy the selected text to the clipboard.
“Edit” > “Copy Web Link” should be sensitive. Choosing it should copy a Web link for the relevant package.
The status bar should contain no text.
A software item screen should contain:
The icon for the item.
The title of the item.
The summary of the item.
- If the item is installed, a bar containing the installed icon, the text “Installed”, and a “Remove” button.
A thumbnail of the screenshot of the item from screenshots.ubuntu.com, if there is one, or otherwise the centered greyed-out text “No screenshot available”. Clicking on the screenshot should open it in your preferred image viewer.
- Description text:
If the item is in app-install-data but refers to a package in a software source that is not enabled, the text ‘This software is available from the “{source}” source, which you are not currently using.’.
Otherwise, if the item is in app-install-data and refers to a package that is not present in the apt cache, the text “To show information about this item, the software catalog needs updating.”.
Otherwise, if the item is not available for this architecture, the text “Sorry, <Title> is not available for this type of computer (<Architecture>).”.
Otherwise, the package description.
- A “Web site” link to the Web site, if there is one.
The add-ons section (if add-on handling has been implemented).
- Text describing the total size of the item:
if it is not installed, “Total size: {X} to download, {Y} when installed ({Z} available)”, where X is the download size including not-yet-installed dependencies, Y is the installed size including not-yet-installed dependencies, and Z = the amount of space free on the partition where the software would be installed;
- if it is already installed, “Total size: {Y} on disk ({Z} available)”.
- A bar with varying contents:
If the item is in app-install-data but refers to a package in a software source that is not enabled, a “Use This Source” button that enables that source.
Otherwise, if the item is in app-install-data and refers to a package that is not present in the apt cache, an “Update Now” button that updates the apt cache.
- Otherwise, if the item is not available for this architecture, no button at all.
Otherwise, if the item is installed and add-on handling has been implemented, the text “Free”, and “Cancel” and “Apply Changes” buttons.
- Otherwise, if the item is not installed, the text “Free”, and an “Install” button.
- Otherwise, no bar at all.
- Text of the form “Version: {version number} ({package name})”.
The text “License:” followed by its license label.
- The text “Updates:” followed by the maintenance status for the item.
The “Get Software” section shows screens for both uninstalled and installed items, and these should share the overall “Get Software” color scheme. The “Installed Software” section shows screens for installed items only, and should have a different color scheme.
There should be two differences in the contents of the screen between sections:
In the “Get Software” section, the screen should include the Reviews section at the end.
In the “Get Software” section, the top trailing corner should have a hyperlink consisting of stars for the median rating for the item, plus text of the form “{N} reviews”. When you activate the link, the screen should scroll down to the Reviews section. In the “Installed Software” section, this area should instead have a “Rate & Review…” button that begins the review process.
(Omitting reviews in the “Installed Software” section should discourage, without preventing, people from biasing their ratings and reviews based on the ratings and reviews already submitted. They can still refer to the same item in the “Get Software” section if they want to see the current ratings and reviews.)
Copy-editors |
Within the Center, examine the title, summary, and description of an item. Is it concise and helpful? Is the spelling and grammar correct? If it’s a non-geek application, does the description avoid geek language? Is it in the appropriate department? If you find a problem, and you are comfortable diving into code to fix it yourself, follow the distributed development instructions with the app-install-data-ubuntu package to fix problems in an application’s title or summary, or the package itself to fix problems with its description. Otherwise, report a bug with (a) the current text, (b) what needs improving, and (c) your proposed replacement text, and give the bug report the metadata tag. |
Packagers |
Please look for bugs that people have reported about inappropriate application names or summaries, or package descriptions or departments, and fix them. Thanks for your help. |
Packagers |
If a single package contains multiple applications, and people might reasonably want to install these applications separately, work to separate the packages into one per application. |
Main window
|
The Center should use a normal window, with the title “Ubuntu Software Center”.
default window size and placement TBD
The main window has four major components: the menu bar at the top, the navigation pane on the leading side, the main pane on the trailing side, and the status bar at the bottom. The bar between the navigation pane and the main pane should be draggable to change their respective widths.
Sometimes the main pane contains a location bar or an action bar.
Navigation pane
The navigation pane should have a vertical scrollbar only when necessary, and should never have a horizontal scrollbar. Instead, each item inside it should be ellipsized at its trailing end whenever there is not enough room to show it completely.
The navigation pane should list the top-level sections that can be navigated to, each with a text-size icon and a label:
- an 0.5-em gap
“In Progress”.
In future versions the navigation pane will contain other items, such as history, recommendations, and user-created collections.
Only one item in the navigation pane should be selected at a time. Single-clicking an item should select it and immediately change the visible section. Double-clicking should behave identically to single-clicking, and secondary-clicking or dragging should do nothing.
Navigating to a section should display, to the extent still applicable, the section exactly as it was when it was last viewed since the Center was launched: the same department, category, search results, scroll position, etc. This memory should not persist once the Center is closed.
Test case: In the “Get Software” section, navigate to the AbiWord application, and scroll to the bottom of the AbiWord screen. In the navigation pane click on “Installed Software”, then on “Get Software”. The Center should resume displaying the bottom of the AbiWord screen.
Test case: In the “Installed Software” section, navigate to the Firefox application. Close the Center, then reopen it. Click on “Installed Software”. The Center should display the top level of the Installed Software section.
Test case: Begin installing something. While it is installing, in the “Get Software” > “Internet” section, search for “chat”, and scroll through the results. Click on “In Progress”; the Center should show the installation progress. Now click on “Get Software”. The Center should return to the search results for “chat” within the “Get Software” > “Internet” department, in exactly the scroll position that you left it.
“Get Software” section
The “Get Software” section should provide access to all software items that are installable from any of the computer’s current software sources, regardless of whether they are already installed (already-installed items should have the “installed” emblem). It should not provide access to packages that are currently installed but not in any of your software sources; these should be in the “Installed Software” section instead.
The section contains a “lobby” screen, screens for each “department”, screens for subsections, and a screen for each software item.
In the navigation pane, the “Get Software” item should have the same icon as the Software Center itself. It may have an extra icon at the trailing end for a broken software catalog.
Whenever you are in the “Get Software” section, the “View” > “All Software” and “View” > “Canonical-Maintained Software” items should be sensitive. Changing the selection should determine whether all software or just Canonical-maintained software is are shown. The selection should persist regardless of which screen in the “Get Software” section is being displayed.
Whenever a software item is selected — whether searching from the lobby, in a department, in a subsection, or implicitly by being in a software item screen itself:
If it is an item that is not currently installed nor being installed, “File” > “Install” should be sensitive. Selecting it should install the selected item.
If it is an item that is currently installed and not currently being removed, “File” > “Remove” should be sensitive. Selecting it should remove the selected item.
Back/Forward navigation
[foundations-lucid-software-center-ui-improvements 3 of 7]
Starting from each launch of the Center, it should remember a navigation history of the screens you have visited in the “Get Software” section (not including any screens for individual software sources). This navigation history should function as in a conventional Web browser: navigating using the history should move within it without adding items to it, and navigating without using the history should discard all forward items from the history.
Test case: Launch the Center; both the Back and Forward buttons should be insensitive. Navigate to the “Games” section; the Back button should become sensitive. Navigate to the “Installed Software” section, and then to an individual item screen inside it. Return to the “Installed Software” section. Activate the Back button; you should return to the lobby, the Back button should become insensitive, and the Forward button should become sensitive. Activate the Forward button; you should return to the “Games” section, the Back button should become sensitive, and the Forward button should become insensitive.
Location bar in the “Get Software” section
All screens in the “Get Software” section should have a location bar, containing at least Back and Forward buttons and a path button.
The Back and Forward buttons should navigate through the navigation history. If there is no screen to go back to or forward to, the Back and Forward buttons should be insensitive respectively.
Software list view for “Get Software”
Selecting a row should expand it to reveal buttons relating to that item. Deselecting the row should collapse it.
The “More Info” button should have Enter as its access key. Activating it should navigate to the software item screen.
(The “Choose Add-Ons…” button should be present only if add-on handling has been implemented and the item has add-ons.)
The “Install” button should not have an access key (because that would interfere with typing letters to navigate the list). It should be insensitive if the item is installed, currently installing, or scheduled for installation. Activating the button should install the item.
Lobby screen
The lobby is the entry point to the Center, so it is important that it be attractive and welcoming. (The term “lobby” should not appear anywhere in the interface or help text.)
Whenever the lobby screen is being displayed:
The path button should consist only of the “Get Software” element.
The status bar text should be of the form “29 079 items available”.
The background of the lobby screen should be grey-blue 182,189,196 (#b6bdc4), and all text in that screen should be black 0,0,0 (#000000). The padding between the edges of the lobby and its contents should be 1 em, both horizontally and vertically.
The lobby currently has one section, “Departments”. The header should use a background... TBD The section should have a bottom margin of 2 em.
Arrow keys should change focus between the selectable items in the lobby screen.
The “Departments” section of the lobby screen should list the departments as defined and sorted under “Genre”, using an icon view.
Artists |
What is a more attractive way of presenting these departments? Currently they look very similar to individual applications, but probably they should look different. Perhaps they should use buttons of some sort? Perhaps the clickable element for each department could incorporate small versions of the icons for the most popular applications or packages in that department? Present your ideas under this box. Please sign your name with each idea. Thanks! |
Department screen
[foundations-lucid-software-center-ui-improvements 4 of 7]
If a department has any subsections, or if it has any items marked as X-AppInstall-AlwaysOnTop, the department screen should have two panes. Otherwise, it should have one pane.
If there are any items marked as X-AppInstall-AlwaysOnTop, the top pane should begin with a “Bundles” section, presenting those items alphabetically in an icon view.
Next in the top pane should be a section with the same name as the department itself (e.g. “Games”), presenting those items alphabetically in an icon view.
The bottom pane — or, if there is only one pane, the only pane — should be an alphabetically sorted software list view of the software items in that department. If the department is not set to “Show non-applications by default”, non-application items should be hidden by default.
Whenever a department screen is being displayed:
The path button should contain only segments for “Get Software” and the name of the department.
The status bar text should be of the form “301 items available”, counting all the items in that department, including all subsections.
Subsection screen
[foundations-lucid-software-center-subcategories 1 of 2]
A subsection screen should be a alphabetically sorted software list view of the software items in that subsection. If the subsection is not set to “Show non-applications by default”, non-application items should be hidden by default.
Whenever a subsection screen is being displayed:
The path button should contain three segments — “Get Software”, the department, and the subsection.
The status bar text should be of the form “17 items available”, counting all the items in that subsection.
Searching in “Get Software”
When in the lobby, or in the screen for a department or subsection, the location bar should contain a search field that searches within that scope. This should follow the standard searching behavior.
In addition, whenever the search field contains any text, or has been empty for less than two seconds:
The path button should have an extra item at the trailing end, “Search Results”. Selecting the parent item in the path button should clear the search field, thereby navigating to the previous screen.
The rest of the main pane should temporarily be replaced by a software list view of search results. If in a department or subsection, the results should be limited in scope to that department or subsection.
The status bar text should be of the form “No matching items” or “37 matching items”.
Test case: Launch the Center. Type Ctrl F; the search field should be focused. Type “fire” (without quotes or pressing Enter); the “Search Results” path button element should appear, and the main pane should be replaced by search results, with Firefox first. Press the down arrow key once; Firefox should be selected in the results. Press Enter; the Center should navigate to the software item screen for Firefox.
[foundations-lucid-non-applications-in-software-center 3 of 4]
When searching from the lobby, a non-application item should be hidden by default if its primary subsection (or, if it has no subsection, its primary department) does not “Show non-application packages by default”.
When searching from a department screen, a non-application item should be hidden by default if its presence in that department is in a subsection (or, if it has no subsection, that department itself) that does not show non-application packages by default.
When searching from a subsection screen, a non-application item should be hidden by default if that subsection does not “Show non-application packages by default”.
For the sake of people who are unfamiliar with how they should use the search, there should be a greylist of words that are downplayed when searching. “Downplayed” in this sense means that:
- A search that consists only of greylisted words should work just as if none of the words were greylisted.
- In any other search that contains one or more greylisted words, the greylisted words should be ignored: only the words that are not greylisted should be searched for. However, once the results are chosen, the presence of any greylisted words should cause a result to appear higher in the list.
For English, the greylist should be “app application package program programme suite tool”. The greylist should have a translation note: “Do not translate this list directly. Instead, provide a list of words in your language that people are likely to include in a search but that should normally be ignored in the search.”
Test case: From the lobby, search for “drawing”. Then search for “drawing program”. The Center should return exactly the same results for both searches, but in a different order.
Test case: From the lobby, search for “application suite”. The Center should return only results that include both those words.
Testers |
You can help us improve the search function by testing it in successive versions. |
Needs refactoring: Some of this search logic also applies to “Installed Software”.
Whenever a software item screen is being displayed in the “Get Software” section: The path button should consist of elements for “Get Software”, then the primary department to which the item belongs, then the primary subsection if any, then the title of the item. The location bar should not contain a search field. If the relevant package is not maintained by Canonical and you then choose “View” > “Canonical-Maintained Software”, the Center should automatically navigate up to the subsection screen; or, if the entire subsection contains no Canonical-maintained items, up to the department screen; or, if the entire department contains no Canonical-maintained items, up to the lobby screen).
The “Installed Software” section should provide access to all software items that are currently installed, regardless of whether they are available from any of the computer’s current software sources. [foundations-lucid-software-center-ui-improvements 5 of 7] The “Installed Software” section should have its own home screen, and screens for individual software items. It should not include screens for each department or subsection. Whenever you are in the “Installed Software” section, the “View” > “All Software” and “View” > “Canonical-Maintained Software” items should be sensitive. Changing the selection should determine whether all software or just Canonical-maintained software is shown. The selection should persist regardless of which screen in the “Installed Software” section is being displayed. Regardless of which screen is being displayed, the section should should have a location bar containing a path button. In the navigation pane, “Installed Software” should have an icon of a computer. It may have an extra icon at the trailing end for a broken software catalog. The top level of the “Installed Software” section should show a categorized list view screen listing all the software items currently installed, with its title being “Installed Software”, and its status text being of the form “1047 items installed”.
Selecting a row should expand it to reveal buttons relating to that item. Deselecting the row should collapse it. The “More Info” button should have Enter as its access key. Activating it should navigate to the software item screen. (The “Change Add-Ons…” button should be present only if add-on handling has been implemented and the item has add-ons.) The “Remove” button should not have an access key (because that would interfere with typing letters to navigate the list). Both it, and “File” > “Remove”, should be sensitive if the item is neither currently being removed nor scheduled for removal. Activating the button or the menu item should remove the software item.
Whenever a software item screen is being displayed in the “Installed Software” section: The path button should consist of elements for “Installed Software”, then the title of the package. (There should not be elements for departments or subsections.) The location bar should not contain a search field. “File” > “Remove” should be sensitive. Selecting it should remove the selected package. “Edit” > “Copy Web Link” should be sensitive. Choosing it should copy a Web link for the selected package. If the package is not maintained by Canonical and you then choose “View” > “Canonical-Maintained Software”, the Center should automatically navigate back to the main “Installed Software” screen.
[foundations-lucid-software-center-ui-improvements 6 of 7] In the navigation pane, individual software sources should be separate child items of both the “Get Software” item and the “Installed Software” item. “Get Software” should have child items for each software source that is enabled. “Installed Software” should have child items for each source from which any software is currently installed, plus an item for any installed packages with an unknown source. If an item disappears while it is selected, the parent item should become selected. Test case: Expand both the “Get Software” and “Installed Software” items. Add a PPA in Software Sources; the PPA should appear immediately as a child item of “Get Software”, and should quickly be renamed from its URL to its display name. Install a package from that PPA; when it finishes installing, the PPA should appear immediately as a child item of “Installed Software” too. Select that new child item. Remove the package; when it finishes uninstalling, the PPA should disappear as a child item of “Installed Software”, and that parent item should become selected. Select the PPA inside “Get Software”, then remove the PPA from Software Sources; the PPA should disappear immediately as a child item of “Get Software”, and that parent item should become selected. Both “Get Software” and “Installed Software” should be collapsed on first launch, but their expanded or collapsed state should persist between sessions. The icon, display name, and sort order for individual software sources inside each of “Get Software” and “Installed Software” should be as follows: A PPA should use the same PPA icon that Launchpad uses, and should have a name equal to the contents of the Label: field from the Release file. Until this display name has been retrieved from Launchpad, the PPA item should use the same naming scheme as any other non-CD source. If there are multiple PPAs, they should be sorted alphabetically. Any other network source should have the icon of a generic package, and a name consisting of its URI with the protocol stripped, A volume (such as a CD, DVD, or USB stick) containing packages should have the same icon as it has in the file manager. If the volume contains a /.disk/info file, the name of the item should be of the form “{OS version}”, where the OS version is the contents of /.disk/info up to but not including the first " character nor any spaces immediately preceding it. Otherwise, the name should be the same as it is in the file manager. Test case: Download and install the Skype package. Expand the Ubuntu Software Center “Installed Software” section. It should have an “Other” child item that lists the Skype package.
When an individual software source inside “Get Software” is selected, the main pane should show a categorized list view screen listing all the packages that source contains, with its title being the display name of the source, and its status text being of the form “17 items available”. When an individual software source inside “Installed Software” is selected, the main pane should show a categorized list view screen listing all the packages currently installed (or in the process of being removed) from that source, with its title being the display name of the source, and its status text being of the form “3 items installed”.
The “In Progress” section should be visible only when items are being installed or removed, or when the last installation or removal finished less than two seconds ago. If the section disappears while being displayed, the Center should return to the section that was previously being displayed. In the navigation pane, the section should have an animated icon of two green semicircular arrows chasing each other clockwise. After the words “In Progress” should be, in brackets, the number of tasks yet to be completed. Whenever the “In Progress” section is being displayed, the status bar text should be of the form “2 items remaining” or “All items completed”. The section itself should list the items requested for installation or removal, earliest first. The rows in the list should be based on a software item list view, with these differences: The cancel button for an individual item should be sensitive only when the item has not yet started or is still downloading. If you try to close the Center while an item is installing or being removed:
The status bar should contain status text, and, in the trailing corner, a resize handle. The status text should be centered within the status bar, both horizontally (as if the resize handle was not present) and vertically.
[foundations-lucid-software-center-repository-based-index 1 of 1] For any software item (a package, or an application with a .desktop file inside a package), there a variety of fields that are derived from the item’s entry in the app-install-data package, the archive index, the Debian control file for the package, or a combination of these.
The icon should be the icon supplied for the application by your current theme, if there is one; otherwise the icon provided by app-install-data, if there is one; otherwise the generic package icon.
[foundations-lucid-non-applications-in-software-center 4 of 4] The title should be the application Name, if there is one; otherwise the package synopsis (the first line of the Description field). If this leaves multiple packages with the same title, the package name should be appended in brackets to the title of each of them: “{Previous Title} ({package name})”. (This is the same approach used for disambiguating account names in Ubuntu’s session menu.) Test case: Search for the “backintime-gnome” package. The item should have the title “Back In Time (backintime-gnome)”.
The summary should be the application Comment, if there is one; otherwise the package synopsis, if the application has a Name but not a Comment; otherwise the package name (because if you’re looking at a non-application package in the first place, you’re fairly likely to be the sort of user who wants to know the package name).
[foundations-lucid-software-center-subcategories 2 of 2] Every item has a genre represented by a primary department, and sometimes also by a primary subsection and/or a secondary department. If an item has a secondary department, it may also have a secondary subsection. As used elsewhere in this specification, an item’s department means its primary department, and its subsection means its primary subsection. These are the departments and subsections, in the order in which they should be presented when presented together: Department Equivalent menu spec categories Equivalent sections Show non-application packages by default - Subsection Accessories Utility Education Education Games Game, Sports - Amusements Amusement - Board Games BoardGame - Card Games CardGame - Puzzles LogicGame - Role-Playing RolePlaying - Sports SportsGame Graphics Graphics Internet Network Office Office Science & Engineering Science - Artificial Intelligence ArtificialIntelligence - Astronomy Astronomy - Biology Biology - Chemistry Chemistry - Computer Science ComputerScience - Construction Construction - Electronics Electronics - Engineering Engineering - Geography Geography - Geology Geology, Geoscience - Mathematics DataVisualization, Math, NumericalAnalysis - Medicine MedicalSoftware - Physics Electricity, Physics - Robotics Robotics Sound & Video AudioVideo, Audio, Video System Tools Tech Stuff - yes Universal Access Accessibility Developer Tools Development devel - Debugging Debugger - (not debug) - Graphic Interface Design GUIDesigner - - Haskell - haskell yes - IDEs IDE - - Java - java yes - Libraries - libdevel (not libs or oldlibs) yes - Lisp - lisp yes - Localization Translation - (not localization) - Mono/CLI - cli-mono yes - OCaml - ocaml yes - Perl - perl yes - Profiling Profiling - yes - Python - python yes - Ruby - ruby yes - Version Control RevisionControl vcs yes Librarians We need helping designing this helpful new classification scheme for the Center. For example, what subcategories could the “Games” department have? And how could the items in the “Internet” menu be redistributed? Tell us your ideas on the Classification page. Thanks! The algorithm for determining an item’s primary department and subsection should be: If it has a .desktop file with at least one Category: value that matches one of the Use the first recognizable Category: value to determine the subsection from the table. If it has a Section: that matches one of the Use the Section: value to determine the subsection from the table. If it has a .desktop file with at least one Category: value that matches one of the Use the first recognizable Category: value as the department. If it has a Section: that matches one of the Use the Section: value to determine the department from the table. The algorithm for determining an item’s secondary department and subsection should be: If the .desktop file has at least one X-Ubuntu-Category-Secondary: field that matches one of the known departments, then: Use the first X-Ubuntu-Category-Secondary: value as the subsection. Test case: We should have a test repository containing packages with various combinations of Category: and/or X-Ubuntu-Category-Secondary:.
If the relevant package for an item is in:
Whenever the Center detects that the apt cache of packages is currently broken: The “Get Software” and “Installed Software” items in the navigation pane should both have icons at their trailing end. The icons should produce the pointing-hand cursor when moused over, and when clicked should open the broken-catalog alert. The broken-catalog alert should have the primary text: “Nothing can be installed or removed until the software catalog is repaired. Do you want to repair it now?” and the secondary text “Once Update Manager has finished the repairs, you can close it and return to the Center.”. The alert should have “Cancel” and “Repair” buttons, where “Repair” is the default. Choosing “Cancel” should cancel any installation or removal that produced the alert. Choosing “Repair” should launch Update Manager in repair mode.
Whenever the Center detects that the apt cache of packages has been changed by another process, the contents of the main pane (including location bar, if any) for every section except “In Progress” should temporarily be covered by a curtain. The curtain should have at least two lines of centered text: “Another program has changed the software catalog.” and “One moment, please…”. Below the text should be a determinate progress bar for the process of rebuilding the Center’s database. When the process is complete, the curtain should be raised, and all sections should return (as much as practical) to their previous display.
Whenever you choose to copy a Web link for a package, the Center should copy to the clipboard text of the form http://apt.ubuntu.com/p/
When you request to install a software item: The Center should handle a broken apt cache if necessary. If necessary, a window-modal PolicyKit alert should appear to enter authentication details. If (and only if) there were no other tasks in progress when the installation was requested, the Center should switch to displaying the “In Progress” section. While the download is taking place, the status text should be set to “Downloaded {X} of {Y}”. While the installation script is running, the status text for the item should be set to the normal text issued by dpkg. For an item being installed, 50 % of the progress bar length should be allocated to the downloading process, and 50 % to running the installation script. Packagers (and testers) Wait, what? Fifty percent? That’s not accurate! Perhaps not, but even a progress bar that varies a bit in speed is infinitely more accurate than one that fills up completely only to jump back to zero for the next step. And you can help us make it even better.
When you request to remove a software item: The Center should handle a broken apt cache if necessary. If the relevant package is part of the ubuntu-desktop metapackage, the Center should put up a confirmation alert: “{title} is a core item in Ubuntu. Removing it may cause future upgrades to be incomplete.” The alert should have “Cancel” and “Remove Anyway” buttons; neither button should be the default. If you request to remove a package that is part of any other metapackage, the Center should put up a confirmation alert: ‘If you uninstall {title}, future updates will not include new items in the “{metapackage title}” set.’ Again, the alert should have “Cancel” and “Remove Anyway” buttons; neither button should be the default. If you request to remove a package that is depended on by any other package, or an application that shares a binary package with any other application, the Center should put up a confirmation alert: “To remove {title}, these items must be removed as well:” — with any affected applications, followed by any other affected packages, listed alphabetically in an inset software list view that does not allow selection but is focused by default. The alert should have “Cancel” and “Remove All” buttons; neither button should be the default. The Center should, if necessary, ask for authentication details in a window-modal PolicyKit alert. If (and only if) there were no other tasks in progress when the installation was requested, the Center should switch to displaying the “In Progress” section.
The help should cover these topics:
The About window should follow the standard Gnome About window layout, using the appropriate application summary.
[foundations-lucid-ratings-and-reviews-in-software-center
This process begins when you activate the “Review…” button on an “Installed Software” item screen. If necessary, the Center should go through the Ubuntu Single Sign-On authentication/registration process, using the summary text “To review software, you need an Ubuntu Single Sign-On account.”. Once you are signed in, a dialog should appear for submitting the review. The “Your rating:” field should be focused by default. The dialog’s title should be of the form “Review {Item Title}”, and it should display the icon, title, and version number of the software. The “Your rating:” field should consist of five stars plus a caption. By default, no stars should be filled. Whenever the field is focused, the Left and Right keys should increase or decrease the rating in one-star increments, and the 1 through 5 keys should change the rating to that many stars. The caption should reflect the star you are mousing over, if you are, or otherwise the rating you have currently set: “” (no rating yet), “Awful” (1), “Poor” (2), “Adequate” (3), “Good” (4), or “Excellent” (5). Setting a rating level, whether using a pointing device or a key equivalent, should highlight the new rating in a similar visual style as when clicking a checkbox or radio button. The “Comments:” field should accept multiple paragraphs, and should use automatic spell-checking. The “Cancel” button should have Esc as its keyboard equivalent. The “Post Review” button should be sensitive only if you have both set a rating
Throughout the “Get Software” section, a list view item should have in its top right corner: Clicking the stars or text should navigate to the software item screen The software item screen in the “Get Software” section should contain a “Reviews” section, displaying the five most relevant reviews for the item. “Most relevant” in this sense means the most recent reviews for the current version, with any remainder being the most recent reviews of the next most recent version, then the next most recent, and so on.
Below each review should be a “Report” link. Activating the link should invoke the Ubuntu Single Sign-On authentication/registration process, if necessary, using the summary text “To report a review as inappropriate, you need an Ubuntu Single Sign-On account.”. The dialog should also feature a “Just Hide It” button, which should cancel the process, but should also immediately hide the review and remember indefinitely that you do not want to see that review again. Once you are signed in, a dialog should appear for reporting the review. It should have a “Why is this review inappropriate?” menu with choices “Offensive language”, “Copyright infringement”, “Off-topic”…
For ease of sharing lists of software, and to fully replace apturl, the Center should allow “searches” that return ad-hoc package sets. From the top-level “Get Free Software” screen, whenever a search string consists entirely of characters allowed in package names, interspersed with commas (and no spaces), and optionally followed by a comma: The last element in the path button should be “Custom List” rather than “Search Results” (though it should otherwise behave the same as a “Search Results” element). The rest of the main pane should display a “Get Software” list view of the software items corresponding to those package names. Unlike usual search results, this list should be sorted in exactly the same order as the search string. If any of the package names does not have a corresponding package in your current software sources, its item in the list should have a question mark as its icon, “Not found” as primary text, and the package name as secondary text; the icon and text should both be greyed out, and selecting the row should not expand it. Whenever at least one of the listed items is installable, the bottom of the pane should have an action bar, containing at its trailing end a button of the form “Install {X} Items”, where X = the number of items not currently installed (regardless of whether they are queued for installation). Activating this button should install all those items. The status bar should have text of the form “{X} items”, where X = the number of recognized items ( Test case: On a machine that has Gobby and Orca installed but neither 9base nor abcde, with “View” > “All Software” selected: Navigate to the main “Get Software” screen and enter “gobby,orca” (without quotes) in the search field. The path button should show “Get Software” > “Custom List”, the rest of the main pane should list “Gobby” and “Orca”, and the status bar should say “2 items”.
[foundations-lucid-software-center-ui-improvements 7 of 7] Opening an apt: URL should launch the Ubuntu Software Center directly to the appropriate screen; or if it is already open, focus it, wait until any currently-open alerts or dialogs have been dismissed, and then switch to the appropriate screen. What that “appropriate screen” is depends on the URL and installation status, as follows.
If the package is known and currently installed, the “Installed Software” item screen for the package. If the package is known and not currently installed (even if it is currently If the package is not known, an ephemeral error screen in the “Get Software” section, with the path button “Get Software” > “{package name}”. It should be possible to return to this screen later in the navigation history, but it should not be possible to navigate to it directly.
If any version of the package is currently installed, the “Installed Software” item screen for the package. Otherwise, the “Get Software” item screen for the package. If the package is not known, the same ephemeral error screen as used for apt:unknown-package-name.
A custom package list for the package names (including the comma-separated names in the search field).
If the package is known and currently installed, the “Installed Software” item screen for the version of the package that is installed. If the package is known and not currently installed (even if it is currently If the section is not currently enabled, a screen inviting you to enable it. This screen should have the path button “Get Software” > “{package name}”, the heading “{package name}”, the text ‘This software is available from the “{source}” source, which you are not currently using.’, and a button “Use This Source”. Activating the button should add the source. If/when the section is enabled, the “Get Software” item screen for the package. If the package is not known, the same ephemeral error screen as used for apt:unknown-package-name.
Exactly the same appearance and behavior as for apt:package-name?section=multiverse, but enabling a whitelisted repository as listed in /usr/share/app-install/channels/, rather than a section.
When this feature is fully implemented, the software-center package should be marked as Replaces: apturl.
These are mini-specifications for new features and other changes that anyone is welcome to implement for the Ubuntu Software Center. Some are more important than others; some are more difficult than others. If you would like to implement any of them, please do so in a branch and propose it for merging. Thanks! (Once a feature is implemented, the mini-specification here will similarly be merged into the main specification.)
The minimum width of the navigation pane should be just enough to display the icons of the top-level sections listed within it. The minimum width of the main pane should be 8 em.
Double-clicking the splitter between the navigation pane and the main pane should move it so that the navigation pane is exactly wide enough to fit the widest text currently being displayed in it.
In a software list view, if the secondary text is wider than the space available, it should be ellipsized in the middle, not the trailing end (because unique parts of package names are often at the trailing end).
Whenever an item in a software list view is selected, “Edit” > “Copy” should be sensitive. Choosing it should copy to the clipboard the item’s title and summary as plain text separated by one line break. If the item has a custom icon, it should also be copied as both a bitmap and as a vector image if available.
Whenever text is selected in a [[#software-item-screen|software item screen, “Edit” > “Copy” should be sensitive. Choosing it should copy the selected text to the clipboard.
Package Package If a software item has any add-ons, it should have an add-ons section in the place specified in its “Get Software” item screen or “Installed Software” item screen. If the item is not installed already, the section should have the heading “Choose add-ons”; if it is installed already, the heading should be “Change add-ons”. The list of add-ons for the item should be presented as a series of checkboxes. The label for each checkbox should be a text-sized version of the add-on’s icon, followed by its title. Recommended add-ons should be listed first alphabetically, then suggested add-ons alphabetically. If the main package is not installed already, the checkboxes for recommended add-ons should be checked by default, while the checkboxes for suggested add-ons should be unchecked by default. If the main package The “Total size:” text should update immediately whenever checking or unchecking a checkbox. For an item that is already installed, whenever the current state of the checkboxes is different from the installed state of the add-ons, the text should change from Total size: {amount} on disk ({amount} available)”: If the main package is already installed, the “Total size” text should be followed by an action bar with “Cancel” and “Apply Changes” buttons. Both buttons should be sensitive only when the current state of the checkboxes is different from the installed state of the add-ons themselves. Activating “Apply Changes” should install and/or remove the add-ons as specified. In the “In Progress” section, when installing an item, installing any of its add-ons should be presented as part of the same task. But changing add-ons for an installed item should be presented as a separate task for each add-on. Next: Throughout the “Get Software” section, whenever the selected item in a software list view is an item that has add-ons, it should have a button to the left of the “Install” button: “Choose Add-Ons…” if the item is not yet installed, or “Change Add-Ons…” if it is. (The button should not have an access key, because that would interfere with typing letters to navigate the list.) The purpose of this button is to alert users that there are options they might want to consider before choosing to install the item. Activating the button should navigate to the relevant software item screen
In the software item screen for an item that is installed, instead of just saying “Installed”, the bar containing the “Remove” button should display the date that the item was installed.
At the bottom of the “In Progress” section should be a panel of the same general appearance as the location bar, but containing only a “Cancel All” button. The “Cancel All” button should be sensitive only when any items have not yet started or are still downloading. If you try to close the Center while an item is installing or being removed, as soon as the Center switches to displaying the “In Progress” section, at the left end of the panel containing the “Cancel All” button, this text should be displayed: “The Center will close when these tasks finish.” (The “Cancel All” button should retain its usual sensitivity and effect.)
When you request to install an item and it is waiting for other tasks in the “In Progress” queue, its status text should be “Waiting to install”. When you request to remove an item and it is waiting for other tasks in the “In Progress” queue, its status text should be “Waiting to remove”.
Whenever an item is selected in the “In Progress” section, “Edit” > “Copy Web Link” should be sensitive. Choosing it should copy a Web link for the selected package.
GTK/Clutter hackers In the screen for a graphical application in the “Installed Software” section, there should be a “Where Is It?” button. Clicking the button should: over two seconds, draw a ring around the menu ( instantly remove the previous ring, At any time, focusing another window or pressing any key should cancel the process and make any ring disappear. As a less sophisticated solution, the menus and items should — for a few seconds — slowly throb in a different color.
GTK/Clutter hackers Whenever you navigate from within the lobby screen to a department screen, over 0.5 seconds the left and right halves of the lobby screen should split in two halves sliding out of the pane to the left and right — like a pair of lift/elevator doors opening — to reveal the department screen underneath. When navigating from a department screen back to the lobby screen, the reverse should happen: over 0.5 seconds, the left and right halves of the lobby screen should slide in from their respective sides of the main pane, eventually covering the department screen. GTK/Clutter hackers Whenever you navigate from within a department screen to a software item screen, over 0.5 seconds, the icon of that package that was visible in the department screen should simultaneously zoom and move linearly to become the icon of the software item visible in the software item screen. At the same time, the rest of the contents of the department screen should linearly crossfade into the rest of the contents of the software item screen. Both of these effects should also happen when navigating the reverse direction, from the package screen back to the department screen.
This roadmap is a draft.
In Ubuntu 9.10, we shipped Ubuntu Software Center 1.0. This includes: Better security than Add/Remove Applications ( A redirector Web service (
For Ubuntu 10.04 LTS, we plan to: Replace most, if not all, uses of apturl with launching the Center to the appropriate screen.
For Ubuntu 10.10, we plan to:
For Ubuntu 11.04, we plan to: Incorporating AptOnCD. Investigate and, if appropriate, implement specialized interfaces for browsing and installing particular classes of package (fonts, screensavers,
This is a tentative mockup of version 4: And this is a laundry list of desired features, for the purpose of designing an interface for version 2.0 that will scale to include those features later. It is You should be able to: find software by: [idea 18315] purpose ( category and subcategory ( name of competitor ( misspelling ( class (debug vs. non-debug, applications vs. not [idea 3144], etc) results previously returned by command-not-found habit (people who installed X also installed Y) (suggested by Enrico Zini) what’s new [idea 13762] whether it was recently installed or removed [idea 16953] what people think of it (ratings and reviews) [UserReviewsInSynaptic] [idea 18729] what it looks like (screenshots or short videos) [idea 15774] what the current version number is [idea 13036] whether it’s installed right now [idea 19068] if it’s installed, how to launch it [idea 16216] if it’s not installed, how much there is to download, including dependencies [idea 4613] purchasing commercial software [idea 18538] download a package only once when installing it over a LAN [idea 19265] pausing if you need to use your bandwidth for something else [idea 16643] using PolicyKit to install/uninstall/etc, but not needing authorization to update package lists even applications you installed from a .deb or compiled yourself [idea 18408]
Joel wants to install Skype. He goes to skype.com, finds the "Download for Ubuntu" button, and clicks it. He doesn't know what a “package” is, let alone a “.deb” or a “repository”. Ladina works as a developer at a molecular biology lab where she is not a sysadmin. She is having a bit of trouble with Biopython, and wants an easy way of seeing which version of python-biopython is installed and where its files are.
djl (games only) Game Store (games only)
font search [idea 15333]
The Center needs to be able to tell whether a CD containing packages is: You should also be able to eject the CD from the navigation pane, just as you can eject a music CD from Rhythmbox’s side pane.
The Center needs to be able to display applications that handle a particular filetype, Nautilus then needs to be able to launch the Center to this search.
[foundations-lucid-software-center-history-of-packaging-transactions 1 of 1] Interface designers For version 2.0, we would like the Center to include a history of items installed, removed, updated, and otherwise changed since Ubuntu was installed. How should we present this? Present your ideas at SoftwareCenter/History.
This could also apply to other applications installed only for you. http://brainstorm.ubuntu.com/idea/6816/ Individual Windows apps offered through the Center itself could be packaged to support multi-user setup. Scott Ritchie's presentation at UDS-karmic shows how this can be done fairly simply, however it has to be done for Windows apps individually: http://yokozar.org/blog/archives/138
Maybe treat -dev packages specially?
Instead of an impossible installation causing an alert saying “Sorry, {title}” can’t be installed at the moment. Try again in a day or two.”, the task should show its error status inline in the “In Progress” section somehow, and sit there across Center launches until you retry it or cancel it. The “In Progress” arrows would need to stop spinning for cases like this, because nothing is actually happening.
Popularity measurements are skewed by default installs. [Idea #16411: Do not rate the popularity of default apps] How will we extract icons, human-friendly application names, summaries, categories, and screenshots for applications in PPAs and other third-party repositories, since they won't be covered by app-install-data? For applications that have both GTK and Qt versions ( To manage expectations, perhaps an application that uses a strange toolkit ( We need keyboard equivalents for the common functions. This might include key combos for various sections (
OpenPrinting: “To make installing printer drivers not provided by the Linux distributions easier for users, and to make providing printer drivers easier for the printer manufacturers, we have introduced a new concept of distribution-independent printer driver packages.” “Also a DONE: idea 19653: “Most users switching over from Windows associate "Add/Remove" only with removing software, and believe that new software needs to be purchased at a retailer ...” -- Covered by renaming from "Add/Remove" to "Ubuntu Software Center". Idea #19882: Problem With Restricted Software Installation Warning Idea #14025: Better distinction between installed/uninstalled apps in Add/Remove Applications “FooBar is not available for this version of Ubuntu, but it is available for version X.Y…” Smith Review Project: making package descriptions and debconf questions human-readable SummerOfUsability mockup design iterations by MonicaMaceli Provide an optional "Donate" button for projects that need donations to keep going. The button could open up the donate page on their website. Or if non-free (as in beer) software is sold through the software store then the money could go through the site ... (The need was talked about in FLOSS Weekly 86 - Ardour). Donate button in Software Store in Ubuntu Brainstorm. Drag installed applications to gnome-panel or other launchers. Add apt: URL syntaxes for: Software item screen in “Get Software”
“Installed Software” section
Software list view for “Installed Software”
Software item screen in “Installed Software” section
Individual software sources
e.g. “packages.example.org/ubuntu/”. (We don’t use the Label: here because we don’t trust third-party repositories as much as we trust PPAs.) If there are multiple sources of this type, they should be sorted alphabetically. Software list view for individual software sources
“In Progress” section
Status bar
Determining software item information
Icon
Title
Summary
Genre
subsections listed above, then: License label
Handling a broken apt cache
Handling an externally-changed apt cache
Copying a Web link for a package
Installing software
In future versions of the Center, progress will also be shown within the software screen itself, eliminating the need to switch to the “In Progress” section.
The alert should have the primary text “Sorry, {title} can’t be installed at the moment. Try again in a day or two.”, and a secondary “Details” expander control that reveals a text frame containing the dpkg error. It should have an “OK” button which is the default.
The alert should have the primary text ‘The installer for “{title}” wants to change a configuration file already on this computer.”, and the secondary text “If you do not know why this file is there already, it is usually safest to allow the change.” followed by “File: {path}” in a paragraph by itself. It should have buttons “Keep Existing Version” and “Allow Change”, where “Allow Change” is the default.
Removing software
In future versions of the Center, progress will also be shown within the package screen itself, eliminating the need to switch to the “In Progress” section.
Help
About window
Features currently scheduled
Reviewing software
Submitting reviews
Do we need to include a menu for specifying the language you’re posting in, or can we just rely on the environment language? Reading reviews
Reporting reviews
Custom package lists
not including any “Not found” items).
Future work: Consider whether it makes sense to use custom lists within “Installed Software”, or within individual software sources. Launching and navigating from apt: links
apt:package-name
being installed), the “Get Software” item screen for the package. Test case: Follow the link apt:python-wxtools; it should show the item screen for “Get Software” > “Tech Stuff” > “python-wxtools”. apt:package-name?minver=1.0
apt:package1,package2,…
apt:package-name?section=multiverse
being installed): apt:package-name?channel=lucid-partner
Replacing apturl
Features you can implement
Minimum pane sizes
Auto-sizing the navigation pane
Smarter ellipsis of software list view items
Copying software list view items to the clipboard
Copying software item text to the clipboard
Add-on packages
X Recommends A
X Suggests A Date installed
Cancel bar in “In Progress” screen
More informative text for waiting tasks
Copying a Web link for an “In Progress” package
“Where Is It?” button
e.g. “Applications”) in which the application resides Animation of the main pane
Roadmap
October 2009
i.e. use of PolicyKit instead of gksudo). April 2010
October 2010
April 2011
etc). Eventual scope
e.g. “wireframe” → Dia) User stories
Similar efforts
Yet-to-be-specified features
Launching via inserting an Ubuntu CD
Launching via .deb package (replacing gdebi)
Launching via file of unknown type
History section
Subcategories
Wine integration
License information
Developer tools
Eliminating the “{title} can’t be installed at the moment” alert
Unresolved issues
e.g. GDebi, Jockey, Qalculate), we should display the GTK+ version more prominently than the Qt version. Unsorted ideas
permalink on the description page, would be pretty nice. You want to suggest a package to someone? You just have to copy paste the (apt url) application link into your IM or blog post.” [Stefano Forenza]
SoftwareCenter (last edited 2019-04-28 16:57:10 by mpt)