Features/GnomeShellConfigurability

= Feature Name = Gnome Shell Configurability

Summary
There is a lot of low hanging fruit that Fedora could provide over the upstream Gnome Shell, which would help new users and entice disillusioned ones (from unity). I'm proposing a judicious integration of some existing optional fedora components, to cater for a wider array of user preferences.

Owner

 * Name: Pádraig Brady


 * Email: pbrady@redhat.com

Current status

 * Targeted release: [Fedora 17]
 * Last updated: Nov 10 2011
 * Percentage of completion: 0%

Detailed Description
With a few well chosen options and extensions to Gnome Shell, Fedora could be much more accessible to new and old users alike. I realise that providing options is often a cop out, and a sign of misdesigned or incomplete software. However it's a bit different with direct user interaction software like this, where the options reflect the diverse preferences and experiences of the user base.

Perhaps we might change a couple of upstream defaults too to help transitioning users, and I could mention my personal set of changes that I need to make, but the main thing is to provide the options to the users.

As a very concrete example of this see the Linux Mint Gnome3 transition strategy. They note there, some extensions they've developed and options presented to the user. They also note the large uptake of their Gnome2 based distro from annoyed unity users.

Benefit to Fedora
Low hanging fruit to get more users

Scope
This will basically be a collation of existing components already available. gnome-tweak-tool covers most settings. Perhaps we could make available some of the Linux Mint extensions and settings linked to above. Other extensions that overlap with the linux mint ones are: http://intgat.tigress.co.uk/rmy/extensions/index.html Also there are the existing http://pkgs.fedoraproject.org/gitweb/?p=gnome-shell-extensions.git packages which I've grouped into 'settings', 'compat gui changes' and 'miscellaneous' below. I would consider most of the first and second groups under consideration here. Note to give an indication of the lack of integration of these extensions currently, the ['alternate-tab' package doesn't work] in Fedora 16 currently.

$ yum search gnome-shell-extension

gnome-shell-extension-alternate-tab.noarch : Classic Alt+Tab behavior. Window based instead of app based gnome-shell-extension-alternative-status-menu.noarch : For those who want a power off item visible at all the time gnome-shell-extension-workspace-indicator.noarch : Workspace Indicator gnome-shell-extension-native-window-placement.noarch : Arrange windows in overview in a more native way gnome-shell-extension-noim.noarch : A gnome-shell extension for removing the name and the IM status gnome-shell-extension-noripple.noarch : A gnome-shell extension to disable hot corner ripple effects gnome-shell-extension-remove-accessibility-icon.noarch : A gnome-shell extensions for removing the accessibility icon gnome-shell-extension-remove-bluetooth-icon.noarch : A gnome-shell extension for removing the bluetooth icon gnome-shell-extension-remove-volume-icon.noarch : A gnome-shell extension for removing the volume icon

gnome-shell-extension-workspacesmenu.noarch : A gnome-shell extension for fast switching work spaces gnome-shell-extension-apps-menu.noarch : Application menu for GNOME Shell gnome-shell-extension-dock.noarch : Shows a dock-style task switcher permanently gnome-shell-extension-drive-menu.noarch : Disk device manager in the system status area gnome-shell-extension-places-menu.noarch : Places menu indicator in the system status area

gnome-shell-extension-theme-selector.noarch : Gnome shell user theme selector gnome-shell-extension-user-theme.noarch : Lets the user select a custom theme for the shell gnome-shell-extension-windowsNavigator.noarch : Keyboard selection of windows and work-spaces in overlay mode gnome-shell-extension-auto-move-windows.noarch : Assign specific workspaces to applications gnome-shell-extension-common.noarch : Files common to GNOME Shell Extensions gnome-shell-extension-cpu-temperature.noarch : A gnome-shell extension to show the current temperature of CPU gnome-shell-extension-gpaste.noarch : GNOME Shell extension for GPaste gnome-shell-extension-icon-manager.noarch : A gnome-shell extension to manage icons in top bar gnome-shell-extension-mediaplayers.noarch : A gnome-shell extension to control mediaplayers gnome-shell-extension-pidgin.x86_64 : The components necessary to integrate Pidgin with GNOME Shell gnome-shell-extension-pomodoro.noarch : A gnome-shell extension for the pomodoro technique gnome-shell-extension-presentation-mode.noarch : A gnome-shell extension to control the screen saver gnome-shell-extension-systemMonitor.noarch : Monitor your system status gnome-shell-extension-xrandr-indicator.noarch : Monitor status indicator gnome-shell-extension-righthotcorner.noarch : A gnome-shell extension for an additional hot corner

Personally I would only change a couple of window management options, but to cover all bases we would need a way for users to easily select/enable the above extensions and options to make available and ideally integrate into the gnome-shell config settings proper.

Note also that we might change a couple of the defaults from upstream gnome shell too. For example there weren't complaints when nautilus switched back from spatial mode by default (I know that was an upstream change, but Fedora could have done the sensible thing anyway).

How To Test
This change will apply to all hardware now, given Features/Gnome_shell_software_rendering, and apply to the default desktop build. It will require users to interactively select all the new options and verify that they work correctly. Given the disparate set of options used by each person, and the direct user iteraction changes of the feature, it's hoped that testing of various combinations will happen "for free" as the system is being developed.

User Experience
Most users should have their pet gnome-shell peeve addressed by this feature. Ideally the options and extensions would be grouped into additional setting panel items

Dependencies
gnome-tweak-tool and external gnome-shell extensions

Contingency Plan
At least install gnome-tweak-tool by default and make it easily started with an "extra settings" config setting panel item

Documentation
I see minimal documentation required, as we can rely on the names and tips provided by each setting, and experimentation by the user. This approach is used by the existing gnome shell settings. Actually I notice that the existing gnome-shell settings are documented independently in help, but there is no link between the settings dialog and the help. That's a separate issue that could be fixed upstream. In light of that we might augment the help with any options/extensions we provide.

Release Notes

 * Better Gnome Shell integration, to cater for new and old users alike

Comments and Discussion

 * See Talk:Features/GnomeShellConfigurability