How I got started with Pidgin
Tags: opensource, history
Published: 2023-06-02 14:00:00

> This article was originally posted on [Patreon](https://www.patreon.com/posts/how-i-got-with-79612315) and has been brought over here to get all of the [Pidgin](https://pidgin.im) Development/History posts into one single place.

I often get asked how and why I started working on Pidgin. The story is pretty simple, but like most of these posts, I've never put it into words, so that's what we'll be doing today.

In the summer of 2003, I was at a point where many Windows users would find themselves often. At the time, and I presume still now, you'd have to reinstall Windows from scratch every six months or so to keep your machine running decently. I'm not sure exactly what the issue was, but the results were night and day. You'd shut your machine down that was taking forever to do anything, reinstall Windows which would take all day, and then boot up into a fresh copy that legitimately felt like you just bought a brand new machine.

While trying to plan out when I was going to give up a day to do this, I remembered just hearing about this new live Linux distribution named [Knoppix](https://en.wikipedia.org/wiki/Knoppix). At the time, Linux hardware support wasn't great, so installing onto a machine was a risky endeavor, but Knoppix changed all that, as you could just boot from it and leave your existing machine intact. So that's precisely what I did!

Knoppix took a while to boot as it was looking for every single piece of hardware that could be there and load the proper driver for it. But after a few minutes, I was presented with a KDE 2 desktop!

I had been using Linux as a server for years and my attempts at getting a desktop running always fell flat. But now I had hope. I could see with my own eyes that the machine I was running could in fact run a Linux desktop without issue. So instead of reinstalling Windows XP, I installed [Debian Woody](https://wiki.debian.org/DebianWoody) instead.

This may seem counter-intuitive as I knew Knoppix worked, but Knoppix was based on Debian at the time which meant that while there might be some work involved, I knew from Knoppix that it could be done. It took longer than a Windows reinstall would have, but I was okay with that at the time and I'm very glad today that I made that decision.

However, now that I was a Linux Desktop user, that meant I needed to find Linux versions of the software I was using on Windows. This was easy for some things as I was already using the Mozilla browser and GIMP on Windows, but I was a heavy [AIM](https://en.wikipedia.org/wiki/AIM_(software)) user at the time so I had to find a replacement there.

But it wasn't just AIM that I was missing, I also used a plugin for AIM called [DeadAIM](https://en.wikipedia.org/wiki/DeadAIM), that removed advertisements, added logging, and more importantly added toaster style popups for events like friends signing on and receiving messages. So all of those things were a requirement for whatever would replace AIM for me.

I don't recall which clients I all tried, but I'm fairly sure I tried [Kopete](https://en.wikipedia.org/wiki/Kopete) as I was running KDE, but I think I also gave [Everybuddy](https://en.wikipedia.org/wiki/Ayttm) a try as well. But as you may have guessed I eventually tried Gaim and went, this is my AIM replacement! One of the big reasons for that, believe it or not, was that the logo in the about box had a parody of The Matrix of which I am a huge fan! This was the logo between versions 0.63 and 0.64 and can be seen below.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bke1h1w86pp4szeswwl8.png)

So I had found the client, now about those features. As an Open Source project, Gaim didn't put advertisements in because, why would they? It's not like they would be getting the ad revenue. So that was cool. As for logging, Gaim had that built in too, score! However, toaster popups were another story.

There were a number of plugins for toaster popups, but none of them quite gave me what I wanted. I can't recall the specifics, but I remember trying one that was written in Perl, and it was close, but I really didn't want to write Perl even back then, so I kept searching.

Unfortunately, I couldn't find anything existing that I liked, so I wrote my own plugin. I named it Guifications because it was a graphical user interface for notifications. In other words a really bad portmanteau before I even knew the word portmanteau. But the name worked, it was unique and made sense.

I spent a lot of time working on Guifications, polishing it to a point most people wouldn't have including drawing icons for everything in the preferences were I thought it would help. I even put together a pack of background images for the notifications for all operating systems, including all of the big UNIXes. And then on October 29th 2003, I released version 1.0.0. Guifications 1.x would see 10 more additional releases over the next few months before Guifications 2.0 was released in August of 2004.

During that time I had gotten quite involved with Gaim development in general. I'd hang out in the IRC channel and chat with everyone discussing everything including bugs and features. When I ran into bugs I originally would create issues in the issue tracker, but then realized, well these will get fixed a lot faster if I just fix them myself.

So that's what I started doing and in less than a year from starting to use Gaim, I had been promoted to a [Crazy Patch Writer](https://dev.to/grim/pidgin-developer-tiers-3g6j)! You can see the commit from March 22nd 2004 [here](https://keep.imfreedom.org/gaim/gaim/rev/e87aa1283c96). And then on April 25th 2004, I was promoted to a full blow developer with commit access as well. You can see my first commit where I moved from name from the CPW section to the Developer section [here](https://keep.imfreedom.org/gaim/gaim/rev/1dcaa41612f6). The story of how I became the lead developer is a bit too long to include in this post, so we'll save that one for another post.

I hope you're enjoying these posts! Remember they go live for patrons at 9AM CST on Mondays and go public at 12AM CST on Thursdays! If you'd like to support my work, you can join find a list of ways to do so [here](https://imfreedom.org/donate/#gary-kramlich).