Anaconda/UX Redesign/Anaconda Location

= Resources =
 * Original mailing list thread

Idea for Time Entry filtering possible TZs


= Issues =

Today I was looking at https://bugzilla.redhat.com/show_bug.cgi?id=624158; part of that bug involved creating a locale mapping file in initscripts; this seemed like a bad idea. When considering that, I thought of lang-table, and wondered 'how could we get rid of that'.

Summary of Issues

 * multiple locale/location screens
 * no auto-detection
 * anaconda-specific locale mapping files - we really shouldn't be driving off of configuration sources that only live in anaconda.

We can do better.

= Multiple Locale / Location Screens =

Anaconda currently has multiple locale/location screens:


 * language selection (custom anaconda)
 * keyboard selection (from s-c-keyboard, but nothing else uses that)
 * timezone selection (from s-c-date)
 * clock setting / ntp (in firstboot)

= Needed Localization Info =

Anaconda needs the following bits of localization info:


 * locale/language
 * timezone
 * keyboard layout
 * text font

= Data Sources =

What Anaconda currently uses
Anaconda uses the following data sources:


 * tzdata
 * lang-table (a custom anaconda file)

Anaconda does *zero* autodetection.

= Available Resources =

Widgetry currently in development
= Proposal #1 =

On boot, as soon as there is networking available, start geoclue. Acquire location information. Then, feed the information as so:


 * country, latitude/longitude (from geoclue)
 * timezone (from country, lat/lon, geoclue may be getting this support in the future - https://code.launchpad.net/~ted/indicator-datetime/geoclue-timezone-support/+merge/39144)
 * language (via ???????, see below)
 * keyboard layout (from country/language combo, via xkeyboard-config)
 * text font (hardcoded!)

Notes:

 * What if we don't have network? Do DHCP always on link!
 * It's easy to get a list of possible languages given the country. There's no canonical data source of what to use for the *primary* language, though. We could make a mapping table (ugh), or do heuristics (double ugh).
 * text font is hardcoded to 'latarcyrheb-sun16'. We could conceivable have an override for the very few people who can't use that.

We then display as so:

Current settings: Location: United States        [ change ] [ details ]

If you click 'change', it pops up a selector dialog that either:
 * allows you to enter a location (similar to the gnome panel clock code)
 * allows you to click a location (similar to the control center timezone selector)

Either of those resets country, timezone, language, keyboard layout, etc. If you select 'details', (or '>>>', or some expander, to be language-neutral), you get:

Language: English              [ change ] Country: USA                   [ change ] Time: 2:33 PM (US Eastern)     [ change ] Keyboard Layout: us            [ change ]

Then, each of those options pops up a single-purpose configuration dialog. anaconda can either use the gnome capplet once it's done, or roll its own.

= Mockups =

Proposal #1
[[Media:anaconda-location-mocks-1.svg | Inkscape SVG for all mockups]]




 * Luya: Current location should include the city and country similar to timezone layout. Will the region field be highlighted to let users know they can edit their settings.




 * Luya: Is is possible to specify language variant on that selected field i.e. English (US)?















= Related Bugs =
 * https://bugzilla.redhat.com/show_bug.cgi?id=659727 - Anaconda (kickstart) fails if computer clock is wrong and gives misleading error message
 * https://bugzilla.redhat.com/show_bug.cgi?id=654012 - Wrong system locale set, causes incorrect page sizes for print queues
 * https://bugzilla.redhat.com/show_bug.cgi?id=619369 - Keyboard layout mixed up with language (locale) in installer
 * https://bugzilla.redhat.com/show_bug.cgi?id=582536 - Interface doesn't allow me to ensure if I enter password in correct keyboard layout
 * https://bugzilla.redhat.com/show_bug.cgi?id=528140 - [ALL Lang] TimeZone in Clock is Boston by default
 * https://bugzilla.redhat.com/show_bug.cgi?id=450396 - Romanian locale needs 4 keyboard arrangements in the keyboard list