##(see the SpecSpec for an explanation) * '''Launchpad Entry''': UbuntuSpec:intrepid-desktop-systemprefs * '''Packages affected''': gnome-control-center == 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 - desktop environment agnosticism Tools should write system-wide settings to the same place as Ubiquity does }}} ---- CategorySpec