KeyboardMenu

Differences between revisions 9 and 10
Revision 9 as of 2010-06-16 09:44:59
Size: 12435
Editor: eth0
Comment: new use case numbering scheme proposed by Michael Forrest
Revision 10 as of 2010-08-05 10:13:20
Size: 12299
Editor: eth0
Comment:
Deletions are marked like this. Additions are marked like this.
Line 197: Line 197:
 * For each input method, Ubuntu should use a symbolic icon based on the icon IBus currently provides for that input method.
  * We should start by converting the bitmap icons to pixelated vector icons. Then we can invite people to redraw them as scalable vector icons.
 * For each keyboard layout, Ubuntu should use a symbol containing two letters from the layout name:
  * If the name is only a country name, the ISO two-letter code for that country.
  * Otherwise, the initials of whichever words — or the first two letters of whichever word — gives a unique result within the selected layouts.

(This algorithm needs experimental work from a designer and programmer working together.)
For each input method, Ubuntu should use a symbolic icon based on the icon IBus currently provides for that input method. (We could start by converting the bitmap icons to pixelated vector icons. Then we can invite people to redraw them as scalable vector icons.)

For each keyboard layout, Ubuntu should use a symbol containing two letters from the layout name. If multiple selected layouts then have the same two letters, the letters for each of them except the first should be followed by a subscript number, ''e.g.'' “US”, “US,,2,,”, “US,,3,,”.

We will introduce a keyboard status menu, which lets you switch between chosen keyboard layouts and input methods, and displays the current layout or method in its title. Initially, we’ll implement this in indicator-applet.

Definition

The problem

Currently:

  • Screen access to the keyboard layout uses a panel applet, and we’re migrating away from panel applets.
  • Screen access to the keyboard input method uses a panel applet, and ditto.
  • Keyboard layout is not sensibly integrated with input method. It’s as if they’re developed by completely separate teams, or something crazy like that.

Objectives

User objectives:

  • Provide a quick and convenient way for people to:
    • see what keyboard layout they are using
    • see what input method they are using
    • switch layout and/or input method.
  • Make it obvious how to:
    • Change keyboard layout and input method settings.

Technical objectives:

  • Stop using a standalone panel applet or notification area item for these tasks.
  • Be responsive and reliable.

Approaches we considered

  • One possibility was to combine keyboard layout selection with other hardware-related items, such as Bluetooth, in a single “device” menu. This would centralize hardware-related information, and reduce the number of menus in the panel (as opposed to a separate keyboard menu). However, with a menu title that represented the device, it would not satisfy the objective of letting people see at a glance what keyboard layout or input method they are currently using. Conversely, if we used the icon for the current keyboard layout or input method as the title of a device menu, it would not be discoverable (and would be odd, even when discovered) that the menu contained mostly-non-keyboard-related items. We could conceivably get around this by using both a generic “device” icon and the selected layout/method icon, alongside each other as a combined title. But that would not reduce the number of visual elements in the panel (just squish them together), and it would make both keyboard-related and non-keyboard-related tasks harder to locate inside the menu.
  • Another possibility was to move keyboard layout selection into the existing input method floating window. However, many people who switch layouts do not also need to switch IMs, so this would be bothering them with a floating window when they would otherwise not need one.
  • We have therefore chosen a third option, combining keyboard layout selection and input method selection into a single menu. This will not add much clutter to the panel, because the menu will not be present by default; it will be used mainly by people who use multiple layouts or input methods.

See also the Gnome Shell design and Jon McCann’s research.

User story

Shi-Lin is writing a research paper comparing various methods of modulating acetyl-integrin polykinase. She is writing in Simplified Chinese script using an input method, but very often — every minute or so — she has to switch to an English keyboard layout to type a chemical formula or to cite a paper by American or European scientists. To begin with, Shi-Lin used the keyboard menu to switch between US layout and Chinese input. Now she has learned to use the keyboard equivalent to switch layouts instead. But when she is interrupted (usually by an undergraduate or one of her colleagues), returning to the computer she refers to the menu title to remind her what mode the keyboard is in.

Roadmap

Item

Maverick

Nifty

Unscheduled

Basic keyboard menu

Merge “Keyboard Preferences” and “IBus Preferences”

Redesign the “Layouts” tab in “Keyboard Preferences”

Merge “Keyboard Preferences” and “IBus Settings” into a single, redesigned, “Keyboard Settings” window, so that there’s a single place for configuring keyboard input (and a single checkbox for showing/hiding the menu)

Add a “Where?” button next to the “Show keyboard menu in the menu bar” checkbox, that draws your attention to where the menu is or would be

Use cases

1. User sees the current keyboard layout or input method

  • Level: User goal

  • Actors: User, Ubuntu

  • Trigger: User doesn’t know, or has forgotten, what layout or input method the computer is set to.

  • Preconditions: The keyboard menu is turned on.

  • Success end condition: The user knows what keyboard layout or input method they’re using.

  • Target: Ubuntu 10.10

1.1 User looks at the panel and sees an icon representing the current keyboard layout or input method.

  • Wireframe

    Mockup

    Implementation

2. User visually changes current keyboard layout or input method

  • Level: User goal

  • Actors: User, Ubuntu

  • Trigger: User wants to type something using a different language or script.

  • Preconditions: The keyboard menu is turned on.

  • Success condition: The keyboard layout or input method is changed.

  • Target: Ubuntu 10.10

2.1 User opens the menu.

2.2 Ubuntu displays the selected keyboard layouts and input methods in the menu, with the current selection specially marked.

  • Wireframe

    Mockup

    Implementation

