So I've been working on the experience a bit. Some concepts:
- When most user's arrive, they should see their personal passwords, and keys or certificates if they have any listed. In this mode we combine items from all the various places these things are stored.
- The user sees a certificate regardless of it's on a smart card, Gnome Keyring, or in NSS's store.
- Each item should have an icon, and text describing what it is.
- By default only 'personal' passwords and keys are shown. Those belonging to the user. So things like Trusted Root CA's don't litter the combined listing. This is easily changed on the 'View' menu.
- The list is easily filterable by typing in the box.
- We make sure to unlock the default password keyring when seahorse is started. Normally it's unlocked already, but just in case.
A screenshot (the toolbar needs some work):
So the experience starts off really straight forward, no need to clutter things with where these items are coming from. If the user has a smart card inserted, the certificates and keys on the smart card will also show up there.
In order to see and manage stuff related to where the keys come from, the user chooses 'View | Places' from the menu. A sidebar appears, which supports the following concepts:
- Click on a place to view items from a that 'place'.
- See which keyrings exist, delete, change master passwords etc.
- See smart cards that are inserted.
A screenshot (the places need some tweaking):
Something I've also been playing with is an easy to use multiple selection. For example I'd like the user to be able to select multiple places (let's say all the password keyrings), and see their items together.
I wanted to do something where check boxes are shown to the right of each 'place' when the Alt-key is depressed. The user then would click those checkboxes to select multiple places, and show their items together. Once one box is checked, all check boxes remain visible. This fits in with the concept of showing keyboard mnemonics when Alt is pressed, and also GNOME seems to be using a show-advanced-shortcuts-on-Alt-key concept here and there, and I thought this would fit nicely. However, sadly the window manager grabs the mouse when Alt is held down, for the purpose of full window drags, so I had to think of something else.
What I came up with was that a check box is shown next to a place when that place is selected and focused. If the user clicks that check box, then all the check boxes next to the other places become visible, and more than one can be selected. As long as one is checked, all the check boxes are visible. Works well enough, and should work with touch devices as a bonus. But I'm not as satisfied as I would have been with the Alt concept.
Of course this is an advanced feature, and not necessarily something that needs to be super 'beautiful' but none the less it was interesting to try out these alternatives.
There's lots more design work that needs to be done. For example, I'd also like to integrate the new control center style 'Unlock' button in a way that makes sense. It gets complicated because there's more than one thing to unlock (ie: smart cards, password keyrings, etc.)
Most of this is done in such a way that the pieces can be reused elsewhere in other apps as well. Available right now in the seahorse refactor branch and depends on an up to date build of the Gcr library. Hopefully I'll be merging this into seahorse master soon.
Oh, and thanks to NLnet for sponsoring Collabora to work on the Seahorse smart card support.