Pidgin and GNOME3

GNOME3 comes with Telepathy/Empathy integration. However, I'm mainly a Pidgin user because Telepathy/Empathy lacks of per-account proxy settings. I always force my IMs to go through a proxy in VPN regardless where I am, but not for other apps, so telepathy/empathy is out of the equation.

Anyway , pidgin users who are like me, here is a little present for y'all.

Pidgin GNOME3 Integration Extension

Just copy the folder into your ~/.local/share/gnome-shell/extensions/ and restart your gnome-shell.

The extension utilize pidgin's dbus API, so it'll need pidgin to be running. I only did some rough test with it only on my Fedora 15 machine, but I believe it should work ok everywhere else.

Now for me to get some sleep XD.

Update: For some reason unknown to me, my git repos dissappeared from The code is now hosted here: To install, create a directory in ~/.local/share/gnome-shell/extensions, copy the 2 files into it and restart gnome-shell. Sorry for the broken link.


mether said…
Exactly what I was looking for. Thanks. However this open both a window in the messaging tray as as well as a full pidgin window. How do you avoid that?
yep that one is kindof an annoyance as pidgin doesnt have a background mode / standalone dbus server mode.

what i did is simply move all my chats to a different workspace

probably the auto-move-windows extension in the gnome-shell-extensions git might help in moving them automatically.
Elad said…
Makes pidgin crash...

yeah I noticed that this morning, apparently conversation references is 0 for a new chat window, causing pidgin to crash.

I just updated the code to trigger opening new popup when ConversationCreated instead of ReceivedImMsg.

Looks like its working here, hope it'll work there too

