Anaconda/UX Redesign/Anaconda Location

From FedoraProject

Jump to: navigation, search

Contents

Resources

Date & Time Panel in Fedora 15 Control Panel

F15-dateimte-contrplpanel.png

Idea for Time Entry filtering possible TZs

Mockup-timeentry-anaconda-tzdetermination.png

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

We can do better.

Multiple Locale / Location Screens

Anaconda currently has multiple locale/location screens:

Needed Localization Info

Anaconda needs the following bits of localization info:

Data Sources

What Anaconda currently uses

Anaconda uses the following data sources:

Anaconda does *zero* autodetection.

Available Resources

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

Widgetry

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

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

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

Proposal #1

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

Notes:

We then display as so:

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

If you click 'change', it pops up a selector dialog that either:

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

Inkscape SVG for all mockups

Anaconda-location-1.png

Anaconda-location-2.png

Anaconda-location-4.png

Anaconda-location-4a-1.png

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

Related Bugs