Quantum Mechanic

Content from 2010-06

Gnome Shell Message Tray Week 4

posted on 2010-06-20 20:20:00

This week, as with any learning experience, I've really learned how little I know. As I mentioned last, week, I've moved non system status icons down into the message tray in my local branch and I've been trying to rework the system around that. This brought quite a few design points forward including. The message tray, as it is, was not really designed around the icons being important objects, they don't have a real way of keeping track of which notifications are theirs, and most of the management code for notifications and sources is in the message tray object itself. What this means for me, is that I need to revamp how sources and the message tray interact.

It's also posed a number of smaller problems that push my limits. In one case, I have to try and get accurate hover information from an object that contains an xwindow (the status icon). So I get hover signals from the box the window is in, and the window itself. It takes me back to electronics (I'm a physicist, not a computer scientist) and I'm trying to implement a switch debouncer at the moment to solve the problem.

I really don't have much to show for this week, between being sick and spending a lot of time writing notes to myself about how to redesign things. This past week and the next are finals here, so I've been a little busy with that too. Once most of my classes stop this week, I hope I'll have time to work on things during the weekdays, when most of the helpful inhabitants of #gnome-shell are around.

I would add, though, that while I don't have anything really new to show, I have learned that in most cases it's best to just jump in and write something that you think might work, rather than labor over not being sure how to do something. Half the time it at least partially works and you figure out how to move forward.

Gnome Shell Week 3

posted on 2010-06-12 02:12:00

Working on something that is almost entirely visual presentation, I've been trying to have screenshots every week. This week I'm excited to demo what I'm currently hacking on, which is splitting the icons out of the status bar up top and moving the non-system ones down.





Every time I try a new programming language, I have to learn how to interpret what the compiler/interpreter says when I do something wrong. Today was a lot of figuring out what I was doing wrong with signals. I'm still learning to deal with some facets of Javascript, like its complete indifference as to whether you've defined a function of variable. I've mistyped variable names a number of times, only to have functionality that depended on them not work because JS didn't care that it had never seen that variable name before. Sometimes I find it frustrating how free-form it can all be. Sometimes with the magic gir I also don't know quite how it all works.

Cool things I learned this week:
  • git-bz is awesome, helpful and makes it less likely that I post the same patch to two bugs...
  • git in general really suits my work-on-five-things-at-once (dis)organization style
  • If given a kiwi in a German cafeteria, I will proceed to make a mess
Fun things are afoot in the message tray. Now that the icons are down there, it's time to really start tying things together. Marina has also said there are design improvements in the works.

Gnome Shell Message Tray - Week 2

posted on 2010-06-05 19:55:00

The story of my work on the message tray this week can be summed up in two words - "more pictures." I've been trying to replicate the music player mockup we have by getting the previous and next icons into the notifications and getting the album art into the background. This has resulted in two branches I'm working on at the moment. One is my attempt to add an optional background image to notifications in general. This has been (and continues to be) a lesson in the shell toolkit of widgets. I'm still not entirely sure how they all work together, and some of them have unexpected interactions (or lack thereof). My other branch, which is doing its job nicely, implements icon buttons as part of normal libnotify notifications. Without asking applications to add more info to notifications, I made the code that haddles the actions sent in the notification check to see if the action key corresponds to a stock icon, if it does, icon button! This means I've patched my copy of rhythmbox to send the next action as 'media-playback-next' or something like that, but I hope that is an easy and relatively non-invasive way to make the notifications more interesting with minimal effort.

While trying to implement things for the message tray, it's been interesting seeing how the pro designers think about it. At first it was a bit frustrating when marina was insisting on sticking to the notification spec and not jumping right into writing mini dbus applications for every program, but I think I'm starting to realize the value of all that. She also has the uncanny ability to pop up in IRC when I least expect her.

This past week, while I have gotten some things working, I've made quite a mess of some code, and still need to polish things off. I don't tend to have lots of time right now because classes are still in full swing for me, so these weekends are my best work time.

In the coming week, I'd love to see the status icons moving down to the message tray, once I've finished these bits up. I feel like that's an important part in seeing how this all will fit together, but the project is still pretty fluid, as people who follow development will know, and we'll see where those up top think I'm best put to use in the coming week.