Monday, October 17, 2011

Redesigning the Seahorse Experience

As part of the work on getting smart cards into Seahorse, there's some design work that needs to be done to make the new functionality usable. In particular, the overarching design goal is that Seahorse isn't a tool we expect users to "learn". Actions should follow mostly from the passwords and keys that have been accumulated.

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.


  1. Does it make sense to sort passwords and encryption keys together by default? Users may have hundreds of passwords, and typically only a few encryption keys.

    Personally, I'd suggest showing the sidebar by default, to allow discoverability. Have an "All Passwords and Keys" entry at the top, which acts as a "show all" button, and select that by default. The user can then click on one of the sources of keys to see only their keys.

    Also, you might consider making the headings clickable. Clicking on the "Passwords" heading could then select all password keyrings. (Not that most users should have multiple password keyrings.)

  2. Very nice.

    Selecting multible sections seems very simular to selecting mutible files e.g. in Nautilus or the file-selection-dialog. Did you consider using that model instead of the checkboxes? So pressing the Str-key to select (or unselect) a selction without changing the selection of the other sections. Visually all the selected sections would be highlighted.

  3. Please, do not truncate the toolbar as in nautilus...

  4. +Anon68EMAsyt: Most users will have only passwords, and no encryption keys. So the basic experience tailors towards that. Users with encryption keys can see them easily, and then go to a more advanced experience if desired.

    Using the sidebar headings to select all places under that section is a good idea, maybe on right click.

    +blaubirke: Thanks! The selections here are persistent across program loads and UI interaction, so the tree multi-select doesn't meet all our needs. But I agree that we should make Ctrl-click work, I'll work on that.

    +Cimi: Hmmm, I was trying to be consistent with nautilus.

  5. Sorry that my post is slightly off topic .. What fonts are you using? It's looks just awesome

  6. @Stef: I appreciate your efforts, though I still think that nautilus needs tweaks itself... UDS is coming in a couple of weeks, and I'll spend time with a lot of enthusiast guys. I promise I'll start a discussion on that topic, seeing if we can come up with a good solution for nautilus too!
    I think the idea of having a toolbar sensitive to the context is not bad at all (the main reason why nautilus toolbar is truncated), but then we might need visual tweaks or even a new custom toolbar style to separately theming them. (to avoid things like that, which could happen with third party themes )

  7. +Retsim: It's Cantarell, the new GNOME 3.x font. Usually available as a package in your distro, or at

    +Cimi: Interesting. I'll watch for your discussion.

  8. Why would you want to look like nautilus?

    Look around in gnome-control-center and try to fit in with those.

  9. @Stef
    I would say that Nautilus UI needs to be improved. The button which I use the most in a file manager is "Back" which has been moved to right side. I cannot change the sidebar looks from there itself. I have to go all the way to View > Sidebar

    Probably it would be great if Seahorse keeps it's toolbar. I use the toolbar a lot when compared to using Menu. I hope seahorse does not inherit the brain-deadness of nautilus

  10. Hey , Admin

    Your blog posted on '' Seahorse Activities '' that I realized about it . I have understood many information by this your blog . Completely , I supported your blog . In many places, there is a variety of housing kinds that those looking for a position to rental will never have difficulties looking for one that meets their taste and style. Resources for private landlords, it will be very easy for anyone to discover the type of area that they are looking to rental out whether for individual, double or close relative’s occupancy. For personal resorts, you can opt to rental and remain in a maintained apartment, a residence unit or select from one of the stunning homes that are preferably cost, well-maintained and very accessible.

    Thanks for your Like able Blog .