28 January 2007

Improved Tray Icon

One of the feature differences to Akregator until now was the tray icon representation. Since some time Akregator displayed the number of new items rendered in the item. Liferea only toggled between a shaded and an unshaded globe icon.

SVN trunk now has the same number rendering like Akregator supports. Here a screenshot of the normal icons of both programs (Liferea on the left, Akregator on the right) when nothing new has arrived yet:

And this is how it looks when new items have arrived:

The white on red colors are hard-coded and do not follow the theme. This makes some sense as the blue icon also doesn't and red on white has both a good contrast to the blue icon and most themes.


Anonymous said...

Cool, keep the new features coming

I am really enjoying all this new development going on!

Lars said...

I do my best. But it is limited by how much personal time it takes and how much support efforts it creates.

I think it is important that more developers work on the project, me alone won't bring it much further.

pochu said...

Looks really nice!

But maybe it would be better to display the numbers in red, without the actual red layout.

Thanks for your work

Aristotle Pagaltzis said...

I like the feature, but as it is I think it’s quite ugly. My suggestion is instead of drawing the text with a solid-coloured background, draw it transparently but switch to an icon designed with room for the text. If someone makes a nice icon the display would look much better for basically no extra coding effort.

Anonymous said...

Maybe white numbers on an "RSS orange" background instead of red.

Lars said...

Thanks for the feedback. Well the color is only a first approximation. I'm also thinking about using a combination of the theme colors (although I hate the stupid color conversions this would need).

As for the display of the numbers inside an icon I'd say this is not a good idea because it would need a lot of space. As soon as a user has more than 50 feeds the overall new items number after a longer absence without reading will easily surpass 1000. So such an tray icon would be at least 4x8 + 16 pixels wide and would abruptely change from the no-new-items 16x16 pixmap to an 62x16 pixmap.

Therefore I think the only solution is to put the number directly above the icon.

Aristotle Pagaltzis said...

Err, no, just a 16×16 icon. I’m not sure how you read my suggestion as saying you should drawing the text next to the icon? I didn’t say anything like that.

The only difference from what you already have is that there would be no background for the text (the solid red rectangle). To make it readable anyway, you switch from the available.png globe icon to an icon showing a globe with an empty sign drawn on top of it, eg. newitems.png. When you draw the text transparently onto that, the text will look like part of that sign.

So my tray, which currently looks like this, would then look maybe something like this.

Though to support 4-digit counts it’s probably better to use a slightly wider icon, eg. 20×16 or 24×16. A lot of apps use 24×24 tray icons anyway.

It might be worth to consider shipping a decent pixel font with Liferea. None of the fonts I tried worked well at those extremely low sizes. The font in that shot is Bitstream Vera Sans-7, and it’s barely legible. Turning off antialias didn’t make a big difference. Of all the typical fonts, Arial worked best, actually. Unfortunately you can neither assume its presence nor include it with Liferea… And a good pixel font would beat it anyway. (Maybe one from Artwiz, glisp f.ex.? They’re GPL.) A pixel font might even work well enough to keep the 16×16 icon.

Aristotle Pagaltzis said...

(But note that that is just an example icon. It looks hardly any better than a solid yellow rectangle would; someone with good artistic skills would have to take a stab at it…)

Lars said...

Now I understand. You want to limit the text to the icon size. This would be a solution for the background problem. But I think it misses an important thing: the notification effect. My current solution with a flashy red background is an eye catcher. You won't miss it. While when using your shaded icon version with a very small text in it will be quite unobstrusive.

And I don't think that it would be readable anymore in high resolutions.

Although I have to admit that it solves the direction problem when using vertical panels.

Aristotle Pagaltzis said...

Actually, I didn’t want to restrict the size per se – I did not know it was not restricted. :-)

Hrm. Yeah, if the counter width is variable, I agree, there’s no other way than to do it in code.

Anonymous said...

Well, I can safely say after this ill-thought-out 'feature' I will not be using Liferea anymore.

Anonymous said...

I don't think that knowing how many unread news are waiting is an information to be put on notification area, but only that there are "some" unread news. One, ten or fifty in not that important.

Lars said...

Ok, I understand that in some use cases the number is more disturbing than useful. I'll wait some more to see if there are more users thinking so and will then decide wether I make the number display optional (using a preference option defaulting to disabled).

Anonymous said...

One more vote to revert this change or at least make it optional. Its important to be notified IF there are new items. That's enough, because 100 unread items could be from sources I really care about as well as from not so important ones. So the number is more or less meaningless, disturbing and doesn't look good too.

A compromise would to keep the old behaviour an use notification bubble when, say 50 (option) unread items are reached. Maybe let for each source decide if it is included in such count and show a short summary how this is spread over your categories.

Sorry to say that,
but with this new tray icon I really think about switching to another app. Nonetheless thank you for your work so far.

Anonymous said...

I'd also like to see it at least made optional. I don't really care how many unread items I have (usually quite a few)