Friday, 16 March 2007

Arrfinity ;)

What a week! Its weird how so many things come up at once! I won't bore you with the details, but lets just say that 5 days without a net connection wasn't the worst thing that happended!

Anyway, being without the internet gave me some much-needed time with Awn, the fruits of which you'll see over the coming days! However, it did also push me back a few days with some important stuff, so with out further ado:

Yep, thats really Affinity, no mockups, just real code, which you can get here!

Now, as this is a 0.1 release, I ask you to be gentle ;). Here's a break down of some basic features:

* Front-end to both the Beagle & Tracker desktop search engines.
* Has actions (configurable through Desktop files), which should help to speed up common tasks.
* Has in-built, user-configurable, filters which work in the the entry box, so typing 'pics:london' will only bring up pictures.
* Super-fast application searching through an in-built list of applications.
* Colours can be customised to your taste.
* Lives in the system-tray, but can be called by a global key stroke. Default is Ctrl+Alt+a, but you can change it to anything you like!
* Written in C for minimal impact on your system, but maximum speed!

More info is available on the project page. I have removed 'Favourites' for now as it was a bit unstable, but it should be back in over the weekend.

Please bear in mind that Affinity currently only works on gtk+-2.0 >= 2.10, I am working on 2.8 support. Also, Affinity should work without RGBA (i.e. without Beryl or Compiz), but this has not been extensively tested.

OTH, it shouldn't take down your system or anything ;p. One bug that I do know about is that scrolling up & down fast on the treeview widget will cause artifacts to appear, which disappear when you move your mouse over them or press a key. I'm sure that this is just some teething pains between Gtk + RGBA, but I'll try and fix this ASAP.

Also, an I probably should have blogged about this sooner, shortly after I published the Affinity mockups, I got an email from a person who wanted to make something similar for OS X! Lol...who'da thunk it? The application is called Loro, and is free software. He is working on some really cool ideas, such as Google maps integration, check out his blog for more info.

Anyway, better get to bed, I'll leave you with some more screenshots:


Anonymous said...

It looks great! I am awaiting future releases.

Piotr said...

It's 3:30 AM here so im gonna try tommorow. Is this a gtk engine/theme or only some modification to beagle-search? Because I always understood affinity is a gtk engine/theme. Your screenshots don't confirm this.

Anonymous said...

"Lives in the system-tray"


I have a cautionary tale for ANYONE writing ANYTHING that lives in the system tray.

It's called 'my father's desktop'.

nobody wants that.

ask yourself: do I really need to be in the system tray, or am I just being lazy? is there a way to provide all the convenience of being in the system tray without wasting 576 pixels of my poor user's pixels and adding to the ugly crap collection in the bottom right hand corner of the screen? :)

-adam w.

Anonymous said...

better link...

-adam w.

pollycoke said...

just wonderful, already tested...

Neil please, dont' release such cool apps in the middle of the night, I'm trying to get some sleep! ;-)


Corey said...

Dude, rocking. Any chance you could roll this stuff into the deskbar applet for 2.20?

Anonymous said...


You are contributing a greater and greater percentage of code to my Ubuntu box :) .

Keep up the awesome work! Oh, and welcome back!

LL (Loyal Lurker)

Sindre Pedersen Bjørdal said...

Where do I report bugs? Where can I send patches? Translations? Need anything else?

Patrick said...

Very nice. I played with the colours a little. Here's mine.

Johan said...

Very cool! Neil, are you going to GUADEC? I think gnome could benefit greatly from some of the main "bling architects" getting together and brainstorming.
Apparently it's in Birmingham this year.

Filip said...

This is awsome stuff you har contributing with, i hope you are going to GUADEC to spice things up. :)

Anonymous said...

Wow. I can't wait to see this hit the Ubuntu repos.

Neil J. Patel said...

First of all, thanks everyone for the support!

piotr: Hi! This is its own application. I mentioned it before, sorry if it was confusing. Affintiy hopes to be a quick way to bring up apps/files/contactss/bookmarks etc. Regarding the GtkTheme, I have actually made some good progress which I will blog about soon. Its quite difficult as I don't want to have patches against main Gtk, so there are a lot of work-arounds, hence the delay.

@Adam: How I look forward to your comments ;). Don't worry, it is not meant for the sys tray, it will be a panel applet, either as a button, so it can act as a main-menu, or just a small icon to activate/close it. What do you think? Should there be an option for just a standalone version (i.e. without tray or applet)?

