HardyDesktopEffectsShortcuts

Please check the status of this specification in Launchpad before editing it. If it is Approved, contact the Assignee or another knowledgeable person before making changes.

Summary

Improving the integration of compiz into the GNOME-desktop needs trimming down the keyboard-shortcuts to sane defaults, making them map 1:1 to metacity's default keyboard-shortcuts and make keyboard-shortcuts for additional compiz-functionality easily discoverable without the user being required to skim the web for documentation about these additional keyboard-shortcuts.

Release Note

When using compiz/"Visual Effects" users can expect every major keyboard-shortcut they know from metacity to trigger the same funtion under compiz. Additional features of compiz not available in metacity are exposed as shortcut-hints in menus or tooltips where appropriate.

Rationale

Switching a central part like the window-manager should not force the user to relearn common keyboard-shortcuts.

Use Cases

  • Kim used to run Ubuntu 6.06 LTS and recently upgraded to Ubuntu 8.04 LTS. Her machine is capable of running "Visual Effects", which are enabled by default upon first login after the upgrade. Although compiz is running now as her default window-manager she expects the keyboard-shortcuts to work as before. The only change she should recognize is that everything now elegantly animates and looks slicker.

Assumptions

The default "compiz modifier" will be the Super-key. This is meant to be the modifier for triggering functions specific to compiz (e.g. expo, scale). That is meant to avoid mapping conflicts with shortcuts used in applications. The use of shortcuts used by compiz needs to be consistent across all compiz core-features and plugins.

Design

Default keyboard-shortcuts that need to be taken care of (metacity-functionality):

  • switch to next workspace (expose as shortcut in window-menu)
  • switch to prev workspace (expose as shortcut in window-menu)
  • switch to 1st, 2nd, 3rd... workspace (expose as shortcut in window-menu)
  • trigger move window (expose as shortcut in window-menu)
  • trigger resize window (expose as shortcut in window-menu)
  • trigger close window (expose as shortcut in window-menu)
  • switch to next window (on current viewport)
  • switch to previous window (on current viewport)
  • switch to next window (on all viewport)
  • switch to previous window (on all viewport)
  • minimize current window (expose as shortcut in window-menu)
  • maximize current window (expose as shortcut in window-menu)
  • shade current window
  • move window to next workspace
  • move window to previous workspace
  • move window as is (Alt-LMB drag)
  • resize window as is (Alt-MMB drag)

Default keyboard-shortcuts that need to be taken care of (additional compiz-functionality):

  • trigger/exit expo (expose as shortcut in tooltip of workspace-switcher, when compiz-specific modifier is held down)
  • trigger/exit zoom (expose as shortcut in tooltip of workspace-switcher, when compiz-specific modifier is held down)
  • trigger/exit scale (expose as shortcut in tooltip of workspace-switcher, when compiz-specific modifier is held down)

Implementation

UI Changes

gnome-keyboard-properties has to expose all default keyboard-shortcuts used by compiz. A XML-file is used for populating the list of keyboard-shortcuts in gnome-keyboard-properties.

Shortcut-hints (metacity-functionality) have to be added in a window-menu rendered by the decoration plugin.

Shortcut-hints (compiz-functionality) have to be added as tooltips in workspace-switcher applet.

Migration

The compiz-shortcuts need to be protected from a possible purge of metacity-shortcuts in gconf.

Test/Demo Plan

It's important that we are able to test new features, and demonstrate them to users. Use this section to describe a short plan that anybody can follow that demonstrates the feature is working. This can then be used during CD testing, and to show off after release.

This need not be added or completed until the specification is nearing beta.

Outstanding Issues

Discussion

why not map all the effects to the windows key. It makes remembering the combinations easy... seing that we're mostly dealing with manipulating windows. Most keyboards come with this key. For ones that don't, an alternate combination can be used [ctrl+alt]. The point is to keep this base key(s) consistent for compiz. Here is the mappings I care about ([W*] = windows key) and that I'm currently using:

  • [W*] + [left]: move to left viewport
  • [W*] + [right]: move to right viewport
  • [W*] + [down]: move to lower viewport
  • [W*] + [up]: move to upper viewport
  • [W*] + [E]: show wall
  • [W*] + [tab]: alternate tab switcher
  • [W*] + [F9]: expose like show all windows from all viewports
  • [W*] + [F10]: expose like show all windows from this viewport
  • [W*] + [F11]: expose like show all windows from current app
  • [W*] + [F12]: show desktop
  • [W*] + [R]: zoom to current app (I would actually like this to be zoom to current app + lock. Second time to zoom to 100% and unlock)
  • [W*] + [L]: lock to current zoom
  • [W*] + [1]: zoom level 1: 100%
  • [W*] + [2]: zoom level 2: 120%
  • [W*] + [3]: zoom level 3: 150%
  • [W*] + [-]: minimize
  • [W*] + [+]: maximize


CategorySpec

DesktopTeam/Specs/HardyDesktopEffectsShortcuts (last edited 2008-08-06 16:14:28 by localhost)