[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

UI status braindump, part I



Hi!

CC'ed are Ryan Lerch (new Fedora UX designer who just relocated to
Westford from Brisbane) and Mackenzie Colwell (whom you've likely
already met as pseudomonas in IRC, she's my UX summer intern.)

We met with Chris this morning (and will meet further later this
afternoon) to hash out the current status of the UI design. Here's a
rundown of what we covered this morning; I'll follow up with a part II
for what we cover this afternoon.

#1) KICKSTART DETECTION
========================

So we've had this idea that if you have a USB key with a .ks file on it
when the Anaconda UI is started, we would auto-detect it and offer to
pre-fill in all the UI fields (and add post scripts and whatever else
into the fray) for the install. 

Mackenzie worked up some mockups (yet to be posted) showing how this
might look and feel. Some notes:

- If we make this feature infinitely flexible now, it's going to be very
hard to whittle it down later because people may come to rely on
different aspects of it. So we discussed limiting the scope of the
feature initially and expanding eventually based on user feedback. 

- We talked about only auto-detecting ks files that are:
  - in the root directory of a USB key
  - in the root directory of the install media

- We made the assumption that a user is highly unlikely to have more
than 0-10 ks files auto-detected, and the UI mockups are designed
accordingly.

- We talked about a feature (that could be delayed release-by-release
depending on time / resources available to implement) to allow users to
pull in only certain named sections of a KS file. So, we auto-detect the
KS file and that it has a %packages and a %post. You could dive in an
select to only pull in the %packages section with checkbox, and uncheck
the %post to not have it apply to your install at all.

- If the stanza-by-stanza pick and choose for KS feature isn't
implemented, we default to all or nothing when we auto-detect ks files:
you either have all parts of the KS applied to your install or none.

- For picking and choosing sections of a ks file, we determined that we
should have all sections included by default, and allow the user to
'opt-out' of particular sections. (rather than vice-versa where they
would start with none and have to opt-in one-by-one.)

- We talked about how opting in to the %package section of the ks file
might be a good part of the story for folks concerned that we have
dropped individual package selection from the UI.

- A kickstart file with just one section will pass validation. Old style
kickstarts default to asking for any information not provided in the KS.
In the new anaconda UI, we will pre-fill in the defaults for any fields
the KS did not provide, and if any section is not provided we will put
the user on the 1st hub rather than the 2nd hub. (Not sure if we should
push users to the 2nd hub if every required KS option is filled out in
the KS file sucked in.)

- For picking and choosing KS files, we need a way to view each section
so you know what you're signing up for (or know what you're avoiding by
unchecking it.)

#2) CHOOSE DISKS BEFORE HUB #1
==============================

http://linuxgrrl.com/fedora-ux/Projects/Anaconda/Flows/full-flow_26sep2011.png 

I know we came up with the "Choose Disks" flow in there to limit the
number of disks selectable later on in the UI to 10 or less because of a
discussion we had in Westford some months back. I don't remember all the
particulars (eek) so I wonder if we still need it? If so we need to mock
it up.

#3) LOCAL MEDIA PREUPGRADE
==========================

We want to choose preupgrade as the one true / supported upgrade path.
However! This is problematic for folks with crappy, expensive, or no
internet connections. Can we investigate whether it would be possible to
offer up a 'preupgrade from DVD media' option? What if the DVD media was
live, possible? 

#4) KEYBOARD LAYOUT IN LANG SELECTION SCREEN #1
===============================================

So, it's been pointed out that while we allow users to select the
language the Anaconda UI is displayed in on the very first screen, we
don't allow them to select a keyboard layout. This is problematic
because we have a network dialog after that, and if they cannot type
their AP password or input their network information using the default
layout for their chosen language, they can't benefit from any of the
geo-ip and network features (like pre-downloading repo metadata) the new
UI offers. 

Ryan has been looking at integrating keyboard layout selection into this
screen. As we discussed this a number of issues came up:

- We likely won't have geo-ip data for this first screen so it would be
really difficult to filter based on geo relevancy, but we can do this on
the language screen off of hub #1.

- A user may select one language for the display and another language
for input. An example of this is an American consultant stationed
on-site at a Japanese business, where the AP password is in Japanese but
the American (speaking English natively) would prefer to read the
Anaconda UI in English.) 

