Monday, July 25, 2016

GNOME Keysign - Report #2 GSoC 2016

More than a week ago I blogged about the new GUI made with GtkBuilder and Glade [1].  Now, I will talk about what has changed since then with the GUI and also the new functionality that has been added to it.

I will start with the new "transition" page which I've added for the key download phase. Before going more in depth, I have to say that the app knows at each moment in what state it is, which really helps in adding more functionality.

The transition page will give user more feedback about the download status of a key, because in the old gnome-keysign GUI, when the download was interrupted the GUI didn't show anything. Now, the GUI is more explicit about the process:

If the download fails, the spinner widget stops and an error message is shown. If the download is successful, the app will auto-advance to the confirmation page and the user is presented with details for the key he's about to sign:

A few people noticed that I am displaying short key ids in the GUI. I want to say that the entire key fingerprint is used when authenticating a downloaded key. The other info shown in the GUI are just key details that I'm getting from GnuPG and I'm displaying in the interface.
Though, I will stop displaying the 8 chars ID , because user may be influenced somehow by this.

Other changes that have been done since the last post were:

  • added a "Confirm" button to sign a key
  • added a transition phase for the key signing also
  • implement the "Refresh" keylist button
  • minor GUI adjustments
  • use logging instead of print
  • improve code quality

Apart from these, one major change is the GPG functionality added to the new GUI. The file made by Tobias acts as a common interface for what gpg libraries we'll use in the future. For now, you can test the new GUI with your own keys on the gpgmh branch [2]. This requires having the 'monkeysign' package installed [3].

In the following week I'm adding the widgets for the QR code and the QR scanner, as well as making a simple script that will create a flatpack app.



  1. Really good! I suggest showing the mockups and the current implementation.

    1. Thanks! I think I've shown some diffs between the old and the new GUI in the previous post ( ).

  2. It feels weird to have a "cancel" button and then a "confirm" button in the same place. Just like those adware software that try to trick you on Windows.

    I see that Allan Day's mockup was a dialog window... so following the same idea, the "back" button you have now in the top left should work as a "cancel" button. And just have a "Redo" button there. Still weird, but at least more consistent.

    1. Hi! The cancel button is a temporary thing to have a way to show the handling of interrupts, until we have the network services added.

      I don't like making the "back" button to work as a "cancel" button because than the button will do 2 things, stop the download and go to previous page, which is not what we want. The app should remain on the transition page if the download stops.

      But I also don't like how the back button is taken place by the confirm button on the next page. I will try to use something different, even if this is temporary.