@poolycoke: Lol, yeah I'll keep that in mind next time!

@corey: It should be possible. ATM I am a bit short of time, but I can def. help the devels if thery are interested!

@Sindre: Hi, links to reporting bugs are on the project page, you can send patches & translations directly to me : njpatel_AT_gmail_DOT_com :).

@patrick: looks cool, I will sort out the font sizes in the next release.

@Johan: Thanks! I'll def. be at GUADEC this year! As you said, its in Birmingham, and therefore I have no excuse.

@Filip: Thanks! I hope to be there this year!


Anonymous said...

"without further adoe".. thanks for rocking software!!!

Piotr said...

Then maybe you COULD do this : write a composite-aware gtk engine! Thats what i always thought you were aiming at! Just think : apps could look so much more sexier with no or minimal app modification. Think how cool would totem, or Rhythmbox or Banshee look.

Neil J. Patel said...

@anon: thanks :)

@poitr: I am! It has taken some time because it can be quite buggy. When I have something remotely usable, I'll blog about it, and everyone can test it :).

Anonymous said...

nice work, i think you already mentioned it but by default I think it should use the gtk theme colours, otherwise it looks out of place on the desktop when you first start it up.

I am not sure about the sys tray thing, as i am using awn it would be pretty good if it just sat in the applications list, then again if the person isnt using awn this wouldnt work. A panel might work the best. Althgouh how about a 'close to systray' option? That would mean ppl could dock it to the sys tray of awn.

It would be cool if this integrated into telepathy some how, many a future requirement though.

Maybe a way to browse applications would be good, it could list recently used applications then an option to launch to the application browser. At that point though its replicating alot of the functionality in the gnome-main-menu.

But anyway this is really good stuff as usual, i will have one last rant about the gtk theme coz i think thats important if this is going to become part of gnome.

One last thought maybe this would be linked into a help system in some way? If a new user wants to figure something out if could integrate with yelp or something I dunno.

Anyway nice wwork man, keep it up!

Anonymous said...

Rather than an applet or stuck in the system tray, wouldn't it be better to have it come up on startup and/or bind it to alt+space like app rocket on windows or quicksilver on mac?

Neil J. Patel said...

@anon: Yeah, I am making an option so it can use Gtk theme engine colours.

After getting more feedback, I think i'll have it as a stand-alone app, with a --enable-tray and a --skip-taskbar option. That shoudl cater to most tastes. I will then work on making the applet more unique (I have cool ideas about this).

Reagrding telepathy support, I hope to have a galago backend, so that would take care of both Telepathy & Gaim.

The browser idea is quite cool, I was think of something along those lines. It would have to be a seperate window, but could have the same effects. Let me see what I can do.

Yeah, a Yelp backed sounds quite cool. I'll see if it can be done.

Thanks for the feedback! Lol, after you've been coding for a few hours, your imagination dwindles, so having some outside input really helps!

@anon: Yep, thats what I hope for in the new release.

Gavin said...

I have your blog's feed in Google Reader, and whenever it says "the dude abides (1)" it's like christmas all over again. I'm grabbing that code right now... I was waiting for it. Probably won't work for me though. ;) We'll see...

Gavin said...

Yeah, it didn't work with the featured version, but I tried SVN and it WORKS... I just have to try it out now... :D

carl said...

You ideas are extremely refreshing! I would like to try some of these... Is the installation easy if I use the rpms? I have very little experience with fedora and rpm, I guess that you run FC6 to develop?
Thank you!

Anonymous said...

Whee! This sort of stuff must get to the standard Gnome! Preferably in the PREVIOUS stable release already! said...

This looks really great! I will have to give this one a try.
Exotic Cars & Lifestyle Community.

Oleg said...

highlight the search term, that's very important

Anonymous said...

Reminds me of the one found in the Sky Operating System

Pieter said...

"a due" => ado

Anonymous said...

Ooo... Looks like Vista's built in search. I like it!!!

GWB said...

Hey, I just found this great stuff you've been working on, and I have a question, does it work under KDE? I'm running beryl 0.2 w/ XGL. I know it says for GNOME, just curious because it looks awesome and would be fun to use it. I'm using OpenSuse 10.2. Thanks. -

brent said...

this looks fantastic! please tell me that there's a future in this to launch applications as well. i use quicksilver for osx and i have yet to find anything offered for linux that's comparable.

Anonymous said...

without further ado

Anonymous said...


