IntrepidSystemPreferences

Summary

We need a mechanism to write some desktop preferences system-wide.

Release Note

To be done when "Beta available" is hit.

Rationale

After Ubuntu is installed we do not have a easy way to change some system default settings (like the used http proxy).

Use Cases

1. Bob gets a new provider and needs to switch his http proxy. Because the machine is used by his wife and kids too he wants to have a way to set it globally.

Design

A new backend service based on dbus and policykit will be added so that admin users may change certain settings systemwide. These include:

  • http proxy - added to to gnome-control-centers gnome-network-preferences.
  • default language - added to language-selector
  • default keyboard - added to gnome-keyboard-properties or language-selector

Targets of opportunity:

  • power settings - added to gnome-power-manager
  • system-wide-application settings - ?
  • display-settings - xkit ?

The backend needs to be written in a way that it can be easily reused (e.g. by kubuntu). Code is added language-selector and gnome-control-center to make use of the new functionality. The code in gnome-control-center should be sent upstream if possible.

In addition to that, the proxy settings should be propagated to the systemwide /system/proxy via the systemwide defaults gconf mechanism.

Why not use libproxy? http://code.google.com/p/libproxy/

UI Changes

When a UI for this is discussed we need to consider that there are the following states:

  • user has no settings
  • user has personal settings
  • system has no settings
  • system has system-wide settings

The following UI mockups are available:

Minimal changes to the existing capplet:

 [ ] Use system default [Set]
 [ ] Direct connection
 [ ] Personal settings
  ...
 [ ] Automatic config

Redesign with a combo box instead of the radio buttons:

 Top Combo box with [ System defauls | Direct connection | Personal settings ]
     ... Proxy settings ...
   [Make system default]

Test/Demo Plan

To be written once some code is available.

BoF agenda and discussion

Admin wants to set their personal settings for something as the system default
- $LANG: language-selector sets it system-wide, gdm sets it per-user
- proxy:
  * d-i asks for proxy, that's ok
  * proxy setting in ubiquity is hard to find, that needs to become more obvious and shown by default

Example of settings:
- language
- keyboard
- proxy
- power settings (e.g. suspend/resume on lid close)
- system wide applications (?)
- display settings (?) - write to gconf system default layer and make
                         gdm read/use that 

A framework similar to system-tools-backends should be used, i.e. a dbus
based backend that uses policykit and then writes the settings.

Things we need to worry about:
- settings on install
- setting changes on a installed system
- migration of existing systems/configurations
- how to present personal vs. system-wide in the graphical tools
  * "Settings for:"
   * "Everyone on this computer"
   * "Everyone without personal settings"
   * "Me"
  * or "Apply to Everyone..." button (asks for password)
  * cf. "When no-one is logged in..." in <https://wiki.ubuntu.com/DesktopTeam/Specs/ExitStrategy>
- desktop environment agnosticism

Tools should write system-wide settings to the same place as Ubiquity does


CategorySpec

IntrepidSystemPreferences (last edited 2008-08-20 18:23:54 by 74-93-194-82-WashingtonDC)