Revision 26 as of 2019-03-01 14:59:18

Clear message

This is a living specification for how Debian-style software channels and update settings should be configured in Ubuntu. Your help to implement any of this is welcome.

System Settings should have a “Software & Updates” panel — or, on a Snap-based system, “Legacy Software Settings” panel — with tabs for “Software Channels”, “Updates”, and “Additional Drivers”. Alternatively it may be a separate app, in which case launching it when it is already running should focus the existing instance (bug 1402298).

“Software Channels”


The scrolling list should contain three sections: “Official channels”, “Other channels”, and “Authentication keys”.

The “Official channels” header should have a radio menu for choosing the download server. If mirrorbrainz has been implemented yet, the menu should begin with a “Fastest detected server” item (the default), then a separator. Regardless, the menu should then have a “Main server” item, an item for whatever custom server you have chosen (if any), a separator, and an “Other…” item which opens the dialog for choosing a different server.

The “–” and “Edit…” buttons should be disabled whenever no list item is selected, or whenever one of the “Official channels” is selected (since you can’t edit/remove those).

Adding a channel or authentication keys


Choosing “+” should open the “Add Software Channel/Key” dialog.

The dependent controls for each radio button should be disabled when the radio button is not chosen.

“Add” should be disabled whenever:

  • “Install software from a CD/DVD/volume” is chosen, but the menu’s value is “None detected”; or
  • “Add APT source” is chosen, but the text field’s value is not a valid APT line; or
  • “Add an authentication key file” is chosen, but no valid key file has been chosen.

Removing a channel


If you choose to remove a channel, and no software is installed from that channel (bug 1091228), the channel should be removed immediately.

If any software is installed from that channel, a “Remove Channel” alert should appear (bug 625628), with primary text ‘This computer has software installed from “{Display Name of Channel}”. Do you want to remove that software too?’ This should be followed by a list of the installed items, each with a menu containing “Leave installed” (the default), “Downgrade” (only if this is possible), and “Remove”.

If the list contains more than one item, it should be preceded by a “For all items:” menu that contains the same options. Whenever the individual menus are set to multiple choices, the “For all items:” menu should begin with, and be set to, a temporary “—” item. And conversely, if you change the “For all items:” menu from “—” to any of the other choices, the individual menus should change to echo that choice.



The Updates tab is described in detail at SoftwareUpdates. (If there is any difference between this sketch and that one, believe that one.)

“Additional Drivers”

The “Additional Drivers” tab should begin with a listbox containing a progress bar (bug 1466479) and the text “Searching for available drivers…” until the search is complete.



Once the search is complete, the listbox should list each device for which proprietary drivers could be installed — for example, “Graphics card: ATI Radeon HD 6210” or “Printer: Canon XFI-2400”.

Each device in the list should have an indicator light: green if the driver tested with that Ubuntu release is being used, yellow if any other driver is being used, or red if no driver is being used. Below the device name should be a caption reflecting this state: “This device is using the recommended driver.”, “This device is using a manually-installed driver.”, “This device is using an alternative driver.”, or “This device is not working.”.

The following radio buttons should be, in order, of this form:

  • “Use {driver name} ({license type}, tested)” (for example, “Use Nvidia driver v165 (proprietary, tested)”)
  • “Use {driver name} ({license type})”
  • “Continue using {driver name} (manually installed)”
  • “Do not use the device”

If a manually-installed driver is being used, so that it is not possible to switch to any of the other drivers for that device, the radio buttons and labels for those other drivers should be insensitive.

Whenever no drivers are being installed or removed, or waiting for a restart, below the leading side of the listbox should be text of the form “No proprietary drivers in use” or “1 proprietary driver in use”, and at the trailing side “Revert” and “Apply Changes” buttons. Both buttons should be sensitive only if you have made no changes.


If you choose “Apply Changes”:

  1. If you are choosing to install any drivers that have end user license agreements, a dialog should appear sequentially for each, with the name of the driver as its title, the EULA in a scrolling text field, the text “Do you accept the license agreement?”, and “Decline” and “Accept” buttons (fixing bug 271288).

  2. The “proprietary drivers in use” text should change to the status text for the operations (for example, “Waiting for other tasks to complete…”, or “Downloaded 716 KB of 2.4 MB”) (bug 1076832), and the buttons should change to a progress bar and a “Cancel” button (insensitive once it’s too late to cancel).

  3. The driver should be installed or removed, as appropriate, without separate progress UI.

  4. Once installation or removal is finished, the text and buttons should revert to their normal state (except as specified below).
  5. If the changes required a restart, the “Software & Updates” panel is still open, and the “Additional Drivers” tab is still frontmost, the System Settings window should request attention.

  6. If the changes required a restart, but you have since navigated away from the “Additional Drivers” tab or closed System Settings altogether, a parent-less alert box should appear with the title “Additional Drivers”, the “Software & Updates” icon, the text “ Warning /!\ You need to restart the computer to complete the driver changes.”, and “Restart Later” and “Restart Now” buttons (fixing bug 306708).

If there are changes waiting for a restart to complete, even if you close and reopen System Settings:

  • The text below the leading side of the listbox should be “Restart the computer to complete these changes.”
  • There should be an extra “Restart…” button before the “Revert” button (fixing bug 739242). (“Restart…” should open the standard Restart dialog.)

At the bottom of the tab should be this small print (fixing bug 660669): “Proprietary drivers have private code that Ubuntu developers can’t review or improve. Security and other updates are dependent on the driver vendor.”

Prompting to install additional drivers


Ubuntu should not try to use an indicator menu or notification bubble to prompt about hardware drivers (fixing bug 617392).

Instead it should open an alert box, to suggest that you install proprietary drivers, whenever all of these are true:

  • There are any devices for which proprietary drivers could be installed but currently are not.
  • Software Updater is not open.

  • You have never previously responded “Not Interested” or “Choose…” to the prompt.
  • You have not chosen “Ask Me Later” to the prompt in the past week.

“Choose…” should open System Settings to the “Additional Drivers” tab of the “Software & Updates” panel.