Thanks for testing!!
Bj√∂rn said…
commit 458704dc881997b7847013586809a709fadd6e7a still crashes here … :-(

need info on how to reproduce ..

btw .. i dont understand C coredumps, so the paste are not useful ..

what might be useful are the gnome-shell outputs in ~/.xsession-errors ..

anyway, i just pushed an update to the extension, it now uses pidgin.png as icon if theres no buddyicon for current chat .. pidgin crashed if the extension requested for icon with ID 0

that problem might have been related to yours ..
Anonymous said…
Thx Man. This plugin is great, but i have a little problem with it. I don't see the incoming messages in the notification window, just the text, what i wrote. Screenshot
What do you think? What could be the problem?

thats weird .. it doesnt happen here.. at first i thought its due to unicode, but i made it receive some japanese texts but that appears correctly.

can you figure out a way for me to reproduce?

try out different pidgin settings / different languages for example and see which works and which not ..
Anonymous said…

i've tested it with different protocols. I figures out that, the problem appears when i use the MSN protocol. The others, XMPP & ICQ is working fine.
I'll test with different languages as you told.

hurm ... can you try this?:

in extension.js, and replace _fixText function with

function _fixText(text) {
return text;

and see whether that makes any difference to you ?

i think i figured out the issue .. pidgin text returns html, but the notification expected valid pango markup. failure from the html to be valid xml caused the message to dissappear.

I've committed an update which strips out any html, we'll lose formatting though, but imo, the notifications doesnt need to be nicely formatted.
Anonymous said…
Awesome. Now it's working fine with every protocoll. The first thing didn't help, but the second one solved the problem. No matter the formatting, i hate it & turned off. Thank you.
Akila said…
Great work!! Now there is only one thing to be done. Integrate pidgin to session menu status change.
Anonymous said…
it works nice, and I got used to the two windows but one big problem: when you receive otr messages all is ok, but when you send them they are shown encrypted in the message bar ?OTR??? etc.
lesnoland said…
Well, I did not have enough time to study the code so this is a really sad patch, but long OTR messages are really annoying so basically if you add the following, to the _fixText function:

let _marker = text.substr(1,3);
if (_marker == "OTR") return 'OTR Encrypted'
return _text;

the OTR messages will be replaced with 'OTR Encrypted' which is more convenient.

The proper way would be to find a solution to get the clear text messages that are sent, and not the ecrypted ones, but I am not familiar with LibPurple, so a patch will still be needed because many people use OTR, also this will happen in gajim too, and probably Empathy if they even get to OTR soon.
lesnoland said…
I came up with a solution to the OTR problem which seems to work pretty good: replacing SentImMsg with DisplayedImMsg.

This will show the right messages because the displayed messages are not encrypted like the sent ones.
KageSenshi said…

cool, thanks for figuring that out

do you have a working patch? .. care to share?

i'm pushing the extension to the official gnome-shell-extensions git repo, hopefully it'll get in.

KageSenshi said…
erm .. @lesnoland, nvm about the patch, i got it working. Cleaning up the code as that signal allowed me to get rid plenty of code which are now irrelevant.

Thanks! :D
Nice work!! I was looking also to integrate the "availability status" with of Pidgin with Gnome 3. Do you know how to do ?

Leslie said…
I have tested the updated plugin but I needed to disable this:

// imports.gettext.bindtextdomain('gnome-shell-extensions', metadata.localedir);

Because I was getting an error in lg, it says:
Failed to evaluate main function: Error invoking bindtextdomain, at argument 2 (location): Object is not a string, cannot convert to UTF-8

This is a compatibility issue because I removed the '' from metadata.json or the extension will not start, if you set it to '3.0' it will. On Fedora 15b, and on ubuntu the gnome-shell version is not so the extension will not load by default.

I will still test it and tell you if something comes up.
jaimon said…
Thanks for sharing this extension. However, I don't see this getting loaded in my case. I'm using gnome-shell- I don't see any messages in the .xsession-errors either. Is there a way I can monitor the loading of this extension?
jaimon said…
Hi.. ignore my previous message. The problem was same as leslie's...

// imports.gettext.bindtextdomain('gnome-shell-extensions', metadata.localedir);

Because I was getting an error in lg, it says:
Failed to evaluate main function: Error invoking bindtextdomain, at argument 2 (location): Object is not a string, cannot convert to UTF-8

I found it through lookinglass...

thanks a ton for this extension...
David said…
This didn't work for me, I copied the files to the directory mentioned, what could it be?
Michael Hamann said…
I'm currently only getting a 404 error, some hours ago that link to the repository still worked and I've cloned it. If the repository won't come back online and you won't mirror it somewhere else and you have nothing against it I can upload the git repository (or at least the part of it for the gnome shell extension) on my github account.
Rudi K said…
As far as I can tell the link is dead:

git:// /

404 - No such project
Where did this code go? I'm really interested in trying it out!
Miaky said…
(sorry with my english)
I tried to install, but there is nothing package in fedorapeople git, there is another site?
Repeat, excuseme with my english
dsarel said…
Where's the extension?
Anonymous said…
The project isn't available anymore...anyone with the sources?
Anonymous said…
Your Git repo is empty? Where can I find download link?
Alant said…
hmm. git repo is missing, where I can find it now ?
Noel said…
Hi there, it seems your link no longer works? Following your link gives me a 404. I cloned the official gnome-shell-extensions git and it didn't contain your plugin either.
Brian said…
Has this code been moved somewhere else? The git repository no longer exists.
Tom Hughes said…
The URL you gave doesn't seem to exist anymore - is this still available somewhere?
Anonymous said…
The link is dead.
Would be nice if you could post a new link.
sljk said…
Link no longer works. Please fix.
Anonymous said…
Thank you for the extension but the link seems to be broken
KageSenshi said…
Hi all,

sorry been away for a while, a bit too busy with $dayjob.

Yeah seems like the link is broken, i'm not sure what happened with fp.o/git but anyway i've pushed this to github.

The hack-patches repo is at

still wondering what happened with fp.o/git that caused my repos to disappear.
Roadhouse said…
This is great but has anyone figured how to stop pidgin from opening a window yet?
Szabo's screenshot shows the ability to reply in the notification window, which is exactly what I want...however, I'm only getting a "show" button, no reply possibility. Does that functionality only work on Fedora (I'm running Ubuntu)
Anonymous said…
i wonder if i do everything right, i got notifications but not the text box to chat, that is it?

how can i get the the chat shell?
l3nkz said…
Hi guys,
this extension is really nice, but I've a question. Is it possible to disable this icon which is shown in the notification array? Because while chatting with 5 people I have 5 icons in the notification array which really sucks. But all in all I love this extension.
Anonymous said…
Thank you for your code. It works perfectly on fedora 15.
surf4 said…
very nice extension! thank you very much! i looked all over the internet to find this :D
Anonymous said…
When the extensions is about to be initiated, I get this error:
"TypeError: TelepathyClient.Notification is undefined"

I'm using gnome-shell 3.1.3, what could be the cause?
El Cattivo said…
To stop pidgin from opening it's own conversation window, go to Preferences -> Interface and set Hide new IM conversations to Always.
Anonymous said…
Thank-you for this been missing im messages all week now its fixed yeh!!!!!!
om said…
Just what I was looking for! This actually works better than I could have hoped. Being able to mouse over and respond right from the notification is awesome.

I had to adjust the version number in the metadata.json file, and then it started working beautifully.

Thanks a bunch. I like how the comments work on your blog too, very nice.
Anonymous said…
doesn't work on linux mint 12 rc1 :(
Anonymous said…
any way i can install this in my home dir?
Anonymous said…
does it work with 3.2? I have followed the instruction and copied to extensions folder. Still I am getting only status change notification (when a user goes offline/online). No message notification or reply option like I get with empathy.
Anonymous said…
cool.. it works now. I didnt know the folder name in .local/share/gnome-shell/extensions and the UUID name should match. after renaming the folder to UUID name, it started working.
John Glotzer said…
I have an issue that I found a workaround for but I haven't seen mentioned. And it doesn't happen each time. Unlike the folks that want to use the shell Window I prefer to use the old fashioned pidgin window but still get my notifications via the extension. When I do this it can *sometimes* happen that it's totally impossible to type any input into the actual Pidgin window of the incoming message (altho the Gnome Shell Window works fine). But ... if I right-click in the pidgin window and select "Input Methods" and select the option that is *already selected* which is "System(Simple)" I can work around this issue. Seems more like a Pidgin issue than an extension issue but only happens when using the extension.

Popular posts from this blog

Tee'ing Python subprocess.Popen output

Consolidated community site infrastructure on Plone

Adding simple popup to Plone frontpage