Comment 324 for bug 263435

Revision history for this message
In , Markhkamp (markhkamp) wrote :

(In reply to comment #312)
(It didn't post the whole comment, so I'm adding the rest here)

Here's a rough description of how it would work.

First, break keys down into "tiers" of importance:

Tier 0: An extremely limited set of combos (such as Ctrl+Alt+Del) and combos involving certain laptop-specific keys (such as the "ThinkVantage" key on ThinkPads)
Tier 1: Meta ("Windows key") and Scroll/Caps/Num Lock
Tier 2: Alt and the Fn keys
Tier 3: Ctrl, Tab, and Esc
Untiered: Shift and all visible characters

A combo's tier would be the same as it's highest-tiered modifier, so Alt+Ctrl+Shift+Tab would be a Tier 2 combo.

Each software layer would be given a tier level of key combo access, such as this:
Tier 0: hard-coded in the OS kernel, BIOS, etc
Tier 1: the OS, window manager, etc.
Tier 2: Tier 1 + everything that runs directly as a program
Tier 3: Tier 2 + everything that runs within another program (browser plugins, Google Desktop widgets, etc)
Untiered: everything

Currently, everything can use less privileged tier levels and can even share its higher-level privileges with stuff that run inside of it, but it shouldn't, since that's how this problem started in the first place.

What things should do is strictly use only combos of their own tier level, trying to avoid using lower-tier modifiers. If something wants to use a lower-tier combo, it should probably make an object with lower privileges to handle it. If this were already implemented, you'd be using Meta+Tab for switching windows, Alt+Tab for switching tabs, and Ctrl+Tab would be available for Flash, etc.

As a practical concession, you would still be able to use higher-tiered combos in low-tiered objects by combining modifiers. For example, if a Flash applet wanted to use F1, you'd press Alt+Ctrl+F1.

The organization of keys into tiers almost certainly needs a *lot* of refinement, as does the support of pre-standardization programs/applets, the categorization of global combos with local impact (Ctrl+V pastes from the global clipboard to the local location). However, once implemented, universal combo standards would completely solve this entire category of problems while also making it very clear to users what privileges the combo has.