I have a cautionary tale for ANYONE writing ANYTHING that lives in the system tray.

It's called 'my father's desktop'.

nobody wants that.

ask yourself: do I really need to be in the system tray, or am I just being lazy? is there a way to provide all the convenience of being in the system tray without wasting 576 pixels of my poor user's pixels and adding to the ugly crap collection in the bottom right hand corner of the screen? :)

-adam w.

...Two points.

A) This application is for Linux, not Windows.

B) Your father's "System Tray", as shown in that picture, is his Quick Launch menu.

System Tray = A place where running background applications can sit, so you know they are running, and you can work with them when you need to.

Quick Launch = A place to store icons for apps you use a lot.

Again... Your complaint, that you don't like the idea that this linux application has an icon in the gnome panel (System Tray : ' J) because your dads quick launch menu on his windows machine has a lot of stuff in it... That's wrong.

It's wrong.

Wrong Wrong Wrong Wrong.
Wrong Wrong Wrong Wrong.

You're Wrong. You're Wrong.
You're Wrong. You're Wrong.
You're Wrong. You're Wrong.
You're Wrong...

So, to answer your question as to if there is any way to keep the convincence of having a system tray (hereby refered to as a Quick Launch toolbar) while not having it take up a lot of space on your taskbar... that's simple, too.

On your daddies taskbar, you'll notice two rows of small dots partitioning your quick launch toolbar from the rest of your taskbar. Imagine those dots as little handles, and drag them towards that big green thing right beside that plastic thing that the arrow pointer-majig won't go past (We'll start calling this 'the edge of the screen').

Holy SHIT!!!!1 Did the syst- err, Quick Launch get real small and an arrow appear at the end of it? Click that little motherfucker, and you get EVEN MORE SHIT TO LOAD!!

Ab-so-lu-ut-ly Amazin'

Glad I could pitch in, buddy.

Astral said...

i love it, just one problem... the icon doesnt show. how could i fix this?

Neil J. Patel said...

@carl: I hope to make a 0.1.1 release this evening, so I'll make some FC6 rpm's at the same time!

@erich: thanks!

@oleg: I'm not sure what you mean, it already highlights the text when you focus the entry (Ctrl-L).

@pieter: Thanks :X

@gwb: I can't guarentee it will work great, but you can try it out, and make bug reports for what doesn't work and I'll try and fix it :)

@brent: it has app launching! Just start typing the apps name, or description, and it will show you a list. The App backend is independant of Beagle/tracker, so its much faster.

Derek said...

Wow patrick that looks awesome. What icons and theme are you using in the backround?

Anonymous said...

Wow, linux has come a long way in...borrowing ideas from their competitors and trying to drum up excitement over it.

Alan Horkan said...

That screenshot does show both the quick launch and the system tray, both of which are crowded. Usually they would use those overflow/hidden widgets so as not to waste that much space. The main menu is only barely managable since most applications play fair but even then it can still be quite unweildy. Much as we might beseech developer we can depend on a design that relies on third parties playing fair though now can we?

The big traditional excuse for abusing the system tray is that applets do not work with KDE or anything else. That may not be your reason for doing it that way but it is a great excuse.

Anonymous said...

thanks for your work! I like your way to see the gnome and gtk development... plz implement this look by a patch in the gnome-panel! that would be cool!

Pensador said...

That is great!

Anonymous said...

I prefer KDE, the best desktop of the world

Patrick said...

@derek: background is from a Google search for 'orange' believe it or not! Theme is Human and icons are Dropline Neu!, both available from Gnome-Look.

gcb said...

and does it HAVE to look like vista's start meno?

Anonymous said...

neil: hehe, sorry - you can take the 'it rocks!' as read, if it wasn't great I wouldn't even be bothering commenting :)

i think for classical gnome-panel users implementing it as a button would be good. and yes, there should be a standalone mode, for instance for alternative panel users: think about any panel that acts like the Dock, you can just run affinity in standalone mode all the time.

-adam w.

p.s. Mandriva is in version freeze for our next release right now, but I or someone else will package this up as soon as 2007.1 is done :)

EnricoTuxMind said...

Excellent can you imagine these beautiful ideas ? it's a good work and you must keep fixing it, and bring some new ideas for GNOME 2.20..


Anonymous said...

This is a really nice app. keep up the good work. cheers from Maldives. u've got a new fan.

Anonymous said...

Ok, haven't read all above comments, but:
This file needs to be there, otherwise affinity crashes: ~/.gtk-bookmarks
(aff-sidebar.c l. 252)

