Well, it’s September, so I guess it’s time to call it quits with that whole “summer” thing. This has been a really nice few months. I’m very grateful that I could participate in Google Summer of Code this year with my project to build a shiny new Break Timer application for GNOME 3.

This was meant to be a picture of Fall's first day of torrential wind and rain, but the rain stopped as soon as I went outside and this is all I got. Stupid rain.

This was meant to be a picture of Fall’s first day of torrential wind and rain, but the rain stopped as soon as I went outside and this is all I got. Stupid rain.

So, where am I leaving you? With GNOME Break Timer 1.1, of course! (And I’m not leaving). I think my project over the summer has been successful. At times I have had the unmistakeable feeling that I was trying to spread too little butter over too much bread, but we always found something interesting to work on (including a nifty and GNOMEy side project that I’ll talk about really soon, but mostly on Break Timer itself) and I think we have some good quality code as a result — and a lovely little application, too!

GNOME Break Timer 1.1

Well, it has an About dialog

Well, it has an About dialog

Don’t worry, that icon is a quick placeholder, and I realize it looks confusingly similar to either a normal clock, a speaker or a power button. If you feel strongly about it, I will be eternally grateful if you check out the art request for a new icon.

Here’s what I did this summer, in summary…

  • Cleaned up a lot of old code, fixing bugs and removing oodles of unwanted complexity.
  • Adopted a “normal” build system and fought off my intense fear of Automake. (I now simply dislike Automake. That feels like progress).
  • Made a cute little application to get started with Break Timer, view the current break status, and set a break schedule. I think it’s pretty cool.
  • Improved the activity tracking code so it’ll be way easier to adapt to changes in the input stack. I still need to take a close look at how this will work under Wayland, but I’m less worried, at least.
  • Polished up the “take a break” notifications and added automatic screen locking, as well as better awareness of the system in general.
  • Implemented really awesome state saving between sessions.
  • Investigated per-application defaults for notification appearance. (Didn’t go brilliantly, but I’m going to try again. More on that later).
  • Wrote lots of tests. I didn’t get to write any UI tests, and I was hoping to find out about testing timeouts and timers but I’ll need to save that for another day. Probably a rainy one. Still, it should be very hard for someone to (unknowingly) break any of the more fiddly parts of the application. I’m sure that will pay off in the long run.
  • Learned all about GObject, Vala, Cairo, unit tests, GNOME, and wonderful new things in GTK!
  • And I wrote a blog post for each of those things.

All sorts of people have helped me with my project over the summer. Thanks, Jasper and Allan for being so patient with me :) And thanks, GNOME! You folks are all brilliant. I’m definitely going to keep going with this project and I’m excited to work with you all in the future.

6 Responses

  1. Nice work — are you going to propose it for inclusion in GNOME 3.12?

    • I hope so! It still needs a bit of work (namely the icon, but also a few bug fixes for localization), so it depends on whether I’m confident that can happen before 3.12 is ready. It probably can :)

  2. Hello,

    nice work, I really like it, being a Workrave convert myself. I felt enthusiastic a bit, and made some modifications, e.g. a Hungarian translation (I don’t know if it will be picked up by the GNOME translation team or not), and some nifty little patch, so it compiles under Fedora 19. It’s quite unclear to me where can I submit my patches, so if you could share it somewhere (even here or privately), I’d send them over.

    Cheers,
    Gergely Polonkai

  3. The ./configure command gave the following response:
    configure: error: Package requirements (
    glib-2.0 >= 2.36.0

    But asking my fedora system about glib2 I have found out
    rpm -qa | grep glib2-2
    glib2-2.36.3-3.fc19.x86_64

    I am a business administrator, not a programmer. I have been following ./configure errors installing compiling packages until I hit this blocker.

    My mom’s computer is stuck in Gnome2 just because of typing break, it is a health issue, not about productivity. I am grateful about what you have done. I am writing about this issue, because the is the only way I can help. Sharing my experience, as I am not a programmer.

    • Thanks for your message! That is strange. Is it definitely the glib requirement that’s throwing it? (Sometimes those messages can be a little misleading). I’m asking because this does depends on two strange libraries you might not have installed: json-glib and xtst.

      Most likely I messed something up in my package, but for now could you try running ./autogen.sh, then the usual steps again and see if that fixes it? I’ll be back looking at this in Fedora next month I hope. I’ll let you know how that goes :)

      For the time being, you might want to check out one of these alternatives:
      * Dr Wright, which is the old typing break (now separate): https://wiki.gnome.org/drwright
      * Workrave (though it has had some quirks under Linux in general for a while): http://workrave.org/
      * The Pomodoro Timer extension for GNOME Shell: https://extensions.gnome.org/extension/53/pomodoro/