Anaconda/UX Redesign/Anaconda Location

From FedoraProject

< Anaconda | UX Redesign(Difference between revisions)
Jump to: navigation, search
m (Available Resources)
(Proposal #1)
 
(5 intermediate revisions by 2 users not shown)
Line 167: Line 167:
  
 
* country, latitude/longitude (from geoclue)
 
* country, latitude/longitude (from geoclue)
** timezone (from country, lat/lon, via tzdata)
+
** 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)
 
** language (via ???????, see below)
 
*** keyboard layout (from country/language combo, via xkeyboard-config)
 
*** keyboard layout (from country/language combo, via xkeyboard-config)
Line 197: Line 197:
 
Then, each of those options pops up a single-purpose configuration dialog.
 
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.
 
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]]
 +
 +
[[Image:anaconda-location-1.png]]
 +
 +
[[Image:anaconda-location-2.png]]
 +
* ''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.
 +
 +
[[Image:anaconda-location-4.png]]
 +
 +
[[Image:anaconda-location-4a-1.png]]
 +
* ''Luya'': Is is possible to specify language variant on that selected field i.e. '''English (US)'''?
 +
 +
[[Image:anaconda-location-4a-2.png]]
 +
 +
[[Image:anaconda-location-4b-1.png]]
 +
 +
[[Image:anaconda-location-4b-2.png]]
 +
 +
[[Image:anaconda-location-4c-1.png]]
 +
 +
[[Image:anaconda-location-4c-2.png]]
 +
 +
[[Image:anaconda-location-4d-1.png]]
 +
 +
[[Image:anaconda-location-4d-2.png]]
 +
 +
= 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

Latest revision as of 00:04, 18 January 2011

Contents

[edit] Resources

[edit] Date & Time Panel in Fedora 15 Control Panel

F15-dateimte-contrplpanel.png

[edit] Idea for Time Entry filtering possible TZs

Mockup-timeentry-anaconda-tzdetermination.png

[edit] 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'.

[edit] 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.

[edit] 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)

[edit] Needed Localization Info

Anaconda needs the following bits of localization info:

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

[edit] Data Sources

[edit] What Anaconda currently uses

Anaconda uses the following data sources:

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

Anaconda does *zero* autodetection.

[edit] Available Resources

[edit] Other data sources

Data Source Includes Does Not Include
iso-codes
  • country subdivisions (state/province), indexed by country
  • countries, and their country code
  • languages
  • languages to countries mapping
localedata
  • languages to countries (more or less)
  • mapping of languages to a primary locale/country
tzdata
  • timezones, indexed by country
  • latitude/longitude for timezones
  • locales to country mapping
  • mapping random cities to timezones (only specific timezone cities)
libgweather
  • many many cities, organized by country
    • with timezone
    • with lat/lon
    • with weather codes
  • cities/countries to locale
geoclue
  • Maps current location to:
    • country
    • city
    • latitude/longitude

N/A

xkeyboard-config
  • maps language name to xkb layout (1:n, though)
  • maps country name to xkb layout

N/A

[edit] Widgetry

[edit] Split-Out Widgetry

Widget What does it do? What does it use?
system-config-date timezone selector Uses tzdata
system-config-date timezone selector Uses custom hardcoded mappings in the code, lang-table
system-config-language language selector Uses iso-codes
anaconda language selector language selector Uses lang-table

[edit] Codebases that don't have widgetry split out

Widget What does it do? What does it use?
gdm language and keyboard selectors Uses iso-codes, xkeyboard-config
gnome-control-center datetime timezone selecor Uses tzdata
gnome-panel location selector Uses libgweather, tzdata

[edit] Widgetry currently in development

Widget What does it do? What does it use?
gnome locale configuration applet configures locale Uses iso-codes, xkeyboard-config, and more

[edit] Proposal #1

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

[edit] 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.

[edit] Mockups

[edit] Proposal #1

Inkscape SVG for all mockups

Anaconda-location-1.png

Anaconda-location-2.png

  • 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.

Anaconda-location-4.png

Anaconda-location-4a-1.png

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

Anaconda-location-4a-2.png

Anaconda-location-4b-1.png

Anaconda-location-4b-2.png

Anaconda-location-4c-1.png

Anaconda-location-4c-2.png

Anaconda-location-4d-1.png

Anaconda-location-4d-2.png

[edit] Related Bugs