-- Mark Gjøl /

Anonymous said...

In Ubuntu, we have a panel item called Deskbar... I think it does the same thing like affinity-search, i guess.

César said...

The Deskbar applet is available for any GNOME desktop, not only Ubuntu :P

Great work nj.

Jon said...

Great stuff! One suggestion: can you make it so when I right-click on the sys-tray icon the menu includes preferences? I'm sure there are many more profound things to add in, but...

mike jones said...

think i need to re-design the wiki hompepage, to make it show awn and affinity?

any ideas?

mayeb people can make homepage ideas on the wiki somewhere and i will make the best looking one the new homepage for the wiki.

Timon said...

A nice feature would be that the input field can also act the same as the run-dialog from gnome.
If so, it could replace the gnome-run-dialog, and you can easily start programs where you already know the exact name of.

Or it could be that affinity selects the "best result" out of the list while you're typing. On "Enter" it will open that file. It is much faster than to grab my mouse to click on the only (or best) result in the list.

mauro said...

Action Engine : Scanning /home/mauro/.gnome2/affinity/actions
Action Engine : Scanning /usr/local/share/affinity/actions
Application Engine : Scanning /home/mauro/.local/share/applications
Application Engine : Scanning /usr/local/share/applications
Application Engine : Scanning /usr/share/applications
Application Engine : Scanning /usr/share/applications/kde
Application Engine : Scanning /usr/share/applications/screensavers
Desktop Search Engine : Tracker

(affinity:11100): Gtk-CRITICAL **: gtk_icon_theme_load_icon: assertion `error == NULL || *error == NULL' failed

(affinity:11100): Gtk-CRITICAL **: gtk_icon_theme_load_icon: assertion `error == NULL || *error == NULL' failed

(affinity:11100): Gtk-CRITICAL **: gtk_icon_theme_load_icon: assertion `error == NULL || *error == NULL' failed
Segmentation fault (core dumped)

and now?

Phrodo_00 said...

Really nice, in fact, the box is working better than the one in the official tracker gui, I'm now kind of forcefully using it since in archlinux deskbar got kinf of broken after the upgrade to python2.5 (affinity-preferences did too, I think I'll need to take a look at that).
Is there a way (most likely for the distro package mantainer) to customize what the buttons in the right are for? (mainly because I made this package to the unsupported community repo and in arch we don't have a decent gui package manager so I might replace that for a terminal) I've even looked at the code yet I cannot find it (I still haven't finished learning gobject/gtk).
And now that I'm talking about the package... the main icon, the one besides the searchbox and all the ones in the bottom right have no icon... where does it looks for it? so I can package them altogether.
btw... this is the best blog in all gnome planet =)

seedslow said...

Wow, I'm surprised! It's exactly the same kind of prog I was playing around with the last days. Including the "keyword colon" filter thing ;-)

Thanks a lot!

Jack Kerouac said...

Nice updates to AWN and Affinity. I especially like the window previews.

Neil, are you planning on making the icons expand ala Mac Dock? I thought you were, but there were some issues. If so, any rough ETA on that?

Keep up the great work!

Daniel Maclean said...

Great stuff dude. Wonder if I could suggest a little feature, prob take you two seconds. Would it be possible to show the users login photo on the top right, i´ve made a quick mockup of what I imagine it to look like:

Patrick said...

Are you still alive?

Daniel Maclean said...

LOL, good question, i was wondering that too.

Mithras said...

This is a really cool app, but wondering too if you still developing on those great apps (affinity and awn).

The systray is indeed not a very good place. I'd rather like that it's possible to launch affinity with a shortcut. Like the gnome-launch-box for me does with Ctrl+space. It works very well, so i hope affinity will get this sort-of feature too.

And i have one bug/enhancement: running affinity and
"closing" the window doesn't quit affinity. If you launch affinity another time, you have two affinities in your systray. It'd be much better if the old affinity will popup, so you cannot launch it a second time :)

incon said...

Are you still alive?

Forbes said...


congratulations on the new job (I assume this is new for you).

I guess this is what has been keeping you busy the last coupole of weeks. Hope they don't distact you too much from your most important work ;)
Thanks for your great projects so far.

Anonymous said...

By the way, I have been looking up on the Internet and I have found some tools which are really cools to monitor the positioning of the competition, as well as seeing their tips and tricks. If you are interested, I advised to you have a look. It seems they are free:

drShop said...

WooW =)