KeyboardMenu
|
Size: 12435
Comment: new use case numbering scheme proposed by Michael Forrest
|
Size: 12299
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.
Contents
- Definition
-
Use cases
- 1. User sees the current keyboard layout or input method
- 2. User visually changes current keyboard layout or input method
- 3. User specifies which keyboard layouts they want to switch between
- 4. User specifies which input methods they want to switch between
- 5. User switches the keyboard menu on or off
- Icons for layouts and input methods
- Unresolved issues
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.
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.
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.
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.
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.
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.
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)