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.
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
- Source for version 1.1 (build it with
./configure; make; make install)
- Stable builds for Ubuntu
- Daily builds for Ubuntu
- Source repository on git.gnome.org
- Break Timer’s wiki page
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.