The Anaconda of Today
- It’s not translated. If I don’t speak English and/or if I don’t know the name of my native tongue in English, it may require varying degrees of cleverness for me to locate my language here.
- It unnecessarily limits the OS language. This list only makes available the languages that Anaconda’s UI itself is available in. The Fedora UI has available translations in more languages than that set. (GNOME has Lithuanian, Irish, and Belarusian available, for example. KDE has Uzbek, Kurdish, and Kashubian.) However, this is the only language selection dialog in Anaconda, so even if a Fedora translation for your language exists, if it doesn’t have an Anaconda translation, you’re not installing it here!
- It could offer better filtering. While Anaconda’s manually-maintained lang table ties together some useful information across the languages (a default locale, keyboard layout, etc.), at least for keyboard layout selection, it could be a bit smarter providing not only a sane default, but also ‘adjacent’ alternatives that are more likely than most of the others. These are long lists where only a fraction of the data in the list is relevant to the user. If I choose English as my installation language, and I’m (for example) in the U.K., there’s an annoying amount of difference between the two keyboards, yet as you can see in the screenshots above, the Ukranian layout is between the default and the (likely) more relevant U.K. layout. That the U.K. layout is near the U.S. one is sadly a coincidence based on the first few letters of each country’s name (thankfully we’re both united!) Maybe these kinds of smarts are infeasible / difficult-to-maintain, but even a less-intelligent simple list filter widget could go a long way here.
Today’s Discussion: Keyboard Layout
Today in #anaconda, Chris mentioned that users have requested the ability to test out the keyboard layout for a long time. The current ‘Layouts’ tab in the GNOME 3 control center’s ‘Region and Languages’ screen does functionality in it that will light up the keys on a diagram of your chosen layout as you type on the keyboard physically in front of you:
I do see a couple of issues with using it to solve the user goal of testing out their keyboard layout in Anaconda:
- Questionable real estate availability: Keyboard layouts are large and complex. Anaconda may likely be running in a reduced-quality / low resolution graphics mode (depending), within a virtual machine window on a larger desktop, within a live desktop, or otherwise in an environment where the screen real estate available isn’t all that great for the likes of a complex diagram. On my 1400×1050 laptop, it’s pretty difficult to read the key labels on the diagrams at the default window size GNOME’s control center uses for it.
- Too ninja-like: It’s not a very obvious kind of widget. Apparently I’d encountered this widget a number of times (it existed pre-GNOME 3 or so I have been told) without realizing that it responded to keyboard input. It looks like a diagram that you might see in PDF files, which aren’t typically interactive. I feel it doesn’t really compel you to type and try it out.
Both Chris and Elad liked the idea of having a box users could use to take their chosen layout for a road test, so here’s an idea for that:
This is mostly stolen wholesale from the GNOME control center UI. It is whittled down somewhat. Here’s how the screen would work with the original GNOME control center design:
So as you might notice comparing them side-by-side:
- The keyboard layout option to have layouts apply either across the desktop or to individual windows have been removed. The thinking here is that they don’t really apply in Anaconda, and bcl (rightly so, IMHO) keeps pushing the idea Anaconda should be for installing the OS, and not really get out-of-scope. So if folks want to change details about how layouts apply to windows, they can do that post-install. Plus, respective to the other options that I think are more common, the option takes up an awful lot of real estate.
- We added a layout-testing text dialog that users can use to type a bunch of text to see if their keyboard layout is selected properly.
- We added a visible indicator of what the current key command to switch between layouts is. We’ve been talking about keeping Anaconda panel-less, so you’d need to know the key combo to be able to switch within Anaconda’s UI.
- I removed the ‘Reset to Defaults’ button. Maybe it really belongs there. I took it out because I didn’t really understand how it was useful: to me it seems a large target that in one poorly-aimed click could create more work, and I am not sure how such a functionality is particularly useful to this screen but not necessary for other such configuration screens. Maybe that was stupid of me. I’m sure you’ll let me know!
Some more screens for this section of the UI; these are the various dialogs that pop up depending on what you click on screen 6 above:
Keyboard options dialog
Add a layout dialog
Layout preview dialog
Stuff you might notice here:
- We removed the vast majority of the options in the keyboard options dialog (screen 6-1.) The way our discussion on this went was that the current options popup in GNOME 3 shows all of the options available in /usr/share/X11/xkb/rules/evdev.xml – way too many options than are really needed for the bare essentials of getting through the installer successfully in the correct language. We decided that layout switching *is* important to keep though, since again, non-live installs have no panel so there’s no layout chooser otherwise. So that’s all that’s left.
- The ‘preview’ button in the add layout dialog (screen 6-2) is gone. I would like very much for Anaconda not to have more than one level of dialog on top of the main screen. The window stacking that happens in Anaconda today is pretty bad. The keyboard layout preview may still be accessed via the gears icon on the bottom of the layouts list in screen 6.
- The layout dialog (screen 6-3) says what you can do with it. Just a brief line saying how you can use it to see where your physical keyboard maps up to the diagram.
Today’s Discussion: Language
So after taking a look at the above, and after we talked about potentially adding more smarts to how things are selected as defaults, we took a look at the language-related screens in the new Anaconda UI layout.
First, the “Welcome to Fedora” language selection screen that introduces users to the install process received some updates:
What you’ll notice:
- Languages are listed both in their native name and in their name with respect to Anaconda’s currently-displayed language.
- There is a filter box for them (a great idea from the GNOME control center.)
Next, the OS language selection screen. This is a departure from what Anaconda currently allows; as mentioned earlier, Anaconda today collapses the installer UI language selection and the OS language selection into one selection, so you miss out on being able to select some languages that are actually available.
Now, I admit I don’t quite understand yet how this will work under the hood. For example, should this list change based on my desktop environment selection? If I don’t install a desktop and only use the system from a terminal, how does my language choice here affect that? I’m not sure right now, but here it is anyway:
There are some ideas here that might be kooky / stupid. Regardless, here they are:
- There’s a flag to indicate if a translation is very incomplete. A random idea is to show a ‘Limited translation’ flag next to translations that are less than 30% complete. At build time, we could talk to Transifex and get the completion percentages for each language, and set the flags that way. “Why would you even show those in the first place?” you might ask. Well, there’s a tension to be balanced here, as Chris pointed out. Is it going to save a user from the frustration of seeing their language only in 30% or less of the UI and English everywhere else? (Well, English or whatever it may fall back to, according to the C locale – whatever language the programmer wrote it in originally as I understand it.) Or, is it going to be demoralizing to not see your language in the list, and every little bit helps and might inspire a contribution to further complete it? We’re not sure. We’re both Americans. You may not be and this may be an issue that deeply affects you. What do you think?
- There’s a filtered list of probable languages displayed at the top of the list. Again, I am American, a sad monoglot (well, I probably know enough Japanese to make a native speaker cover their ears in pain) so this may be a completely stupid idea—I’m relying on you to school me in a non-inflammatory manner! The idea is we could check the list of languages to see if there are any other versions of the same language. So if I chose to view Anaconda in English, any languages whose code is en_* would be displayed in the filtered list. (Dvorak fans, rejoice in the 15 seconds this may save you!) Maybe there is some way we could display languages with the same country code next to each other as well (I am thinking of India, a country of many languages, here.) What do you think?
- Folks who don’t speak English would be able to more easily pick out their language in the initial set of ~60 or so languages Anaconda supports since they’d be available in their native name.
- You’d be able to install the OS in a language beyond the limited set that the Anaconda UI itself is available in.
- You’d be able to choose between a preferred language with limited coverage or a less-preferred language with fuller coverage since limited coverage languages would be flagged.
- You’d be able to use more than one keyboard layout, which was not possible before. Multi-lingual users would not have this extra step post-install.
- The keyboard command for switching between keyboard layouts would be more visible, and you’d be able to switch between them in the installer itself (useful for an American with accent marks in her name. *cough*)
- You’d be able to modify the keyboard command for switching between keyboard layouts, and not need to configure it post-install.
- You’d be able to filter in both the keyboard layout and language lists.
- You’d be able to take a selected keyboard layout for a test drive before committing to it.
So, what do you think? Cool? Crazy? Somewhere in-between?
Wait, whoah, what are you doing with my precious Anaconda?
Unrelated Public Service Message
I’ve heard that those reminder signs you sometimes see on napkin dispensers at restaurants about how ‘paper comes from trees,’ and ‘please don’t hurt the environment’ are effective at curbing folks wasting napkins by throwing out the ones they didn’t need or use. I’d like to test a similar mechanism with respect to blog comments. In the past, I’ve taken to leaving the nastier ones unapproved in the queue, but I’ve decided I’d rather not ever see them in the first place!
So, before you post an annoyed or angry comment, please realize we’re doing the best we can and that mean comments make panda cry. LOOK HOW HAPPY HE IS! DO YOU WANT TO MAKE PANDA CRY?
Okay, I’ve gone and said it. There. Thanks for indulging me.