- Because of the above point, we should display layouts relevant to the
selected language first on screen #1, but also allow the option to add
any other layout outside of that language. (with type-ahead)

- Will ibus work in Anaconda? If not, CJKVI (Chinese, Japanese, Korean,
Vietnamese, Indic, maybe others'?) languages' input won't be possible in
Anaconda. (We have had a specific user requests to support Japanese
input in anaconda so it is needed / useful.)

- For ibus languages, we need to indicate what the key combo is to
select between 'sublayouts' (eg. for Japanese, switching between
Romaji / Hiragana / Katakana.)

#5 UP-FRONT NETWORK AUTO-DETECTION
==================================

We had a worrisome and complicated discussion of how to handle
auto-detected / auto-connected network support (before hub #1) until
Ryan essentially pointed out that NetworkManager has a workable recipe
for auto-connecting to a network and we should probably just use
whatever scheme NM uses :)

Diagram:
http://www.flickr.com/photos/mairin/7557284668/in/photostream

- If you have a wired connection (that can access the internet not just
a local network), you don't see any network config screen before hitting
hub #1.
- If you have a wireless connection, we pop up a 'simple dialog' (to be
mocked up by Ryan) where you pick an access point and input the password
(if necessary)
- If you have a more complicated connection, you can visit the full
blown network dialog (before hub #1) by clicking on a 'Network Settings'
button in the 'simple dialog'

Some use cases we talked through: 
- You're at a friends house. They have a MAC filter or password.
- You're at the office. All the visible APs are password-protected
(maybe using RSA tokens or certs)
- You're at a hotel / airport / conference show floor and the network
has a captive auth system. You are only connected to a local network
then, and not connected to the full internet.
- Fake 'Free Public Wifi' connection that has no internet uplink.
- You need to connect to a phone's network connection via wired (USB) or
wireless tether.
- You're at a coffeeshop and the AP is completely open, but you'd rather
connect to another AP. If you switch APs, the yum repo metadata download
will have to be restarted.

Other points -

- We could detect whether or not APs were connected to the wider
internet or not.

TO-DOs for people :)

Mackenzie
=========
- update the ks auto-detect mockups to allow users to view each stanza
of the ks on the same screen where they can check / uncheck
stanza-by-stanza

- update the ks auto-detect mockups to drop the 'choose sections'
button. instead of having a separate 'choose sections' screen, integrate
the choose sections widgets into the main dialog using a disclosure
widget (example:
http://xkahn.zoned.net/blog/wp-content/uploads/2007/02/evolution-compose-text.png  the 'Show Attachment Bar' in the bottom left of this SS uses a disclosure widget - also called GtkExpander - but in GTK3 they look like little [+] symbols instead of a triangle.)

Ryan
====
- (deferred until complete set available) talk to Brisbane docs contents
about an audit of the language used in the UI strings to make sure it's
internally consistent and consistent with RH style
- Update screen #1 mockups to include keyboard layout selection
- On keyboard layout screen, for CJKVI languages, provide the key combo
for switching between 'sub layouts' (katakana vs hiragana vs romaji in
Japanese for example)
- Talk to Brisbane contacts about state of ibus and whether or not any
alternative input systems are under consideration or if any pending new
ibus features are coming up so we're aware
- Mock up 'simple dialog' for network connections

Mo
==
- I need to talk to dlehman about the 'choose disks' box we have in the
flow chart and whether or not it's still necessary (eg
http://linuxgrrl.com/fedora-ux/Projects/Anaconda/Flows/full-flow_26sep2011.png )


Chris & other Anaconda riders
=============================
- Search the install media and any USB media attached to the system for
ks files, only in the root directory. 
- Modify kickstart.py as necessary so that it can determine whether or
not a given file passed to it actually is a ks file.
- If a ks file is loaded in by a user, always take them to hub #1 by
default, even if you have sufficient info to start the install.
- (low priority) Investigate what it would take to list what ks
stanzas / sections are present in a ks file and optionally,
section-by-section, turn them on or off. 
- (dependent on last item above) When pulling in a user-selected ks
file, set all ks sections to ON by default.
- Investigate preupgrade off of local media feasibility
- Investigate ibus in anaconda feasibility
- Change code around popping up network dialog before hub #1 to match
rules described in section #5 above.



Okay more later hopefully :) Any questions etc please reply to list!

~m


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]