2.3 User selects a layout or input method.

2.4 Ubuntu closes the menu.

2.5 Ubuntu changes the layout or input method.

2.6 Ubuntu changes the menu title to reflect the new selection.

Implementation: Choosing an input method turns on the IBus daemon if it was not on already. Switching from an input method to a keyboard layout turns off the input method.

3. User specifies which keyboard layouts they want to switch between

  • Level: User goal

  • Actors: User, Ubuntu

  • Trigger: User wants to start using a language they haven’t been using before on this computer, or stop using one they’d added by mistake.

  • Preconditions: The keyboard menu is turned on.

  • Success condition: Keyboard layouts are set how the user wants them.

  • Target: Ubuntu 10.10

3.1 User opens the menu.

3.2 Ubuntu displays the menu, including a “Keyboard Settings…” item.

3.3 User selects the “Keyboard Settings…” item.

3.4 Ubuntu opens the “Keyboard Settings” window to the “Layouts” tab.

  • Wireframe

    Mockup

    Implementation

3.5 User performs some combination of adding and/or removing layouts. The icon for each layout matches its icon shown in the menu.

3.6 Ubuntu updates the contents of the menu immediately to reflect the changes.

3.7 User closes the window.

3.1.a. Variation: The menu is not turned on

  • Preconditions: The keyboard menu is not turned on.

3.1.a.1 User opens “System” > “Preferences” > “Keyboard”.

return to 3.4

4. User specifies which input methods they want to switch between

  • Level: User goal

  • Actors: User, Ubuntu

  • Trigger: User wants to start using an input method they haven’t been using before on this computer, or stop using one they’d added by mistake.

  • Preconditions: The keyboard menu is turned on.

  • Success end condition: Keyboard input methods are set how the user wants them.

  • Target: Ubuntu 10.10

4.1 User opens the menu.

4.2 Ubuntu displays the menu, including an “Input Method Settings…” item.

4.3 User selects the “Input Method Settings…” item.

4.4 Ubuntu opens the “IBus Preferences” window to the “Input Method” tab.

  • Wireframe

    Mockup

    Implementation

4.5 User performs some combination of adding and/or removing input methods.

4.6 User closes the window.

4.1.a. Variation: The menu is not turned on

  • Preconditions: The keyboard menu is not turned on.

4.1.a.1 User opens “System” > “Preferences” > “IBus Preferences”.

return to 4.4

5. User switches the keyboard menu on or off

  • Level: Subfunction

  • Actors: User, Ubuntu

  • Trigger: User wants to start using multiple languages/scripts, or finds the keyboard menu unnecessary and wants to hide it.

  • Preconditions: None.

  • Success end condition: The presence or absence of the menu, and choice of keyboard combos, is exactly how the user wants it.

  • Target: Ubuntu 10.10

5.1 User opens “System” > “Preferences” > “Keyboard”, or chooses “Keyboard Settings…” from the keyboard menu.

5.2 Ubuntu opens the “Keyboard Preferences” window to display the layout and input method settings.

  • Wireframe

    Mockup

    Implementation

5.3 User checks or unchecks “Show keyboard menu in the menu bar”.

5.4 Ubuntu instantly shows or hides the keyboard menu.

5.5 User closes the “Keyboard Preferences” window.

5.1.a. Variation: Using the “IBus Preferences” window

  • Preconditions: None.

5.1.a.1 User chooses “System” > “Preferences” > “IBus Preferences” (or equivalent).

5.1.a.2 Ubuntu opens the “IBus Preferences” window.

  • Wireframe

    Mockup

    Implementation

5.1.a.3 User checks or unchecks “Show keyboard menu in the menu bar”.

return to 5.4

Icons for layouts and input methods

For each input method, Ubuntu should use a symbolic icon based on the icon IBus currently provides for that input method. (We could start by converting the bitmap icons to pixelated vector icons. Then we can invite people to redraw them as scalable vector icons.)

For each keyboard layout, Ubuntu should use a symbol containing two letters from the layout name. If multiple selected layouts then have the same two letters, the letters for each of them except the first should be followed by a subscript number, e.g. “US”, “US2”, “US3”.

Unresolved issues

Question

Answer

Answered by (thanks!)

How often do people use multiple input methods for a single language?

Seldom. Usually users have a preferred input method for their language and stick with it. For Chinese, it may be occasionally required to switch from a phonetic to a component based IM, if for example the pronunciation for a specific character is unknown to the user, but the user knows how the character looks like.

Arne

How often do people use multiple keyboard layouts for a single language?

Seldom. Usually users have a preferred layout and type the language with that. For non-native speakers, it may occasionally be useful to switch from a phonetic (transliteration) to a component based (letters and diacritics) layout (i.e. for Indic languages) if they don't know how a specific transliteration is used.

Arne

How feasible is merging “Keyboard Preferences” and “IBus Preferences”? Would it require writing the interface from scratch? If so, should we fix other design details at the same time?

What is the benefit of “Use custom font” in IBus Preferences?

This setting refers to the font used in the word candidate chooser window, which pops up once you type something using the IM mode. For CJK characters users may want to use a bigger font size than 10 pt. (16 pt. is common for that) in order to be able to distinguish complex characters with many strokes easier. Also, users may want to use a specific font for that.

Arne

What does “Use system keyboard layout” do in IBus Preferences?

It remaps input methods to match (some) non-US-English keyboard layouts.

Arne

KeyboardMenu (last edited 2010-10-22 15:55:08 by host194)