Trac is being migrated to new services! Issues can be found in our new YouTrack instance and WIKI pages can be found on our website.

Help home > FAQ home

Installing Pidgin

Windows Specific

Is there a way to install Spell-checking support manually?

Yes, if the installer isn't able to successfully download and install the dictionaries, you can do so manually.

Versions 2.7.0 and newer use the dictionaries available from the openoffice extension download site. You need to download the appropriate language extension file(s) (files are openoffice extensions *.oxt, which are just zip files that contain additional data). Once you have downloaded a dictionary extension file, you can rename it so it has a .zip extension and then extract the *.dic and *.aff files in it to <Pidgin Installation Directory>\spellcheck\share\enchant\myspell\ (create the directories if they don't exist already).
If Pidgin is running, it will need to be restarted for new dictionaries to be recognized.

Versions older than 2.7.0 use Aspell; you can download both the Aspell core and a dictionary from the win32 Aspell website.

Unattended Installations

The pidgin installer can be run in a "silent" mode by using the following syntax:

pidgin-x.y.z-offline.exe /DS=1 /SMS=0 /L=1033 /S /D=C:\Pidgin

The /L flag sets the language (Windows LCID) used by the installer, as well as Pidgin itself. The /D flag, if specified, sets the installation directory; it must be the last parameter used in the command line and must not contain any quotes, even if the path contains spaces. You may omit both the /L and /D flags and use the defaults which are 1033 (English) and %PROGRAMFILES%\Pidgin respectively. The /DS and /SMS flags can be used to enable or disable the Desktop and Start Menu Shortcuts. You'll want to use the "offline" installer to do this.

What should I do if I get a Download Error while installing?

The installer will, if necessary, download and install the GTK+ Runtime (which is needed for Pidgin to run). If you need to use a proxy server to connect to the Internet, it is possible that the Pidgin installer will not be able reach the resources it needs.

The Pidgin installer automatically checks for proxies configured in Internet Options. If you know what your proxy settings are, you can configure them by opening the Internet Options directly, or by opening Internet Explorer and selecting Tools > Internet Options > Connections > LAN Settings.

Alternatively, you can download and use the "offline" version of the installer, which is a larger download, but can install the GTK+ Runtime without downloading it separately.

Can I run Pidgin on Windows98/ME?

The last version of Pidgin that will run on Windows 98/ME is 2.6.6 and you will need to download the standalone GTK+ 2.6.10 runtime installer and install it separately before installing Pidgin. These old Pidgin and GTK+ versions are unmaintained and will have bugs that won't be fixed.

How do I build Pidgin for Windows?

The Windows build instructions are here.

Packages

Are the packages signed? If so, by whom, and how can I get the key?

Yes, all packages are signed. The signature for the tarball and bzip2 archive are provided by separate downloads. The RPMs we provide are signed Stu Tomlinson. The keys can be obtained from any key server. http://pgp.mit.edu/ is popular. (There is also a more extensive answer on this question here.)

Can I run Pidgin on IRIX?

Sure, but the amount of effort required is dependent on the compiler you use; there is, however, no official support.

  1. GCC (tested with 3.4 on IRIX 6.5.29): All but one necessary change has been included in Pidgin's source. GNUTLS will not be included by default, even if the necessary libraries and headers are available; to add SSL support, open the configure script in your favorite editor and replace all instances of "-lnsl" with "-lnsl -lgnutls". Ask no questions. :-) It Just Works. Mozilla NSS/NSPR was not tested.
  2. MIPSPro CC (tested with 7.4.4m on IRIX 6.5.29): This is less trivial due to this compiler being much more strict about ANSI compliance. Some unofficial patches have been known to float around that apply the changes mentioned above for GCC, among others necessary to silence errors. You will need to disable the Zephyr protocol plugin.

Note that Jabber can crash Pidgin when using TLS. This is a bug in GNUTLS that may or may not have been fixed.

Can I run Pidgin on HP-UX?

You can. It has been done with GCC 4.1.1 on HP-UX 11.11, however, there is no official support. The configure scripts that ship with the official releases are unfortunately incompatible with the linker on this system, but by checking the tag out of version control and running autogen.sh you will end up with a usable build tree. Make sure to configure without the GTK+ and GLib tests, as well as without the X screensaver extension. No source hacks are needed.

Can I run Pidgin on Mac OS X?

Yes you can, but we do not provide a package for it. The reason being that in order to use Pidgin on Mac OS X, you need to install GTK+ and other libraries, which we are not prepared to support. You can either compile Pidgin (and its dependencies) yourself, or you can use the fink installer available from http://fink.sf.net. If you would like a native Aqua interface or a user-friendly installer, we suggest trying Adium, available at https://adium.im/.

Where do I get libgtkspell.so.0?

Most people asking this are trying to install our RPMs by hand on their system. libgtkspell.so.0 is provided by the gtkspell package. Most modern RPM-based distros have tools such as yum that can install this for you automatically; alternatively you can find a generic SRPM suitable for rebuilding with rpmbuild on GTKSpell's site.

Why are there no packages (.deb, .rpm) for my system?

See the WhyPackagesExist wiki page for a complete answer to this question.

Compiling

I have the source; how do I build this thing?

Assuming you have all of the necessary libraries (sudo apt-get source pidgin and libgtk) and their headers installed (see the next few questions), you compile libpurple, Pidgin and Finch just like most applications:

% tar xjvf pidgin-2.x.y.tar.bz2
% cd pidgin-2.x.y
% ./configure && make && sudo make install

This will install libpurple, Pidgin and Finch to /usr/local. If you want to install it elsewhere, pass --prefix=/some/other/prefix to ./configure. (You really don't want to install it to /usr.) See ./configure --help for other options you can change at compile-time.

If you got the source tree from our Mercurial database (which you probably shouldn't have), you'll need to run ./autogen.sh instead of ./configure the first time around. If you get an error like the following, you may need a newer version of automake.

running /usr/bin/automake -a -c --gnu... failed.
Makefile.am:79: directory should not contain `/'
pidgin/pixmaps/Makefile.am:4: directory should not contain `/'

If you are trying to compile on Windows, you need the answer to a different question.

Why can't I compile Pidgin?

You're probably missing some dependencies. The configure script will tell you when you are missing required dependencies. Remember that if you're using an RPM-based (RedHat Enterprise Linux, CentOS, SUSE, Mandriva, etc.) or Debian-based system (Debian, Ubuntu, etc.) that having just a library's package installed is not sufficient--you must also have the -devel (RPM systems) or -dev (Debian-based systems) package for each library installed. If configure is succeeding, but make fails, this is harder to diagnose and you will probably want to drop by the IRC channel or XMPP conference listed on PidginCommunity to get help.

How do I install the dependencies on Debian or Ubuntu?

You need to install the development headers; these are the -dev packages. A simple apt-get build-dep pidgin (or if you're on an older release which doesn't have a pidgin package, apt-get build-dep gaim) will find and install all of the required header packages for you.

If apt-get build-dep fails with a message like

E: You must put some 'source' URIs in your sources.list

then you need to add deb-src lines to your /etc/apt/sources.list corresponding to each of the deb lines already there. If editing configuration files scares you, Ubuntu has a "Software Sources" control panel in System -> Administration which has some magic checkboxes to do this for you.

How do I install the dependencies on Fedora (or similar)?

RPM-based distribution users may find yum-builddep pidgin-VERSION.src.rpm useful if a source RPM is available and the distribution uses the yum tools.

Note that the 'yum-builddep' command is in the 'yum-utils' package, which is not necessarily installed by default.

How do I apply the patch "something.diff"?

Type patch -p0 < something.diff from the top level of the source directory (pidgin/, not pidgin/pidgin/ or pidgin/finch/). If that does not work, try patch -p1 < something.diff.

Is there a way to compile without some protocols?

There are actually two ways:

  1. Run ./configure with the --with-static-prpls with --disable-plugins. This will let you choose which protocols to include by specifying them as a comma-separated list, such as the following (but note that you won't be able to use any other protocols or plugins)
    ./configure --disable-plugins --with-static-prpls="oscar yahoo"
    
  2. Use the --with-dynamic-prpls option to ./configure by specifying a comma-separated list, like so:
    ./configure --with-dynamic-prpls=aim,icq,yahoo
    

Can I compile just Finch, not Pidgin?

Sure. Pass --disable-gtkui to ./configure.

How do I compile with SSL support?

I have OpenSSL; why isn't Pidgin using it?

See FAQssl

I installed the latest version but the About box says I'm still using the old version!

If you compiled the new version yourself, it's likely you had a distribution package (RPM, deb, ebuild, etc.) installed prior to building but did not remove it. You should remove that package using your package manager.

If you compiled the old version yourself, run make uninstall from the old source tree. If you didn't keep that around but you remember the exact arguments you gave the configure script, you can download the source for the old release, configure it exactly the same, then run make uninstall.

Why do you always say not to use the Mercurial repository?

That's a long story. For starters, the Mercurial main branch is frequently unusable because of changes in the code. Bugs are introduced during the development process and are hopefully fixed before a release is made. It is often the case that Pidgin main exhibits bad behavior due to features and bugfixes which are in a transitory state or which are not yet well understood. These bad behaviors range from the harmless (maybe a graphical glitch in a dialog box) to the irritating (a particular protocol may not work), to the downright damaging (recently a bug in the repository destroyed the user's buddy lists). While behaviors like this are acceptable to some users (particularly developers, who are used to such things), they tend to cause many Pidgin Mercurial users to contact Pidgin developers and report the same (usually egregious) bug over and over - using time which could be better spent fixing the bugs.

A second major point involves public resources - an hg pull is not a cheap operation. As many SourceForge users are aware, at various points in the past few years SourceForge CVS has been less than pleasant to work with. This is, of course, because SourceForge hosts thousands of useful and active projects which use[d] CVS as a primary method of source code collaboration. Unfortunately, when too many users are poking around in that CVS just for the sake of poking around, it prevents other users who are trying to do work to improve those very same projects from accomplishing their tasks. Naturally, this could easily become true of our Mercurial offering as well. It is better for the community if an enterprising individual wishing to fix a particular bug [s]he has seen can get to the code and create a patch, even if this means that some users have to wait a few weeks for the next release to see what new features it might hold.

The third point is not a problem which has yet come up, but it is in the back of the mind of the developers who bring you Pidgin. As a third-party IM client, Pidgin is not a priority (and indeed may be an irritant) for the IM service providers. We do our best to keep Pidgin playing nice and being friendly on the IM networks it uses; however, at times there are bugs in the protocol support. If a few dozen people are using this buggy client, the IM providers are not likely to go out of their way to do anything about it. However, if hundreds of people are pointing an ill-behaved client at an IM server, the server administrators may be forced to take action. (This is particularly likely if the buggy behavior is damaging in some way.) Pidgin releases represent code which the Pidgin developers feel is relatively well-behaved and stable. This includes not only the interface seen by Pidgin users, but the traffic seen by IM service providers. Pidgin Mercurial bears no such guarantees.

In short, there are a lot of good reasons to not use Pidgin Mercurial if one does not wish to develop Pidgin, Pidgin plugins, or a codebase which interacts with Pidgin in some intimate way. There are, however, only a few reasons to use Pidgin Mercurial outside of the above. Please weigh these things carefully and decide whether you wish to use Pidgin Mercurial for a good reason which furthers the community, or for selfish reasons which are not entirely important.

How can I get Pidgin to report idleness based on keyboard and mouse usage?

You will need to install the libxss-dev package. Check with your distributions package manager for the exact package name. The package name given here is for Ubuntu/Debian. Without this package, it only allows you to report idleness based on when you last sent a message.


Help home > FAQ home

Using Pidgin

  1. Getting Started
    1. How do I use Google Talk/Jabber/XMPP, ICQ, or any other protocol?
    2. How do I register for a new account?
  2. Buddy List, Buddy Icons (Avatars), and Blocking
    1. How do I set a buddy icon or avatar?
    2. A friend of mine uses my favorite episode of The Young and the …
    3. How can I unblock someone?
    4. Why are the status icons so big?
    5. Can I make buddy list entries smaller?
    6. Can I import or export my buddy list?
    7. Why are my logs combining the logs of several of my buddies?
    8. Where did my buddy go? I just tried to change its group and it …
    9. Can I group buddies by their owner, like Trillian's or Miranda's …
    10. I grouped my buddies into contacts, can I control which one is selected?
    11. Why are protocol icons not displayed in the buddy list and …
    12. How do I remove a buddy from my buddy list?
    13. What do the icons next to my buddy mean?
  3. Statuses
    1. How does Pidgin decide which saved statuses to show in the status selector?
    2. How can I delete an auto-saved status?
    3. Why are no states listed when I go to set a state for Auto Away?
  4. Voice and Video (Microphone and Webcam) Support
    1. Does Pidgin support voice or video?
    2. When will voice and video be implemented on Windows?
    3. Does Pidgin support libjingle?
    4. How do I configure my microphone/webcam?
    5. When will voice and video be implemented on other protocols?
    6. Why can't I do a video call with the GMail client?
  5. Spell Checking
    1. How do I change the language for the Highlight Misspelled words option?
  6. Smileys (Emoticons)
    1. Does Pidgin support animated smileys?
    2. How do I use/make smiley themes?
    3. Can I save custom emoticons as animated gif?
    4. Why did my smiley theme disappear after I upgraded Pidgin?
  7. Look & Feel
    1. How do I change the look and feel?
    2. Can I "skin" Pidgin?
    3. How do I change the font Pidgin uses? The background color?
    4. Can I make Pidgin transparent/translucent?
    5. Can I make Pidgin or its instant message windows always stay on top?
  8. Chat rooms (Conferences)
    1. How do I create a chat room?
    2. How do I join an (existing) chat room?
    3. Can I still see messages in a chat if I close the window?
    4. How do I hide all those "User entered the room" and "User left the …
    5. What do the icons next to my buddy mean?
  9. Keyboard Shortcuts
    1. What are the default keyboard shortcuts (key bindings)?
    2. How do I make Enter make a newline and Ctrl+Enter send?
    3. How do I make Pidgin use emacs-like keybindings?
    4. How do I bind keystrokes to menu items?
    5. How do I make Escape close conversation windows?
  10. Sound (Windows)
  11. Sound (Linux and Unix-like platforms)
    1. How do I get sound to work correctly?
    2. How do I make Pidgin use ALSA or OSS for playing sounds?
    3. What does the "Automatic" option do?
  12. Proxy and Connection Settings and Problems (Windows)
    1. Why can't I connect? My firewall is configured to allow Pidgin access.
    2. What does "Windows socket error #10060" mean, and how do I fix it?
    3. Can Pidgin use my Windows (IE) Proxy Settings?
  13. Proxy and Connection Settings and Problems (Linux and Unix-like platforms)
  14. Running Windows Pidgin From a USB Drive (Portable Mode)
  15. Running Linux Pidgin From a USB Drive (Portable Mode)
  16. Crashes and Bugs
    1. What should I do if Pidgin crashes?
    2. Why does Pidgin crash when I start it?
    3. Pidgin <non-current-version> is buggy. Why?
    4. Pidgin from Monotone is buggy. Why?
  17. Miscellaneous (All platforms)
    1. What is a gtkrc file and where can I find it?
    2. Can I change the height of the text input area?
    3. How can I enter non-ASCII characters? (like Windows' Alt+###)
    4. What happened to my timestamps? Can I change them?
    5. What is a "Buddy Pounce"?
    6. Can I use Pidgin for e-mail, blogging, RSS feeds, social networking, …
    7. Pidgin beeps whenever I press backspace, how do I disable that?
    8. Can I turn the tray icon off?
    9. What do those colors in the conversation tab mean?
    10. I get "accept/reject certificate" prompts all the time. What do I do?
    11. I forgot my password, how do I change it?
    12. How do I recall IMs I have previously sent to the edit area (like …
  18. Miscellaneous (Windows)
    1. How does Pidgin for Windows determine which language to use?
    2. How do I change the language of Pidgin?
    3. Where are my settings and data (including logs) saved?
    4. Where is my .purple directory?
    5. How do I run multiple instances of Pidgin on Windows?
    6. Why does searching in the Buddy List stop after the first character is …
    7. Pidgin crashes when I have php installed and in my Path, why does this …
    8. How do I make Pidgin start when Windows starts?
    9. How can I change my GTK+ Theme?
  19. Miscellaneous (Linux and Unix-like platforms)
    1. Where are Pidgin's settings and logs?
    2. Why does Pidgin use the same WM_CLASS for every window?
    3. Pidgin doesn't remember which plugins I have enabled between restarts
    4. How do I setup Pidgin on the Nokia N900?

Getting Started

How do I use Google Talk/Jabber/XMPP, ICQ, or any other protocol?

Use the Account Editor (Accounts->Manage Accounts) to add the account of the appropriate messaging service. Use the checkbox in the account editor to enable the current account.

For Google Talk, fill in the Domain field with the domain of your Google Mail e-mail address. For most users this will be gmail.com or googlemail.com, but Google Apps for Your Domain users will use their domain instead.

How do I register for a new account?

This depends on the protocol.

Buddy List, Buddy Icons (Avatars), and Blocking

How do I set a buddy icon or avatar?

We call all user pictures, avatars, etc. buddy icons. There are two ways to set one for yourself:

  • Global - This will affect all of your accounts. On the Buddy List window, beside the status selector at the bottom, there is an area that will have a generic photo icon if you have no icon set. You can click that and select an icon from there. The icon will take effect for all accounts you have configured in Pidgin.
  • Per-account - This will affect only the account you modify. Go to Accounts->your account->Edit Account. On that dialog, check the box labeled "Use this buddy icon for this account:", then click the leftmost button below that checkbox. Select your buddy icon.

Some protocols impose a maximum file size on the icon or certain dimensions or certain file types. Pidgin will try to resize and convert the icon as needed to fit within the constraints of a given protocol. Sometimes this fails and shows you an error message. If you experience problems, you may want to try resizing the icon yourself before setting it.

The following dimension guidelines are believed to be accurate as of June 2007:

ProtocolDimensionsFormatFile Size
ICQ1x1 to 64x64gif, jpg, bmp, ico7168 bytes (7.0KB)
XMPP (including Google Talk)32x32 to 96x96png

Pidgin itself (for the chat window) will scale icons up or down to 32x32 for display in the buddy list and the infopane. In general, to maintain the aspect ratio, you should begin with a square icon.

A friend of mine uses my favorite episode of The Young and the Restless as her buddy icon, but I can't quite make it out in the infopane. What do I do?

The easiest thing to do is ask your friend to put it up on YouTube or some equivalent service. Alternatively, you could buy it on DVD, if available. The mouse-over tooltip on the infopane also has her full-size buddy icon, for a quick fix. Additionally, clicking the icon in the infopane should also enlarge it.

How can I unblock someone?

See the "Privacy" option under the "Tools" menu in the Buddy List.

Why are the status icons so big?

Can I make buddy list entries smaller?

We believe that, by adding a second line of text to each buddy list entry, we're able to show more information about each buddy on the buddy list. The "Big List," as we call it, shows status text and idle time concisely and attractively. Most importantly, it puts the buddy icon in the list, making it far easier to locate buddies within a large list where names are harder to pick out than images. Due to the increased usability of this interface, we have made it the default.

We are aware that some people feel more comfortable using an interface more similar to IM clients they may have used in the past. The 'Big List' can be disabled by un-checking "Show buddy details" in the Buddies menu.

Can I import or export my buddy list?

Not with Pidgin alone, but the Purple Plugin Pack provides the List Handler plugin, which adds some importing and exporting capabilities.

Why are my logs combining the logs of several of my buddies?

It's likely you have inadvertently combined some buddies into contacts when you did not intend to do so. To correct this you need to find which contact the logs are associated with. Right-click that entry in the buddy list and click Expand. Drag out the buddies that do not belong in the contact.

Where did my buddy go? I just tried to change its group and it disappeared!

You inadvertently created a contact from two buddies. Hover over each buddy in the destination group and watch the tooltips that appear. You'll see the "missing" buddy in one of them. Right-click that entry in the buddy list, click Expand, and then drag the buddy that does not belong out to the group. Watch the buddy list carefully; a bar will appear to show you where the buddy will go if you are in the right location.

Can I group buddies by their owner, like Trillian's or Miranda's Metacontacts?

Sure! Right click a buddy on your list and at the bottom of the menu click "Expand". Then just drag other screen names to the same person below it. When you're done, click on the arrow to collapse them. When the contact is collapsed, Pidgin will select a buddy to display based on the status of the buddies in the contact, and their order.

If you use the Alias function, by either highlighting a buddy and pressing F2 or right-clicking and selecting "Alias...," when two or more buddies in the same group are aliased to the same name, Pidgin will prompt you to automatically merge them together into one contact.

I grouped my buddies into contacts, can I control which one is selected?

Yes and no. Pidgin uses an algorithm to determine which buddy is selected. If you right click on a contact and select expand, you can see an ordered list of the buddies in that contact. Pidgin will pick the highest/topmost buddy that is most available. It computes which is most available as follows:

  1. It will start at the top looking for a buddy that is "present" and not idle. If it finds one, it will use that.
  2. If it did not already find one, it will then start at the top looking for a buddy that is away but not idle. If it finds one, it will use that.
  3. If it has not already found one, it will start at the top of the list looking for a buddy that is idle but not away. If it finds one, it will use that.
  4. If it has not already found one, it will start at the top of the list looking for a buddy that is both away and idle. If it finds one it will use that.
  5. Lastly, if all of the buddies are offline, it will pick the top buddy. Ideally it would search the list one more time, looking for a buddy that is offline, but on a protocol that supports offline messages. This has not, however, been implemented yet.

With this search pattern, you should be able to drag the buddies in that contact into an order that will yield reasonable results for that contact most of the time. While this will be sufficient for most people most of the time, we recognize that a small minority of users may need to control things more precisely. In the source tarball there is a plugin, contact_priority, that does not install by default. If installed and loaded, this plugin allows for some modifications to the algorithm that Pidgin uses. Specifically, you can weight certain accounts to be either more likely to be chosen or less likely to be chosen. This cannot, however, be done on a per-buddy basis with the existing plugin.

Why are protocol icons not displayed in the buddy list and conversation windows any more?

See Sean's blog entry on the subject for the rationale behind this change. However, as of Pidgin 2.2.0 you can add protocol icons to the buddy list with Buddies-> Show->Protocol Icons. The convbadger plugin from the Purple Plugin Pack adds protocol icons to conversation windows.

How do I remove a buddy from my buddy list?

Right-click the buddy and click Remove.

What do the icons next to my buddy mean?

IconMeaning
https://bytebucket.org/pidgin/main/raw/488174c9765735f3565967fcaf08bfa1dea36306/pidgin/pixmaps/emblems/16/blocked.pngYou are blocking this user
https://bytebucket.org/pidgin/main/raw/488174c9765735f3565967fcaf08bfa1dea36306/pidgin/pixmaps/emotes/small/16/mobile.pngYou may send SMS text msgs to this buddy's mobile device by right clicking on the buddy and choosing 'Send to Mobile'
https://bytebucket.org/pidgin/main/raw/488174c9765735f3565967fcaf08bfa1dea36306/pidgin/pixmaps/emotes/small/16/music.pngThis buddy has the musictracker plugin installed or is playing music on Windows and has 'Now Playing' enabled to show to their buddies
https://bytebucket.org/pidgin/main/raw/488174c9765735f3565967fcaf08bfa1dea36306/pidgin/pixmaps/emblems/16/external.pngThe buddy is logged in using a web interface to chat
https://bytebucket.org/pidgin/main/raw/488174c9765735f3565967fcaf08bfa1dea36306/pidgin/pixmaps/emblems/16/bot.pngThis user is a bot

Statuses

How does Pidgin decide which saved statuses to show in the status selector?

Pidgin shows six "popular" saved statuses in the status selector. These are your six most recently used statuses, offset by a weight. Pidgin sorts all your saved statuses by the timestamp when they were last used. And then, for each time you've used a status, the timestamp is increased by one day.

If you are upgrading from 1.x or lower, Pidgin is unable to determine which are the most popular states, as these older releases did not save that information. As a result, the initial contents of the menu will be somewhat random. It will settle over the first few uses of (distinct) states into the behavior described above.

How can I delete an auto-saved status?

Hover over the status and hit delete.

Why are no states listed when I go to set a state for Auto Away?

Pidgin can only use saved states for Auto Away. You need to create and save a named state first.

Voice and Video (Microphone and Webcam) Support

Does Pidgin support voice or video?

Yes, Pidgin does support voice and video, but this is limited to Unix-like platforms and the XMPP protocol (including GoogleTalk).

When will voice and video be implemented on Windows?

Libpurple depends on Farsight 2 and GStreamer to provide VV support. These libraries already work in Windows. The Pidgin build process needs to be updated appropriately to enable the functionality. Patches to make this happen are welcome.

Does Pidgin support libjingle?

Yes, both GMail and GTalk implementations should work.

How do I configure my microphone/webcam?

Currently, the command-line gstreamer-properties program is used. This is only available on GNOME-based systems. On other systems, Pidgin makes its best guess as to which device to use. A plugin is planned to support this functionality on other systems.

When will voice and video be implemented on other protocols?

We plan to implement these features, but it is a daunting task. The time available to the developers who work on these features is limited, and so any work on these features proceeds slowly.

In short, we have no idea when this will happen. It could be tomorrow, or it could be in 2099. That's really the best answer we can give right now.

Current information on the status of this progress can be found on the vv and GSoC2008/VoiceAndVideo pages.

Why can't I do a video call with the GMail client?

Interoperation with the GMail client requires you to have the H264 GStreamer codec installed. You can find these in gst-plugins-ugly and gst-ffmpeg. For debian based systems that's gstreamer0.10-plugins-multiverse and gstreamer0.10-ffmpeg.

Spell Checking

How do I change the language for the Highlight Misspelled words option?

If you have a new enough version of GtkSpell, the text input area's context menu will have a Languages submenu that will allow you to choose a language from the list of dictionaries you currently have installed.

There is also a simple plugin called switchspell that can change the spell check language on a per-buddy basis.

Smileys (Emoticons)

Does Pidgin support animated smileys?

Yes, but there is a bug which can cause animation to be lost if Pidgin has to resize the image. Also, only the most recent 20 emoticons are animated.

How do I use/make smiley themes?

See the page on smileys.

Can I save custom emoticons as animated gif?

Yes, in version 2.6.0 and later.

Why did my smiley theme disappear after I upgraded Pidgin?

Smiley themes should be installed to the user's .purple directory, not in the location Pidgin is installed to. This means that you install smiley themes only to %APPDATA%\.purple\smileys (if you're using Windows) or ~/.purple/smileys (if you're using Linux/*nix). Additions to or removals from Pidgin's installation location will be lost during an upgrade.

Look & Feel

How do I change the look and feel?

Can I "skin" Pidgin?

The UI can be customized using GTK themes and by Smiley Themes. Application-specific skins will never be supported by Pidgin. This seems to confuse a lot of users, so here's an attempt at an explanation.

Themes allow you to change font size, font face, the color of different elements of the UI, and sometimes their shape. All of this is perfectly reasonable, and encompasses the range of configuration that most users are requesting. Skins go beyond this. Skins allow you to move and possibly suppress different elements of the UI that the programmers have added for specific reasons.

In so doing, skins create a support nightmare. The developer, talking to the user, cannot be sure that the user sees the same interface. Is it a bug that the user cannot see how to change font size, or is the user's skin suppressing that widget? This is an unacceptable situation.

Conversely, while themes allow some silliness, for instance setting the background to the same color as the font, the results are relatively easily foreseen and avoided by theme authors. Further, by using the existing GTK theme mechanism, we gain two advantages:

  1. We don't have to write it ourselves. Were we to write our own mechanism, we would be adding overhead in both the run time and the time necessary to debug.
  2. We have a built in way of debugging theme problems, by checking if the same bug exists with other GTK programs.

Lastly, since GTK themes only allow acceptable modifications, we do not have to worry that a user isn't seeing part of the UI because it is either showing or not showing because of our code.

Themes and information on using them can be found at http://themes.freshmeat.net, http://art.gnome.org, or by searching on your favorite search engine, such as Google.

How do I change the font Pidgin uses? The background color?

The font preference in Pidgin applies only for the formatting of outgoing messages on those protocols which support said formatting. The display fonts used by the rest of Pidgin are those specified by GTK+, the toolkit we use to create the user interface. If you're using Gnome, you can change these in System ⇒ Preferences ⇒ Appearance ⇒ Fonts; the font used for conversations is the document font, while the rest of Pidgin uses the application font.

If you're not running Gnome and want to change the fonts used, you need to edit your ~/.gtkrc-2.0 (or ~/.purple/gtkrc-2.0) file. On Windows, see this FAQ entry for the location of the gtkrc file. If that file does not exist, simply create it.

As an example, you can put this into .gtkrc-2.0 to change the font size for all GTK+ applications:

# Sets the font used by all gtk applications.
gtk-font-name = "Verdana 9"

Alternatively, you can do this to change the font size for other elements:

# This is the style section.  You need this for the examples below.
# If you are going to copy the example, copy the entire block,
# including the "{" and "}" lines.
style "imhtml-fix"
{
    font_name = "Sans 10"
}

# This will apply the font style just shown to various components.
# If you are going to copy the example, copy the line that does
# what you want.

# Conversation entry box--where you type.
widget "*pidgin_conv_entry" style "imhtml-fix"

# Conversation history pane--where you read the conversation.
widget "*pidgin_conv_imhtml" style "imhtml-fix"

# Log viewer--where you read stored logs
widget "*pidgin_log_imhtml" style "imhtml-fix"

# formatting-capable entry areas (IMHtml widgets) in request dialogs
widget "*pidgin_request_imhtml" style "imhtml-fix"

# formatting-capable notification areas in dialogs (again, IMHtml widgets)
widget "*pidgin_notify_imhtml" style "imhtml-fix"

Background colors can be changed similarly, by finding the correct widget names and setting appropriate bg elements. Other widgets in Pidgin can be controlled in a similar manner. For example, to change the background color for a group, do something similar to the following:

style "NoPidginGroupColor"
{
    bg[ACTIVE]   = "#FFFFFF"
}

widget "*pidgin_blist_treeview" style "NoPidginGroupColor"

If you want to change the background and foreground colors of your conversation windows, try something like this:

# Create a style called "inverted" where the text and base (the base color behind the widget) are the reverse of typical.
style "inverted"
{
   text[NORMAL] = "#FFFFFF"
   base[NORMAL] = "#000000"
}

# Apply "inverted" to conversation entry box--where you type.
widget "*pidgin_conv_entry" style "inverted"

# Apply "inverted" to conversation history pane--where you read the conversation.
widget "*pidgin_conv_imhtml" style "inverted"

You could also switch GTK+ themes. Themes and information on using them can be found at http://themes.freshmeat.net, http://art.gnome.org, or by searching on your favorite search engine, such as Google.

Can I make Pidgin transparent/translucent?

Windows:
You can make Pidgin translucent in most versions of Windows using the "Transparency" plugin that ships with Pidgin for Windows. A user has also recommended the freeware Windows utility, PowerMenu which can to make any window translucent.

Linux & other *nixes:
It is not yet possible to make Pidgin translucent in Linux and other platforms that use X11.
The X.org X11 server provides a COMPOSITE extension that allows applications to have true translucency, but it is X.org-specific and it requires support at the GTK+ level (if it is to be per-widget). Support for this is apparently scheduled for inclusion GDK 2.12, but we are not currently interested in implementing support for it (note that a plugin could provide this functionality). Pseudo-translucency offered by other programs (by copying a section of your background image, tinting it, and plastering it onto a window) will never be implemented in Pidgin.
Note that if you are using a compositing window manager such as Compiz, you may have global support for modifying the opacity of any window. For example, in Compiz, the default method to changing the opacity of a window is Alt+Mouse Scroll Wheel. This method does not require extra support from the applications.

Can I make Pidgin or its instant message windows always stay on top?

Windows: If you just want the buddy list to remain above other windows, you can dock it to the side of your desktop using the "Windows Pidgin Options" plugin and set the "Always On Top" option accordingly. The "Transparency" plugin is capable of making your conversation windows stay on top. Both plugins are included with Pidgin.

A user has also recommended a freeware Windows utility called PowerMenu, which can set any window to be 'Always On Top' and may provide additional flexibility.

Unix-like platforms: Please consult your window manager's documentation.

Chat rooms (Conferences)

How do I create a chat room?

IRC, XMPP/Jabber, ICQ
These protocols use named chat rooms. In order to create a chatroom, you need to use the "Join Chat Room" dialog and choose a room name that is still free. Some XMPP servers also let you create chat rooms with random room names using the buddy list's context menu.

SIP/SIMPLE
This protocol doesn't support chat rooms.

How do I join an (existing) chat room?

Option 1: ask someone to invite you
Ask someone who is in the chatroom to invite you.

Option 2: join by room name
use Buddies > Join a chat room in the buddy list window

Option 3: Use the room list
In the tools menu, there is an option that shows you a list of chat rooms that you can join. Please note that this feature doesn't work with all IM networks. Most networks hide rooms from the list that their owner doesn't want to have listed.

Can I still see messages in a chat if I close the window?

Yes. Pidgin has a persistent chat feature, where you will remain in a chat room even if you close the window. When you open the window again, all the messages that were sent are still there as if the window had been open the whole time.

To make a chat persistent, add it to your buddy list, then right click and choose "Persistent" from the context menu.

How do I hide all those "User entered the room" and "User left the room" messages?

Load the "Join/Part Hiding" plugin from the plugins dialog. You can then configure it to hide these messages on rooms larger than a specified size, or when the user joining/parting has been idle for longer than a specified period of time.

What do the icons next to my buddy mean?

IconMeaningIRCXMPP
https://bytebucket.org/pidgin/main/raw/488174c9765735f3565967fcaf08bfa1dea36306/pidgin/pixmaps/emblems/16/founder.pngFounderFounder (~ or +q)Owner
https://bytebucket.org/pidgin/main/raw/488174c9765735f3565967fcaf08bfa1dea36306/pidgin/pixmaps/emblems/16/operator.pngOperatorOperator (@ or +o)Moderator
https://bytebucket.org/pidgin/main/raw/488174c9765735f3565967fcaf08bfa1dea36306/pidgin/pixmaps/emblems/16/half-operator.pngHalf-OperatorHalf-op (% or +h)-
https://bytebucket.org/pidgin/main/raw/488174c9765735f3565967fcaf08bfa1dea36306/pidgin/pixmaps/emblems/16/voice.pngVoicedVoice (+ or +v)Participant

Keyboard Shortcuts

What are the default keyboard shortcuts (key bindings)?

See this wiki page for a list.

How do I make Enter make a newline and Ctrl+Enter send?

Locate or create your gtkrc-2.0 file and insert:

binding "my-bindings"
{
    bind "Return" { "insert-at-cursor" ("\n") }
    bind "<ctrl>Return" { "message_send" () }
}
widget "*pidgin_conv_entry" binding "my-bindings"

How do I make Pidgin use emacs-like keybindings?

Locate or create your .gtkrc-2.0 file and insert the following:

gtk-key-theme-name = "Emacs"

You will need to restart Pidgin when you have finished. Note that this will affect other GTK+ applications as well.

How do I bind keystrokes to menu items?

Locate or create your gtkrc-2.0 file and insert:

gtk-can-change-accels = 1

After coercing Pidgin into rereading this file (for instance, by restarting it), you can hover over a menu item and hit the keystroke you want to bind to it, and your wish will be granted! (You might want to turn off gtk-can-change-accels again when you're done, since it's pretty easy to bind keys by mistake with it turned on.)

To remove a binding completely hit 'Backspace' while hovering over the menu item.

If you're using a recent enough Gnome, you can instead open the Appearance preferences applet, switch to the Interface tab and toggle Editable menu shortcut keys. In older versions of Gnome, use gconf-editor to set the /desktop/gnome/interface/can_change_accels key instead (which is what happens in newer Gnomes behind the scenes anyway). You don't need to restart Pidgin if you take the gconf path.

If you're using Xfce 4, you also need to have Editable menu accelerators checked in your User Interface Preferences.

In the event that all these methods fail, the file ~/.purple/accels may be edited directly.

How do I make Escape close conversation windows?

As of 2.4.2 this option is included by default. The option is under Tools ⇒ Preferences ⇒ Interface Tab.

Sound (Windows)

There are no known issues with sound on Windows.

Sound (Linux and Unix-like platforms)

How do I get sound to work correctly?

Pidgin uses gstreamer to play sounds. Playing sounds directly through esound or arts is no longer supported. To compile Pidgin with support for gstreamer you need libgstreamer0.10-dev and its dependencies. These packages are named differently on different platforms. If you do not wish to install these packages you can also just change your sound playing method in preferences to Command and use esdplay %s, artsplay %s, aplay %s, or play %s.

How do I make Pidgin use ALSA or OSS for playing sounds?

What does the "Automatic" option do?

The "Automatic" option lets gstreamer pick how the sounds are played. You can use the gstreamer-properties tool to control this if you use GNOME.

Proxy and Connection Settings and Problems (Windows)

Why can't I connect? My firewall is configured to allow Pidgin access.

We've had a lot of problems with various firewalls, particularly Norton Internet Security (and Symantec Client Firewall). Many firewalls will not fully stop interfering with a program's ability to connect when configured to do so.

For Norton Internet Security, a workaround that seems to work is to add the following ports to the global HTTP Ports list:

  • 5222 -> XMPP (including Google Talk)
  • 5190 -> ICQ
  • 6667 -> IRC

The Mozilla folks maintain a good Windows Firewall information resource here.

What does "Windows socket error #10060" mean, and how do I fix it?

This is a horribly obtuse error message which simply means that Pidgin was unable to connect to some remote host, probably the IM server you were trying to use. This is almost never a problem with Pidgin or its configuration; generally it indicates a network problem, firewall problem, or NAT/router problem. If you are running a Windows firewall product, check the appropriate FAQ question for possible solutions.

Can Pidgin use my Windows (IE) Proxy Settings?

Yes, if you set the proxy preference to "Use Environmental Settings", Pidgin will parse the HTTP Proxy setting from Windows as long as you have a specific server set; auto-detection and configuration via .pac URL do not work, nor do proxy bypass settings.

Proxy and Connection Settings and Problems (Linux and Unix-like platforms)

There are no known *nix-specific network issues.

Running Windows Pidgin From a USB Drive (Portable Mode)

N.B.: Instead of performing the following steps, you can also download a portable version of Pidgin from http://portableapps.com/apps/internet/pidgin_portable or from http://portable-pidgin.de/ which are neither maintained nor supported by the Pidgin project, but don't require the setup described herein.

It is relatively easy to set up Pidgin to run from a USB drive. Most of Pidgin is very good about not assuming that it is installed; a slightly customized launcher makes it all come together nicely.

N.B.: With the setup described in this guide, other GTK+ applications can use the same GTK+ runtime.

Preparation

  • create a temporary folder structure (e.g. in C:\tmp):
    • extracted
    • extracted\GTK
    • extracted\Pidgin
    • portable
    • portable\GTK
    • portable\Pidgin
  • download the zipped binaries of Pidgin (pidgin-<version>-win32-bin.zip) and GTK+ (gtk-runtime-<version>.zip)
  • extract these archives to extracted\GTK and extracted\Pidgin, respectively

Pidgin

  • copy (or move) everything except the following folders from extracted\Pidgin to portable\Pidgin:
    • plugins\perl (former perlmod)
    • spellcheck
  • delete (or rename) perl.dll and tcl.dll in portable\Pidgin\plugins
  • language
    • if you do not want to use a language other than American English (en_US), delete the entire portable\Pidgin\locale folder
    • otherwise, delete all except the desired languages' folders (e.g. en_GB or fr) from portable\Pidgin\locale
  • spell-checking
    • if you do not want to use spell-checking, delete libgtkspell.dll from portable\Pidgin
    • otherwise, copy the spellcheck directory that was skipped earlier and follow these instructions to install one or more dictionaries.
  • rename portable\Pidgin\pidgin.exe to portable\Pidgin\pidgin-portable.exe - this will cause Pidgin to run in "portable mode"

GTK+

  • copy (or move) everything except the following files and folders to portable\GTK:
    • extracted\GTK\share
    • extracted\GTK\manifest
  • language
    • if you want to use a language other than American English (en_US), copy the appropriate extracted\GTK\share\locale\<language> folders to portable\GTK\share\locale.
  • theme
    • choose any GTK+ theme from share\themes (usually MS-Windows)
    • copy the theme's gtkrc file from extracted\GTK\share\themes\<theme>\gtk-2.0 to portable\GTK\etc\gtk-2.0, replacing the existing file

Now you can move the entire portable onto your USB drive (e.g. U:\). Running U:\portable\Pidgin\pidgin-portable.exe will cause Pidgin to run off the USB drive, saving all settings, logs etc. to U:\portable\.purple.

Upgrading Pidgin Portable

In order to upgrade Pidgin portable to a new version, simply download the latest zipped binaries and follow the steps described in the Pidgin section above.

Semi-Automatic Upgrade

The following batch script takes care of removing unneeded Pidgin files as described above.

Do not use this unless you understand what it is doing!

: preparation: download http://sourceforge.net/project/downloading.php?group_id=235&filename=pidgin-<version>-win32-bin.zip

set TMPDIR=tmp_%RANDOM%_%RANDOM%
cd pidgin-*-win32bin && ^
echo remove unused modules && ^
rmdir /S /Q plugins\perl && ^
del plugins\perl.dll plugins\tcl.dll && ^
echo keep only relevant locale (here: DE) && ^
set TMPDIR=tmp_%RANDOM%_%RANDOM% && ^
mkdir %TMPDIR% && ^
move locale\de %TMPDIR% && ^
rmdir /S /Q locale && ^
mkdir locale && ^
move %TMPDIR%\de locale && ^
rmdir /S /Q %TMPDIR% && ^
echo disable spell-checking && ^
rmdir /S /Q spellcheck && ^
del libgtkspell.dll && ^
echo activate portable mode && ^
move pidgin.exe pidgin-portable.exe && ^
echo SUCCESS || ^
echo ERROR

PAUSE

Another shorter script that has similar results

::Download the latest GTK and Pigin win32 zip files and extract into the same folder.
:: This script will do the rest
::As seen @ http://pastebin.com/ggmKQWKt
MOVE pidgin* pidgin
REN pidgin\pidgin.exe pidgin\pidgin-portable.exe
RMDIR /s /q pidgin\plugins\perl pidgin\plugins\locale\
DEL pidgin\plugins\perl.dll pidgin\plugins\tcl.dll
RD /s /q gtk\share\ gtk\manifest gtk\share\locale

Running Linux Pidgin From a USB Drive (Portable Mode)

This should be possible somehow, but it's not tested and not documented.

Crashes and Bugs

What should I do if Pidgin crashes?

Follow the instructions here to submit a bug report.

Why does Pidgin crash when I start it?

Here are some things to try:

  • Make sure you are running the most recent version of Pidgin.
  • Make sure only one version of Pidgin is installed. On UNIX-like systems, whereis pidgin can be helpful for this.
  • Make sure Pidgin is not already running. In recent versions, if an instance of Pidgin is already running then a new instance will not start without specifically forcing it. You can check the process list on your operating system or look for the "System Tray" or "Notification Area" icon.
  • If you are running a UNIX-like system, try "export GDK_USE_XFT=0" in a terminal, then run Pidgin from the same terminal.
  • Disable or remove any third-party plugins, especially those related to encryption.
  • If disabling third-party plugins doesn't help, disable all plugins.
  • If you are on Windows, deleting tcl.dll from the Pidgin install directory may prove helpful.
  • If none of these help, read TipsForBugReports.

Pidgin <non-current-version> is buggy. Why?

Pidgin from Monotone is buggy. Why?

Non-current versions have old bugs which may be fixed in the current version--that's why we make new releases. Monotone is frequently unusable because of changes in the code. Bugs are introduced during the development process and are hopefully fixed before a release is made.

Miscellaneous (All platforms)

What is a gtkrc file and where can I find it?

The windowing toolkit that Pidgin uses, GTK+, is configurable via a text file.

  • There is a global file:
    • On Windows, it is found in the etc\gtk-2.0 directory your GTK+ Runtime install directory (<Pidgin Installation Directory>\Gtk, by default).
    • On Linux and other *nixes, it is found in /etc/gtk/.
  • There is also a per-user file (named .gtkrc-2.0) in your user's home directory, the location of this varies according to the OS you're using and the configuration.
    • For Windows, entering %USERPROFILE% in your Windows Explorer address bar will take you to the right directory (probably something like C:\Documents and Settings\username).
    • For Unix-like platforms, it is /home/username.
    • If you have the HOME environment variable set, it will override the default per-user file location on all platforms.

Note that Windows Explorer will not allow you create a file that starts with a period; you'll need to use a text editor or rename the file in a cmd shell.

  • There is also a pidgin-specific file that is located in the configuration directory.
    • %APPDATA%\.purple\gtkrc-2.0 on Windows
    • ~/.purple/gtkrc-2.0 on Unix-like platforms

It is recommended that you edit your per-user file or the pidgin-specific file instead of the global file as the global file will be replaced when GTK+ is upgraded.

Can I change the height of the text input area?

You can't manually resize the text input area, nor disable auto-resizing. The area auto-resizes up to a height of half the window height before the scrollbar appears.

How can I enter non-ASCII characters? (like Windows' Alt+###)

Entering character codes works differently in GTK+; press Ctrl+Shift+u and then type the Unicode number (in hexadecimal) with Ctrl and Shift held down. GTK+ 2.10.0 and later versions do not require Ctrl and Shift to be held down while typing the number. For example, Alt-164 would become Ctrl+Shift+u, f1.

What happened to my timestamps? Can I change them?

As of 2.0.0, timestamps follow the system locale. This is a significant difference from previous versions of Pidgin, and though it was requested more than once, we know it will prove to be a controversial decision. Fortunately for all of you out there, we also provide plugins to change it.

The two plugins we provide are the Timestamp plugin and the Message Timestamp Formats plugin. Timestamp allows you to have iChat style timestamps, but it is implemented to behave slightly differently. The Message Timestamp Formats plugin allows you to manipulate the timestamps in a couple different ways, such as restoring 24-hour timestamps and/or causing all timestamps to have dates in them.

What is a "Buddy Pounce"?

Pidgin introduced buddy pounces a few releases before AOL came out with "Buddy Alerts." Despite this, you could think of a buddy pounce as an alert and get an idea of the most minimal use of a buddy pounce. In reality, a buddy pounce is much like a macro, or a recorded action. When you set a pounce on someone, you can choose from a number of events, such as sign on or status change, and then you choose from a number of actions. These actions include everything from playing a sound (like an alert would do) to sending a message to the person, to executing a command. This action will occur the next time pidgin detects the event, i.e. the next time the person in your buddy list who you have pounced signs on.

No, you can't. We get requests for this often, but Pidgin is indeed a messaging client. Aside from the capabilities each protocol may support, the Pidgin developers have no intention to turn Pidgin into a multi-feature Internet client capable of doing everything under the sun. We also won't be helping to develop plugins to turn it into that. There are many Internet applications available for Linux, Windows, or whatever operating system you use that would undoubtedly do a better job.

Note that LiveJournal provides an XMPP messaging service which makes it possible to make entries to your blog via IM, no matter what XMPP-supporting IM client you use.

Pidgin beeps whenever I press backspace, how do I disable that?

This is a GTK+ setting and can be disabled by setting

gtk-error-bell = 0

in your gtkrc file.

See Bug #3683 for further information.

Can I turn the tray icon off?

Yes. By default the tray icon will load if you have a Notification Area or a System Tray in your desktop environment. Look at the Interface tab in Tools->Preferences. Change the 'System Tray Icon' setting to 'Always', 'Never', or 'On unread messages' as you prefer.

What do those colors in the conversation tab mean?

  • Red - A message is waiting for you in a chat that does not contain your name
  • Blue - Someone (in one-on-one IM) sent you a message or (in chats) said your name/nickname
  • Green - The buddy is typing
  • Yellow - The buddy began typing, and then stopped
  • Gray - There has been a join or a part in that chat, or the buddy has signed off

I get "accept/reject certificate" prompts all the time. What do I do?

This may mean that the Pidgin root certificate set is incomplete. If so, we'd like to hear about it. Do the following:

  1. Accept the Certificate
  2. Go to Tools->Certificates
  3. Select the relevant server and export the certificate to a file.
  4. File a ticket. Attach the exported certificate, and specify which protocol you are connecting to, as well as the server the certificate is for.

I forgot my password, how do I change it?

Pidgin is an IM client, not an IM service. You need to change your password with the IM service (e.g., ICQ), probably on their web site. We cannot help you with this.

If you have a working Pidgin install set to log on automatically on another computer, you may be able to find your account password in accounts.xml in your Pidgin configuration directory. The location of this directory is discussed elsewhere in this portion of the FAQ, in the Miscellaneous group for your specific platform.

How do I recall IMs I have previously sent to the edit area (like command history)?

Press ctrl+up.

Miscellaneous (Windows)

How does Pidgin for Windows determine which language to use?

For the user who installed Pidgin, the language selected during installation will be the default. This can be overridden by setting the PIDGINLANG environment variable (for example, PIDGINLANG=de). If neither of these are specified, it will fall back to the default Windows user locale setting.

Note that if the translation for the specified language isn't present, Pidgin will fall back to the English default. See below for how to install additional translations.

How do I change the language of Pidgin?

  1. Install the translation using the installer if it is not already installed. To do this, select the appropriate 'Localization' component from the 'Components selection' screen. You will have to select the ISO-code (the "Alpha-2 code" from this table) of the desired language. Once this is done, you should see the installed translations in the locale subdirectory of the directory where you installed Pidgin(%ProgramFiles%\Pidgin by default) - there will be one folder per language.
  2. Select the language of your preference setting the PIDGINLANG environment variable (add it if it isn't already there) to the ISO-code of the desired language. (Start > Settings > Control Panel > System > Advanced > Environment Variables)
  3. Restart Pidgin

Where are my settings and data (including logs) saved?

Where is my .purple directory?

Data is stored in your user's "Application Data" directory in a .purple subdirectory. The location of this will vary according to your setup and version of Windows.

  • For Windows, entering %APPDATA% in your Windows Explorer address bar will take you to the right directory
    • It will be something like C:\Users\username\AppData\Roaming\.

This can be overridden by setting the PURPLEHOME environment variable.

You can add/set the PURPLEHOME environment variable for your system in Start > Settings > Control Panel > System > Advanced > Environment Variables.

Logs are stored in a subdirectory called logs.

How do I run multiple instances of Pidgin on Windows?

Pidgin will, by default, prevent multiple instances from running simultaneously. You can override this restriction by defining the PIDGIN_MULTI_INST environment variable or by specifying the -m command line parameter. If you do this, you may find the -c parameter useful to specify unique configuration directories for each instance (e.g. -c c:\home\.pidgin-alt).

Why does searching in the Buddy List stop after the first character is typed?

Some GTK+ versions prior to 2.12.12 (shipped with Pidgin 2.5.2) have a bug that causes this behavior.
See Bug #4966 for information about this issue.

Pidgin crashes when I have php installed and in my Path, why does this happen?

See these tickets: #7750, #7875, #7853

How do I make Pidgin start when Windows starts?

Enable the Windows Pidgin Options plugin and check the Start Pidgin on Windows startup checkbox.

How can I change my GTK+ Theme?

As of version 2.7.0, Pidgin ships with a private GTK+ runtime and doesn't include extra themes or a GUI theme switching application.

There is an easy way to use the GTK+ theme binaries and theme switcher that Alexander Shaduri maintains. Note that we don't recommend you use the GTK+ installer he distributes unless you know what you're doing and have a good reason for doing so.

Download the GTK+ Themes and GTK+ Theme Switcher zip files and extract them to a temporary directory.

Copy the lib and share directories from the GTK+ Themes zip file into your <Pidgin Installation Directory>\Gtk directory (you want to merge those with the existing lib and share directories). Copy the gtk2_prefs.exe from the GTK Theme Switcher zip file into your <Pidgin Installation Directory>\Gtk\bin directory.

You can now run the gtk2_prefs.exe applications to choose a theme. You probably will want to use the "Apply for all users" checkbox so that the changes are made to Pidgin's private GTK+ runtime.

Note: If you had previously set up a user-specific GTK+ theme with the global GTK+ Runtime, you will need to delete or rename the %USERPROFILE%/.gtkrc-2.0 file in order to have your changes take effect.

Miscellaneous (Linux and Unix-like platforms)

Where are Pidgin's settings and logs?

Because Pidgin is a libpurple client, it stores its settings and logs in ~/.purple.

Why does Pidgin use the same WM_CLASS for every window?

Both strings in the WM_CLASS property are supposed to be the same for all windows in the same instance of an application. ICCCM states that one is meant to be the same for all instances of the application and the other is meant to be unique to that instance of the application. ICCCM also states, "If a client has multiple windows with identical WM_CLASS and WM_NAME properties, then it should provide a WM_WINDOW_ROLE property."

GTK+ sets these WM_CLASS values for us so that they are unique for Pidgin instances, and the documentation for the gtk_window_set_wmclass function says explicitly not to use it for anything else. Pidgin uses the WM_WINDOW_ROLE hint to differentiate windows. If your window manager is having problems differentiating between Pidgin windows, please ensure it uses the WM_WINDOW_ROLE hint per the ICCCM.

Pidgin doesn't remember which plugins I have enabled between restarts

Ubuntu Gutsy shipped a broken /etc/purple/prefs.xml for a while which caused this problem. See this bug report for information on the problem and how to fix it.

How do I setup Pidgin on the Nokia N900?

View simple how-to.


Help home > FAQ home

Using Libpurple

Why do libpurple clients store settings and logs in ~/.purple?

When creating libpurple under a separate name from Pidgin, the first client to use it, we were faced with a choice. We could have Pidgin store in ~/.pidgin, Finch in ~/.finch, and any other future clients in ~/.clientname. This would create significant duplication for those who sometimes use different clients, or who migrate from one client to another but do not remove the old directory. It would also make things like logs more complex, as there would be no built-in single place to store logs. Someone using both Pidgin and Finch, or migrating from Pidgin to Finch (or back), no doubt expects all of their logs to be read by both. The other alternative was to have all libpurple based clients use ~/.purple by default. Though the client author can naturally chose some other directory, having this as a default seems to make the most sense. Much of the content of ~/.purple would be usable by any libpurple based client, and those things that are not useful to all clients can be detected and ignored using the existing API. While we have not yet handled the case of running multiple libpurple based clients at the same time (as the same user, and not using a -c flag or equivalent), we plan to in the future.

Why are passwords not encrypted?

See PlainTextPasswords.

Is file transfer supported?

Somewhat. Sending and receiving files is currently supported on:

  • ICQ (hard limit of 4 GB)
  • IRC
  • SILC
  • XMPP (Jabber)

Most protocols support file transfer, but libpurple doesn't support it yet. If you would like the file transfer support to work better or be more complete, grab the source and submit a patch!

There is currently no working plugin to encrypt file transfers, so even if you are using a encryption plugin, your file transfers are not encrypted.

How do I compile libpurple with SSL support?

See FAQssl

Which protocols support now playing status?

Currently only the following protocols support seting the "current song"/"Now Playing" status.

  • XMPP (Jabber)

Help home > FAQ home

Using Finch

Getting around

Abbreviations

M-<chr> means hold the META or EDIT or ALT key down while typing <chr>. If there is no META, EDIT or ALT key, instead press and release the ESC key and then type <chr> in quick succession.

How do I switch between windows?

You can press M-n/M-p to go to the next/previous window, or M-N where N is 1-9. You can also press M-w to bring out a list of all the windows. In the window list, you can select a row and press return to go to that window.

How can I close a window?

Press M-c.

How can I show a window's menu?

The default key-binding is F10. Note that not all windows have a menu.

How can I pop up a widget's context menu?

The default key-binding is F11.

Can I change the bindings? How?

Yes! For details on how to do this, read 'man finch'. Here's a small example to show how to rebind alt+ctrl+n to switch to the next window: In ~/.gntrc, add

[GntWM::binding]
c-a-n = window-next

Note that, the default binding alt+n will continue to switch to the next window. If you want to unbind that, add

[GntWM::binding]
a-c-n = window-next
a-n=

To see the list of available rebindable actions for the focused widget, press "alt+/".

How can I enable the mouse?

In ~/.gntrc, set mouse = 1 under [general] as well as under [Finch]. If you use screen or tmux, read more.

If I enable the mouse, I cannot select text from the terminal any more.

When the mouse is enabled, hold shift to use your terminal's mouse selecting.

My arrow keys are not working. What can I do?

Make sure there is a correct terminfo setting for your terminal. For example, try setting $TERM to "screen" instead of "screen.linux".

How do I see the parts of a large window that fall below the screen?

Press M+ctrl+j to scroll down, and M+ctrl+k to scroll up.

Is there anything else I change in ~/.gntrc?

In 'man finch', look at the 'general', 'colors' and 'colorgroups' sections in the sample ~/.gntrc.

Buddy List

How can I add a buddy, or a chat, or a group?

  • Select a group in the buddylist.
  • Press F11 to bring out the context menu. Select "Add Buddy" or "Add Chat".

How can I auto-join a chat?

  • Select the chat in the buddylist.
  • Bring out the context menu. Select 'Auto-join'.

How can I expand/collapse contacts?

  • Select the contact and press Space.

How can I move buddies/chats into another group?

  • Select the buddy/chat you want to move in the buddylist.
  • Press 't' to tag the buddy/chat. You can tag more than one buddy/chat at the same time if you want.
  • Select the buddy/group you want to move the tagged buddies to.
  • Press 'a' to attach. The buddies will be attached to the selected contact. The chats will be attached to the current group.

How can I show offline buddies?

  • In the buddylist, press F10 to bring up the menu.
  • Select 'Options' | 'Show' | 'Offline buddies'

I closed the buddylist. Can I get it back again?

Yes! Press M-a to bring out the actions menu, select 'Buddy List'.

Conversations

In chats, can I see the list of users in the chatroom?

Yes. Use the /users command. (after 2.0.0. Until then, press tab and all the users will be presented in the tab-completion dropdown)

In a conversation with a contact, can I select which buddy the message is sent to?

Yes. Bring out the menu for the conversation window. Select the buddy from the 'Send To' menu. (after 2.0.0)

Can I select multi-line texts/urls from a conversation window?

Yes. First, enable the mouse. Then click+drag the mouse to select the text. This will copy the selected text into the internal clipboard. You can then press alt+shift+c, which will show the text from the internal clipboard at the top of the screen. You can then select the text using your terminal's mouse selecting. Press M+shift+c to close the clipboard container.

Others

Accents are not working properly. How can I fix it?

It seems that this is a bug that developers are trying to fix (See Bug #2504), but there is a workaround changing an environment variable:

export TERM=screen

Alternatively, you can append this to your .bash_profile file, log out and log in again.

Is there a pounce/debug/file-transfer/preference/plugins/status window?

Yes! Press M-a to bring out the actions menu. Select the window you want to see.

How do I get the mouse working in screen or tmux?

You can do a bunch of things with the mouse in finch (after putting "mouse = 1" in ~/.gntrc), including selecting text over multiple lines in conversation windows, which is hard to do with the mouse selection in your terminal - so having the mouse enabled in finch can be advantageous. For at least a few people, screen is missing the kmous capability entry in its terminfo. Here's how to add it:

From the terminal in which you run screen, and while not in screen:

infocmp | sed -n 's/.*\(kmous=[^,]\+\).*/\1/p'

(from what I've read, for this to work in ncurses, the value "must" be "\E[M"?) Within screen:

infocmp > tmp

Open tmp and add the kmous entry from above, save and close and do:

tic tmp

For tmux users, please note screen uses the same terminfo description as tmux does.

In screen, when I press esc, there is a huge delay, how can this be reduced?

Finch adds its own small delay after pressing esc, to allow pressing esc then <whatever> in quick succession for alt-X shortcuts where your alt key may be missing. Screen also does this, so to avoid having both applications add the delay: maptimeout 0 into ~/.screenrc Alternatively, type C-a :maptimeout 0 while in screen.

MacOS X Terminal.app

Can I use Finch with Terminal.app?

Only if you use OS X Leopard (10.5). The Terminal in previous versions of OS X does not properly emulate a terminal and cannot render Finch correctly. There are a couple of notes to be aware of:

  • I (rekkanoryo) have had the best results by configuring Terminal to identify as rxvt. To do this, select Preferences from the Terminal menu. Click the Settings icon, then select the Advanced button. Select rxvt from the "Declare terminal as:" list.
  • Although it appears to be the default, verify that Terminal is configured to use UTF-8 for encoding. To do so, select Preferences from the Terminal menu, then click the Settings icon, then select the Advanced button. Under International, make sure "Unicode (UTF-8)" is selected from the Character encoding list. Also ensure "Set LANG environment variable on startup" is checked.
  • Thus far, the Terminal.app instructions have been tested only by using ssh to log into a remote Linux machine with Finch installed. We have not yet tested Terminal.app with a copy of Finch built for OS X.

On OS X 10.4 (Tiger), and with a copy of Finch built for OS X, one can get better results running Finch inside screen instead of directly in Terminal.app.

How can I use the "meta" shortcuts listed above?

In Terminal, select Preferences from the Terminal menu. Click the Settings icon, then select the Keyboard button. Check the box labeled "Use option as meta key".

Page Up and Page Down don't work right. Can I fix it?

Yes. By default, Terminal.app uses Page Up and Page Down to scroll through the scrollback, as you would by using the scroll bar at the side of the window. You can change this to scroll through the conversation history in Finch, which has the side effect of working as a correct Page Up and Page Down in vim and other terminal-based applications. To do so:

  1. Select Preferences from the Terminal menu.
  2. Click the Settings icon, then select the Keyboard button.
  3. In the list of keys, find "page up" and click Edit.
  4. In the Action list, select "send string to shell:", then click in the entry box right below it.
  5. Press the esc key, then type [5~. You should now see \033[5~ in the entry box.
  6. Click OK.
  7. In the list of keys, find "page down" and click Edit.
  8. In the Action list, select "send string to shell:", then click in the entry box right below it.
  9. Press the esc key, then type [6~. You should now see \033[6~ in the entry box.
  10. Click OK.

Note that by following these directions, you will no longer be able to use Page Up and Page Down to view normal terminal history (such as output generated from running scripts, commands, etc.), so you will now have to use the scroll bar or a mouse's scroll function to scroll through it.


Help home > FAQ home

Protocol Specific Questions

  1. ICQ (OSCAR) Protocol
    1. Can I set my profile?
    2. I just changed my buddy icon and I can't see the new one!
    3. Can I send SMS messages?
    4. Can I add SMS numbers to my buddy list?
    5. Why do my buddies' messages display incorrectly?
    6. Why do I get the error "Unable to connect to BOS server"?
  2. IRC Protocol
    1. How do I join a channel?
    2. Is there a way to make Pidgin automatically authenticate/identify me …
    3. Can I hide messages from NickServ, ChanServ, etc. on login?
    4. How do I identify myself with a buddy pounce?
    5. How do I send a message to a user or bot on login?
    6. Can I automatically join channels on login?
    7. Is it possible to change the user name that appears in username@hostname?
    8. How can I set/change my real name?
    9. Why does text display incorrectly?
    10. How can I hide join/part messages?
  3. XMPP (Jabber) Protocol
    1. Setting up XMPP accounts
      1. Does Pidgin support Jabber?
      2. Where is the difference between Jabber and XMPP?
      3. Does Pidgin support Nimbuzz, Web.de Messenger, GMX Messenger or 1&1 …
      4. How do I choose which XMPP server to use or configure an XMPP account?
      5. What is the "Resource" field for in the account editor?
      6. How do I change my resource string?
      7. How can I configure resource priority?
      8. Why can't I log on to my Google Talk/Google Apps account anymore?
      9. How do I configure Pidgin to connect to Google Talk for my domain …
      10. I'm using Google Apps with a non-Google e-mail address. Can I use …
      11. How do I use Pidgin with MeinVZ/StudiVZ's chat box?
      12. Why do I get an "SSL Handshake Failed" error when connecting to …
      13. Why do I get a "Server does not use any supported authentication …
      14. Why do I get a "Not authorized" error after turning on two-factor …
    2. XMPP Buddies
      1. What does "Cancel Presence Notification" do?
      2. How can I deauthorize a buddy from seeing my status?
      3. What does "Unsubscribe" do?
    3. XMPP Multi-User-Conferences (Chatrooms)
      1. How do I create a conference?
      2. How do I invite a buddy to a conference?
      3. How do I configure a chatroom?
    4. Miscellaneous
      1. Why can't I send a file?
      2. Which XEPs does libpurple support?
      3. Does Pidgin support Service Discovery or Transports?
  4. Gadu-Gadu (GG) Protocol
    1. What is Gadu-Gadu?
    2. I compiled Pidgin from source. Why doesn't it have Gadu-Gadu support?
  5. Zephyr Protocol
    1. What is Zephyr?
    2. Other Zephyr clients (zwgc, owl, tzc) work, but Pidgin dies with …
    3. Pidgin isn't working, but I never got any other Zephyr client working
    4. How do I avoid compiling Pidgin with Kerberos 4 support?
    5. How do I use Zephyr from behind my firewall?
    6. Why can't I use Zephyr on Windows?
  6. SILC Protocol
    1. What is SILC?
    2. What do I need to use the SILC protocol?
  7. Novell Groupwise Messenger Protocol
    1. Are there any public servers?
    2. I can't seem to get it to work.
  8. Lotus Sametime Protocol
    1. Are there any public servers?
    2. Why doesn't Sametime appear in the protocols list?
    3. Why do I get the error "Not Authorized" when connecting?
  9. Bonjour (Link-Local Messaging)
    1. What is Bonjour?
    2. Can I use Windows Pidgin for Bonjour?
  10. Facebook Chat
  11. Other Protocols
    1. Why does Pidgin not support CyanChat, MS LCS, NateOn, Netsoul, …

ICQ (OSCAR) Protocol

Can I set my profile?

Yes, you can. Go to Accounts->account name->Set User Info.

I just changed my buddy icon and I can't see the new one!

First, try IMing yourself a few times. Buddy icons are checked when you IM people, so that may work. If it still doesn't update, check the file size (buddy icons must be smaller than 4kb) and the image size (it should be 48x48 or 50x50 in most cases). Also, check the file type. GIF or JPEG images are best supported. If all of that checks out and it still doesn't work, try restarting Pidgin.

Can I send SMS messages?

Yes, starting with pidgin version 2.2.0, you can send SMS via ICQ. This works only with carriers which ICQ supports. For example, if you want to send SMS to a phone number 052-3999999 in Israel, open a new conversation window in ICQ and enter the following: +972523999999 or (+<country code><area code without 0><phone number>).

Can I add SMS numbers to my buddy list?

Yes. You should be able to add phone numbers to your buddy list using the same format as explained in the previous question.

Why do my buddies' messages display incorrectly?

ICQ has no comprehension of character sets or encodings. It simply sends (almost) any random chunk of data a user enters. Pidgin by default assumes everything is UTF-8. If this is not the case, you will need to edit your account (Accounts->your ICQ account->Edit Account) and change the Encoding setting on the Advanced tab. You will need to enter the correct encoding for your buddies' messages there. At this time it is currently possible to configure only one encoding for an ICQ account.

Some details about this should be collected on the ICQEncodingProgress page.

Why do I get the error "Unable to connect to BOS server"?

At the end of 2018 ICQ announced that they were shutting down the old (OSCAR) protocol in favour of a new (WIM) protocol. Pidgin ships with an ICQ protocol that uses OSCAR. As of the end of March 2019, the OSCAR protocol is completely shut down. You will either need to switch to a new protocol or use the IcyQue plugin to continue using ICQ.

IRC Protocol

How do I join a channel?

Create an IRC account and then sign on. After you have signed on, you can use Buddies->Join A Chat on the buddy list to join a channel. In any window, either a conversation or a chat, in which your IRC user is the sender, you can also use /join to connect to a new channel.

Is there a way to make Pidgin automatically authenticate/identify me on login?

Can I hide messages from NickServ, ChanServ, etc. on login?

Try the irchelper plugin from the Purple Plugin Pack. This plugin provides fields to enter the services bot's nickname and your services password. It also automatically suppresses messages from the services bots sent upon connection.

Alternatively, see the next question for a way to do authentication with buddy pounces.

NB: This plugin does also work with Q on QuakeNet, not just with IRC networks that use NickServ.

How do I identify myself with a buddy pounce?

How do I send a message to a user or bot on login?

  1. Enable your IRC account.
  2. Add the nick of the user or bot to your buddy list
  3. Right-click the new buddy and click "Add Buddy Pounce" to create a new pounce
  4. Make sure "Signs on" is the only checked box in the "Pounce When Buddy..." section
  5. Make sure "Send a message" is checked under "Action"
  6. Enter the message, such as:
    identify mypassword
    
  7. Make sure "Recurring" is checked beneath "Options" or the pounce will work only once
  8. Click Save to save the pounce.

Note that you do not include '/msg nickname' as part of the message in the pounce.

Can I automatically join channels on login?

On the buddy list, select Buddies->Add Chat. Use this dialog to add the chat to your buddy list. Once the chat appears in your list, right-click on it and select Auto-Join. The channel will auto-join whenever you sign onto your IRC account.

Is it possible to change the user name that appears in username@hostname?

Go to the Accounts menu. Select your IRC account and click Edit Account. Click the Advanced tab. Enter a name in the Username field.

How can I set/change my real name?

Go to the Accounts menu. Select your IRC account and click Edit Account. Click the Advanced tab. Enter a name in the Real Name field.

Why does text display incorrectly?

IRC has no comprehension of character sets or encodings. It simply sends (almost) any random chunk of data a user enters. Pidgin by default assumes everything is UTF-8. If this is not the case, you will need to edit your account (Accounts->your IRC account->Edit Account) and change the Encoding setting on the Advanced tab. You will need to enter the correct encoding for your channels there. You can specify multiple encodings in a comma-delimited list, such as UTF-8,ISO-8859-15, to cause Pidgin to attempt multiple encodings. In this case, each encoding is tried in succession until a successful decode happens or all encodings listed are exhausted.

How can I hide join/part messages?

See this FAQ entry.

XMPP (Jabber) Protocol

Setting up XMPP accounts

Does Pidgin support Jabber?

Yes!

Where is the difference between Jabber and XMPP?

Jabber and XMPP are the same protocol. There is no difference.

Does Pidgin support Nimbuzz, Web.de Messenger, GMX Messenger or 1&1 Messenger?

Yes, these services use the XMPP protocol.

How do I choose which XMPP server to use or configure an XMPP account?

The XMPP server is part of your XMPP ID. For example, in the ID foo@bar.com, bar.com would be the server to use. When entering your XMPP account information into Pidgin, specify everything before the @ (foo in the example ID) in the Username field and everything after the @ (bar.com in the example) in the Domain field.

What is the "Resource" field for in the account editor?

The resource field specifies the XMPP resource you are using. The use of unique resources allows you to connect to your XMPP server from multiple locations simultaneously. Resources might have meaningful names, such as Home, Work, Mobile, etc., or something else entirely that you choose. Pidgin defaults to a blank resource since 2.5.3.

How do I change my resource string?

Go to Accounts->Add/Edit. Find your XMPP account and uncheck the Enabled box. Select the account and click Modify. Change the string in the Resource field.

How can I configure resource priority?

Pidgin (more specifically, libpurple) does not currently support user-configurable priorities. We have a non-configurable priority list that is used:

Status NamePriority
Available 1
Chatty1
Away0
Do Not Disturb0
Extended Away0

Why can't I log on to my Google Talk/Google Apps account anymore?

In previous versions, Pidgin would automatically use the server talk.google.com to connect to your account. This was removed in version 2.5.2 so that these connections would not cause certificate errors.

Many home routers are broken and can't handle the SRV lookups required for Pidgin to automatically determine the server to which to connect. In the debug log, you will see

dnssrv: found 0 SRV entries

You can confirm this by running

Linux: dig +short SRV _xmpp-client._tcp.<server> (e.g. gmail.com)
Windows: nslookup -type=srv _xmpp-client._tcp.<server> (e.g. gmail.com)

If that command returns no results, then you will need to reconfigure the router to not act as the DNS server for the client computers. Typically, this setting is labeled something along the lines of "Use Router as DNS Server" (this should be disabled) in the router's configuration.

If you are using OpenWRT, you can fix this by editing /etc/dnsmasq.conf and comment the following line by adding a # in front of it:

filterwin2k

OpenWRT 10.03.1 'Backfire' needs dnsmasq's 'Domain Needed' to be disabled. In LuCI, this can be found under Network->DHCP and DNS->General->Domain Required (unchecked). Or from the command line by removing the following option from /etc/config/dhcp's dnsmasq section

option 'domainneeded' '1'

If your Google Apps for Your Domain does not have SRV records, add the following entries:

_xmpp-server._tcp.yourdomain.com. IN SRV 5 0 5269 xmpp-server.l.google.com.
_xmpp-server._tcp.yourdomain.com. IN SRV 20 0 5269 alt1.xmpp-server.l.google.com.
_xmpp-server._tcp.yourdomain.com. IN SRV 20 0 5269 alt2.xmpp-server.l.google.com.
_xmpp-server._tcp.yourdomain.com. IN SRV 20 0 5269 alt3.xmpp-server.l.google.com.
_xmpp-server._tcp.yourdomain.com. IN SRV 20 0 5269 alt4.xmpp-server.l.google.com.

Here's a screenshot on how to do this in Linode's DNS manager: https://developer.pidgin.im/raw-attachment/ticket/15180/Adding%20SRV%20records%20for%20XMPP%20in%20Linode

How do I configure Pidgin to connect to Google Talk for my domain hosted on Google Apps?

Entering your username for "Username", your Google Apps hosted domain name in the "Domain" field, and your password in the "Password" field should be all that is necessary.

If this doesn't work, it is likely because your domain doesn't have the appropriate DNS SRV records set up or your local DNS doesn't handle SRV records (see this FAQ for more information).

If you are unable to fix the DNS settings, as a workaround you can specify talk.google.com in the "Connect Server" field in the "Advanced" tab.

See: Google's help page, for more information.

I'm using Google Apps with a non-Google e-mail address. Can I use Pidgin with this account?

No, you can't. This is a server-side restriction. Anyway, using GoogleTalk with a non-Google e-mail address (that is, an e-mail account that doesn't live on a GoogleMail server) is not a good idea because these accounts appear to other users as <someterriblenumber>@talk.google.com rather than using something that someone could remember.

How do I use Pidgin with MeinVZ/StudiVZ's chat box?

The protocol used by these services is XMPP. Your username is the email address that you use to log in with, however you need to replace the @ with \40. The domain is vz.net. You don't need to change anything on the Advanced tab.

Why do I get an "SSL Handshake Failed" error when connecting to Oracle's XMPP server?

The SSL/TLS implementation used by Oracle's XMPP server does not support TLS 1.0 or newer, and immediately aborts the negotiation if the ClientHello record version is newer than SSL 3.0. This causes issues when Pidgin is built with GnuTLS SSL support, as GnuTLS defaults to negotiating TLS 1.0. In order to work around this, you either need to build Pidgin with NSS SSL support or upgrade to Pidgin 2.7.0 or newer and run Pidgin like this:

PURPLE_GNUTLS_PRIORITIES="stbeehive.oracle.com=NORMAL:%COMPAT:-VERS-TLS1.2:-VERS-TLS1.1" pidgin

Why do I get a "Server does not use any supported authentication method" error?

If you get this error, have a look in your debug log to see if you also get the error message "sasl: sasl_state is -1, failing the mech and trying again" If you are getting this, a workaround is to try adding your hostname (from /etc/hostname) to your /etc/hosts as an alias for 127.0.0.1 then reconnect.

Why do I get a "Not authorized" error after turning on two-factor authentication?

If you get this error, you might need to allow "less secure apps" to connect via https://www.google.com/settings/security/lesssecureapps or set an app password for Pidgin via https://security.google.com/settings/security/apppasswords

XMPP Buddies

What does "Cancel Presence Notification" do?

See the next question.

How can I deauthorize a buddy from seeing my status?

Right-click the buddy on the buddy list and select Cancel Presence Notification. Note that the buddy will have to request authorization again to be able to see your presence.

What does "Unsubscribe" do?

If you select "Unsubscribe" from the menu presented when right-clicking an XMPP buddy, you will no longer see that buddy's presence. You will need to re-request authorization to resume seeing the buddy's presence.

XMPP Multi-User-Conferences (Chatrooms)

How do I create a conference?

There are two methods:

  1. Join the conference
    1. Select "Join a Chat" from the buddy list's "Buddies" menu.
    2. Select your XMPP account.
    3. Fill in the fields you see.
      • "Room" should be the short name of the conference. For example, "myconference"
      • "Server" is the server on which the conference will be created. It must be a MUC server, such as conference.jabber.org. The chat's ID will be Room@server, so the example "myconference" would have the id "myconference@….
      • "Handle" is the name you wish to be displayed in the chat. It is similar in concept to a nickname on IRC.
      • "Password" is optional for creating a new room. You probably don't want to fill this field in.
    4. Click "Join."
    5. You will see a dialog asking you about creating the new room. You can either accept the default configuration or configure the room, at your option.
  2. Add the conference to your roster (buddy list)
    1. Select "Add Chat" from the buddy list's "Buddies" menu.
    2. Select your XMPP account.
    3. Fill in the fields you see.
      • "Room" should be the short name of the conference. For example, "myconference"
      • "Server" is the server on which the conference will be created. It must be a MUC server, such as conference.jabber.org. The chat's ID will be Room@server, so the example "myconference" would have the id "myconference@….
      • "Handle" is the name you wish to be displayed in the chat. It is similar in concept to a nickname on IRC.
      • "Password" is optional for creating a new room. You probably don't want to fill this field in.
      • "Alias" is the alias you wish to assign to the chat. By assigning an alias, you can display a useful description in the buddy list instead of the chat's name.
      • "Group" is the group in your buddy list in which you wish the chat to appear.
    4. Click "Add."
    5. Find the chat in your buddy list and double-click it.
    6. You will see a dialog asking you about creating the new room. You can either accept the default configuration or configure the room, at your option.

How do I invite a buddy to a conference?

Select "Invite" from the chat's "Conversation" menu. Note that you can only invite people to a conversation that is already a chat--you can't "promote" a one-on-one conversation to a chat.

How do I configure a chatroom?

Type /config or /configure in the conversation window.

Miscellaneous

Why can't I send a file?

There are a number of possible reasons for this.

  • If the user you're trying to send to is using the Google Talk client, it isn't possible as that client doesn't use the standard XMPP file transfers.
  • The XMPP server you're using may not support a file transfer proxy and your network setup doesn't allow direct incoming connections. In this case, you may be able to specify an alternative file transfer proxy in the "Advanced" settings of your XMPP account.
  • The file transfer proxy in use may be broken (see #5840).

Which XEPs does libpurple support?

See the SupportedXEPs page for the list.

Does Pidgin support Service Discovery or Transports?

Service discovery and transport registration are supported in Pidgin as of 2.6.0 (via the XMPP Service Discovery plugin), but not Finch.

However, using transports with Finch is possible, with the caveat that either your transport does not require registration or you have already registered using another client.

If you want to use a protocol that is supported by Pidgin natively, it is recommended to use Pidgin's own implementation rather than a Jabber transport.

Gadu-Gadu (GG) Protocol

What is Gadu-Gadu?

Gadu-Gadu is an IM protocol popular in Poland. You can find more about it at www.gadu-gadu.pl (website in Polish).

I compiled Pidgin from source. Why doesn't it have Gadu-Gadu support?

We now use an external libgadu. Install your distro's libgadu-dev or libgadu-devel package and rebuild Pidgin (making sure to rerun ./configure). If your distro doesn't provide libgadu, you can download it from here. Unpack the tarball and run:

~/libgadu-1.7.0$ ./autogen.sh --prefix=/usr --disable-libgadu-openssl \
> --disable-static --enable-shared
~/libgadu-1.7.0$ make
~/libgadu-1.7.0$ su -c "make install"

Zephyr Protocol

What is Zephyr?

Zephyr is an IM protocol developed at MIT for use with Project Athena. Its features include Kerberos IV authentication and multi-level chats (aka "subscriptions"). You're probably using this because your college/employer/organization uses it as a local IM/chat system. If not, you probably don't have a server to connect to.

Other Zephyr clients (zwgc, owl, tzc) work, but Pidgin dies with "Couldn't initialize zephyr"

Your site might require the use of Kerberos 4 for authentication, though few prepackaged Pidgin binaries use Kerberos. One solution is to compile Pidgin with the --with-krb4 flag to point to the location of your Kerberos 4 devel files, usually one of /usr, /usr/local, or /usr/athena, e.g.

~/pidgin$ ./configure --with-krb4=/path/to/kerberosIV

Pidgin isn't working, but I never got any other Zephyr client working

You need to have zhm (which comes with the standard Zephyr distribution) installed, and running, and pointed at your Zephyr servers. e.g.

zhm z1.example.com z2.example.com z3.example.com

Alternatively, there might be a firewall or a NAT between you and the Zephyr servers. Zephyr generally doesn't work in an environment where incoming connections cannot be made to arbitrary UDP ports.

How do I avoid compiling Pidgin with Kerberos 4 support?

See the next question; the same trick for firewall traversal applies to avoiding building with Kerberos support.

How do I use Zephyr from behind my firewall?

You can use tzc ("Trivial Zephyr Client") and ssh to run Zephyr from a machine that is behind a firewall or NAT. First, make sure that tzc is installed and working on the remote machine. The best version of tzc to use can be found here.

Make sure that you can make a passwordless ssh connection to the remote machine and get kerberos 4 tickets. Then, click the Advanced tab in the account editor, enable "Use tzc", and set the tzc command to

/path/to/ssh username@hostname /path/to/tzc -e "%s"

Alternately, if you have tzc working on your machine, you can enable "Use tzc", and set the tzc command to

/path/to/tzc -e "%s"

Why can't I use Zephyr on Windows?

Pidgin does not support Zephyr on Windows due to upstream technical limitations. The current libzephyr library does not compile on the Windows platform and there are no known usable builds of "zhm" available for Windows. If you are a Windows user, you most likely do not have any use for Zephyr anyway.

SILC Protocol

What is SILC?

SILC is an open, security-focused, end-to-end encrypted protocol. See http://www.silcnet.org for more details.

What do I need to use the SILC protocol?

You need to install the SILC toolkit and the Pidgin SILC plugin. This plugin is generally provided as a separate package (such as a purple-silc RPM). If you're compiling yourself, see the ./configure --help for specifying the SILC includes and libs. If you're compiling an SRPM, use --with silc to build the purple-silc RPM.

In Windows, the SILC toolkit is installed with Pidgin.

Some distributions provide the SILC toolkit and include Pidgin's SILC plugin in their Pidgin package.

Novell Groupwise Messenger Protocol

Novell GroupWise Messenger is a component of Novell GroupWise see http://www.novell.com/products/groupwise

Are there any public servers?

Not really. This protocol is designed to connect to a Novell GroupWise Messenger server running on a corporate LAN. No one that we're aware of runs a public server.

I can't seem to get it to work.

Novell tells us that this protocol plugin will only work with either the GroupWise Messenger for Linux server or the GroupWise Messenger SP2 (or higher) server for NetWare and Windows. In addition, the server must be secure (SSL enabled). If you have any trouble, see the FAQ question about submitting bugs, and they will be forwarded to Novell, who have been kind enough to continue active maintenance of the protocol plugin code they provided us.

Lotus Sametime Protocol

Are there any public servers?

Apart from a demonstration server hosted by Lotus, no. This protocol is designed to connect to a Lotus Sametime server running on a corporate LAN.

Why doesn't Sametime appear in the protocols list?

Sametime support in Pidgin depends on a separate library called Meanwhile. You will need to install both the Meanwhile library and the libpurple-meanwhile package to enable Sametime support. If you are building Pidgin from source, then libpurple-meanwhile will be built automatically if you have the development headers for Meanwhile installed.

Why do I get the error "Not Authorized" when connecting?

The Sametime server to which you're attempting to connect has been configured with a white-list of acceptable clients. This error indicates that the client ID used by Pidgin (0x1700) is apparently not in that white-list, so the server is not permitting you to log in. You can cause Pidgin to masquerade as the default Sametime Connect client by setting the "Hide client identity" option in your account preferences.

What is Bonjour?

Bonjour is a serverless messaging protocol developed by Apple Inc. (Apple article on Bonjour) based on XMPP that operates only on a local network. This XMPP extension defines the protocol.

Can I use Windows Pidgin for Bonjour?

As of version 2.0.2, Pidgin for Windows supports Bonjour. You must install Apple's Bonjour Print Services for Windows to use this functionality.

Facebook Chat

Facebook dropped XMPP on 30.04.2014

Other Protocols

Why does Pidgin not support CyanChat, MS LCS, NateOn, Netsoul, Paltalk, Rediffbol, Skype, Steam, Teamspeak, Tlen.pl, WinMX, Xfire or any other protocol?

It is a lot of work to implement and maintain support for an additional protocol. As Pidgin developers are volunteers who work for Pidgin during their spare time, they have only limited time which means that they can only support a limited number of protocols. If you are willing and able to implement and maintain a protocol that you're using, you're welcome to do so.

You can find unsupported third-party plugins for CyanChat, MS Communicator, NateOn, Netsoul, Rediffbol, Tlen.pl, WinMX and Xfire here.


Help home > FAQ home

Scripting and Plugins

What is a plugin?

A plugin is an additional piece of software that, when loaded into the running Pidgin or Finch application, provides additional features and functionality. We support several types of plugins, as explained in the next question.

Where can I find Plugins?

A nice collection of plugins can be found on the ThirdPartyPlugins page.

What is the difference between plugin types?

There are a variety of plugin types that Pidgin, Finch, and libpurple support.

  • "core" (libpurple) plugin - This type of plugin is a generic plugin that has absolutely no UI code at all. It should work with any libpurple UI. Exceptions to this rule may arise if a particular UI doesn't provide implementations for certain things libpurple expects a UI to implement, such as the request API. This lack of implementation will be a problem only if the libpurple plugin requires it.
  • "GTK+" (Pidgin) plugin - This type of plugin will work only with Pidgin because it depends on the GTK+ user interface Pidgin supplies. This type of plugin has the ability to use anything libpurple provides as well as anything Pidgin provides. Furthermore, a Pidgin/GTK+ plugin may provide its own custom UI for configuration or other necessary dialogs by directly implementing them in GTK+.
  • "GNT" (Finch) plugin - This type of plugin will work only with Finch because it depends on the GNT user interface Finch supplies. This type of plugin has the ability to use anything libpurple provides as well as anything Finch provides. Furthermore, a Finch/GNT plugin may provide its own custom UI for configuration or other necessary dialogs by directly implementing them in GNT.
  • Loader plugins (sometimes called "lopl") - These are special libpurple plugins that are invisible--they don't appear in the plugins list in a libpurple UI. These plugins enable the loading of plugins written in other languages. Our Perl plugin support is provided via a loader plugin, as is our Tcl plugin support.
  • Protocol plugins (called "prpl") - These are special libpurple plugins that are invisible--they don't appear in the plugins list in a libpurple UI. They are what makes libpurple able to connect to so many networks. Each protocol plugin provides an implementation of a specific IM/chat network's protocol that libpurple can use. All protocol support in libpurple is provided via protocol plugins. As protocol plugins are libpurple plugins, they may not contain any UI code at all.

How do I use Perl scripts with Pidgin/Finch?

Save the Perl script to ~/.purple/plugins or $PREFIX/lib/purple and open the Plugins dialog. If the script is written correctly, it will appear in the list and you will be able to load it.

How do I compile a plugin? (UNIX-like platforms)

This is highly dependent on the plugin.

  • Many third-party plugins provide a configure script and will compile and install via the normal routine of running the configure script, then running the make command, then running make install.
    • For this to succeed, the development packages for Pidgin and libpurple must be installed.
      • If you installed from source, the necessary files are already present.
      • If you installed via a package, install the pidgin-dev or pidgin-devel and libpurple-dev or libpurple-devel packages as appropriate for your distribution or package provider. Consult your package manager's documentation.
    • Plugin authors should provide this information, if applicable to their plugin(s), on their website.
  • Some plugins that ship with Pidgin, Finch, and libpurple don't compile by default. To compile these plugins, change to the appropriate directory in the source tree. The directories you have to choose from are pidgin/plugins, libpurple/plugins, and finch/plugins. Once in that directory, run the command make filename.so, where filename is the name of the plugin. For example, the Offline Messaging plugin is called offlinemsg.c, so if you wanted to build that plugin, you would run make offlinemsg.so. To install and use the plugin, you can copy the .so file to ~/.purple/plugins (creating the directory if needed) or to $PREFIX/lib/purple-2 for libpurple plugins, $PREFIX/lib/pidgin/ for Pidgin plugins, or $PREFIX/lib/finch for Finch plugins.
  • Some third-party plugins rely on our build infrastructure, and will compile using the same instructions as our non-default plugins. Plugin authors should provide this information, if applicable to their plugin(s), on their site.

How do I compile a plugin? (Windows)

This section covers only building plugins included with our source distribution, as not everyone uses the same method to build a plugin on Windows. Please refer to those plugins' websites for information on building the plugins for Windows.

Read and correctly follow the instructions on BuildingWinPidgin. It is very important that you follow the instructions correctly, as a correctly configured build environment is absolutely REQUIRED for building a plugin to work.

Once the build environment is set up, build Pidgin:

~/pidgin $ make -f Makefile.mingw

Next, change to the appropriate plugins directory:

~/pidgin $ cd libpurple/plugins
### OR
~/pidgin $ cd pidgin/plugins

Once here, you can compile a specific plugin by running make -f Makefile.mingw filename.dll, where filename is the name of the plugin. For example, the Offline Messaging plugin is called offlinemsg.c, so to build this plugin you would issue the command make -f Makefile.mingw offlinemsg.dll.

Note that some third-party plugins rely on our build infrastructure and will build once you place the .c file in the appropriate plugins directory. Plugin authors should indicate this information, if applicable to their plugins, on their website.

Why doesn't my Perl plugin show up in the Plugins dialog?

Check if your Pidgin binary includes Perl support (Help -> Build Information).

You must also have a compatible Perl runtime installed. Perl micro versions are not backward compatible, so you need to use a matching "y" component in the x.y.z version string.

On Windows:

  • You can get a compatible Perl runtime from Strawberry Perl
  • You'll need to use the 32-bit version of Perl since Pidgin is a 32-bit application
  • Make sure the Perl installation's bin directory is in your PATH
  • For Pidgin 2.10.12 and newer, you need Perl 5.20.z
  • For Pidgin <= 2.10.11, you need Perl 5.10.z

First, download the test Perl plugin from the Perl Scripting HOWTO page in ~/.purple/plugins. Restart Pidgin and see if the plugin appears in the list as "Perl Test Plugin". If not, open the Debug window from the Help menu, and open the plugin list again. You should see if Pidgin picks up the plugin from the proper directory, and any errors while loading it.

Alternatively, you may want to make sure that the plugin passes a syntax check, by running perl -c -I<path to Pidgin's plugins/perl directory> plugin.pl.

If you wrote the plugin yourself, you have likely missed some important detail about implementation or need to update to the current Perl API, which has changed several times.

If you downloaded the plugin, it may be out of date due to Perl API changes. You may need to contact the author or visit the plugin's website for an update.

Where can I find documentation on writing plugins?

If you click the API link in the toolbar above, you will be taken to our doxygen-generated documentation. There is a Related Pages section in the documentation that contains a bunch of useful stuff, including a run-down of all our signals by category, a basic C plugin How-To which is slightly out of date but still a good starting point, and some useful notes on translations support for third-party plugins. There is also a How-To on writing Perl scripts, which is outdated as well. We have begun the work of migrating the C How-To to the wiki. We will be expanding it with more information.

Are there licensing restrictions on plugins?

Yes. Libpurple is released under a GPL license. Any derivative works must be released under a compatible license. The way that plugins work in Libpurple causes them to fall in the "derivative" category and consequently MUST be released under a GPL compatible license. To be clear, this requirement means that plugins that use libraries with incompatible licenses MUST NOT be distributed (even if they use dynamic linking).
The FSF maintains a FAQ about the GPL that contains answers to many common questions.
If you have any specific questions, feel free to send a message to the development mailing list.


Help home > FAQ home

Pidgin Community

Finding Us

Where can I find Pidgin-related chat online?

There are two primary Pidgin-related chat resources:

  • #pidgin on irc.freenode.net (IRC)
  • devel@conference.pidgin.im (XMPP MUC or Multi-User Chat)

Developers, contributors, and users alike are welcome to join us in either of these fora.

Is there a user mailing list?

Yes! For general questions about using Pidgin, problems connecting, etc. please use the support mailing list. If you're a developer and want to ask about the internals of Pidgin, libpurple or Finch, please use the devel mailing list. We offer a few other mailing lists, too. See the full list.

All mailing lists are run by volunteers. Please be kind.

Community Topics

Can I help?

Yes! We especially need small patches for small bugs, and lots of bug triaging. There are a slew of a bug reports in Pidgin's ticket system - you could pick one and try to tackle it and submit a patch. We love patches!

Bug triaging is when you look at a bug report and determine whether it is a duplicate of an earlier report, or whether it is user error, or maybe you need to request additional information to be able to reproduce the bug. We don't allow people to modify ticket attributes, but if you leave a helpful comment on the ticket with your findings, we will take appropriate action. This is a significant help to us, because it allows fewer people to have to focus primarily on maintenance of the ticket system, while other development resources are spent as well as they can be.

Can I ask you about third-party plugins, patches, etc.?

You are more than welcome to ask, but be prepared for the answer to be something like "ask the authors". We simply don't have the time or energy to keep up with all of the third-party projects out there, so we probably can't help you. Common topics that fall into this category are various encryption plugins, !GFire, and various Purple Plugin Pack plugins.

Where should I report bugs, feature requests, or patches?

Here.

Hello?

We don't know the answer to this question. Please, stop asking it.

Miscellaneous Questions

Did you guys reverse-engineer the protocols?

The core Pidgin, Finch, and libpurple developers did not. Here's some related information:

  • XMPP (a.k.a. Jabber), SIMPLE, and IRC are published protocols, so we didn't need to reverse-engineer them. (Google Talk is an instance of XMPP.)
  • MSN was at one time a published protocol; over time changes have creeped into the protocol and other people have reverse engineered those newer revisions.
  • OSCAR and Yahoo! are not published, and were reverse engineered by other people.
  • Sametime is maintained by a developer of the meanwhile library we make use of.
  • Our SILC plugin was written by one of the protocol's developers.
  • Novell kindly provided us with the Novell GroupWise plugin.
  • QQ was reverse-engineered by other people and later absorbed into libpurple.

Do Pidgin and Finch support secure instant messaging (encrypted IM)?

Short Answer

Yes; use the OTR plugin or the SILC protocol.

Long Answer

These days, almost all chat protocols are encrypted between the client and the server. We'll assume that you're asking about end-to-end encryption: when only the two people having the conversation have access to its unencrypted contents.

The SILC protocol is natively encrypted. For other protocols, which do not natively support encryption, neither do we. Simply encrypting the data stream with no verification of the parties involved in the conversation is not secure in any sense of the word. Some other clients offer options like this, but we feel that such measures instill a false sense of security that is more harmful than helpful.

Note that there are a number of third-party plugin developers working on secure IM frameworks. Take a look at the ThirdPartyPlugins page for links to those we know of.

There is currently no support for encrypted file transports.

When will the next version be released?

The schedule for releases is every third Thursday. However, a new version will only be released if it meets a certain standard of quality (i.e., it will not be released if it still has a large number of serious bugs). Therefore, some releases will take longer than others. Major rewrites means lots of new bugs to work out. The new version will be released as soon as it is possible to do so. The Roadmap gives best-guess estimates, but take them with a grain of salt--if we aren't ready to release on a Milestone's due date, we won't release, and that milestone will fall into "past due."

What will the next version be numbered?

We follow the Semantic Versioning scheme.

Starting with version 1.0.0, Pidgin version numbers have 3 parts to them. The format is major.minor.micro. If we change something internally in Pidgin such that some plugins won't work with the newer version, we will increment the major version number. If we don't increment the major version number, and we've added things to the Pidgin API that won't break any older stuff, we will increment the minor version number. In any other cases, we will increment the micro version number. Even and odd numbers have nothing to do with stability, and you should always be running the latest release of Pidgin to get new features and bug fixes.

So, can I look forward to mega-sexy super functionality with Pidgin?

Yes, that is the intended idea. In fact, there have been quite a number of unpopular geeks who have made the switch to Pidgin. In a matter of days, the number of dates and awesomeness points received by the geek increased ten fold! You, too, can have an exciting life with Pidgin. Get Pidgin. Get the babes. Get uhh... hmm.

(Yes, that's a joke.)

How do you capitalize Pidgin?

Pidgin, with a capital P, or pidgin, with a little p. In all cases, the remainder of the letters are lowercase. It's not PIDGIN, nor PidGin, nor PiDgIn, nor anything similar. Stop doing that.

What's with the name Pidgin, anyway?

Pidgin is not, in fact, named after so-called "rats with wings," but rather it refers to a special type of "broken" language used by speakers of different languages to communicate. We thought this name fit well with the purpose of Pidgin.

Of course, Pidgin is a homonym for pigeon, so we couldn't resist taking advantage of the pun to create a cartoon mascot.

Many have subsequently pointed out that the use of carrier pigeons for transmission of messages fits nicely with Pidgin's functionality as well.

What's with the name libpurple, anyway?

The use of the term purple is another homonym of sorts. Long ago, we started referring to protocol plugins by an abbreviated name "PrPl" which we would pronounce in the same manner as the color. Since libpurple provides primarily an interface for using protocol plugins to access a variety of IM networks, it seemed reasonable that we name the library after the pronounciation.

What's with the name Finch, anyway?

In keeping with bird theming for IM clients based upon libpurple, including Adium (the Duck client), and Pidgin (the Pigeon client), Finch was chosen as the name for our text-based client.

Why don't you listen to your users?

Sorry, what was that?

Why Won’t You Remove My Mailing List Posts?

Occasionally we, the Pidgin team, receive requests to remove information from our mailing list archives. We don’t honor those requests. Quite frankly, by the time we get the request it’s already too late for removal to be useful. Every post to our mailing lists is archived. Our archives are public. A number of other mailing list archival services have been subscribed to our lists, making duplicated archives that we have no control over. Google and other search engines index our archives, which we also have no control over. (Yes, robots.txt exists, but search engines are not obligated to obey it, and we actually want our archives indexed so our users can find information more easily.) By the time we receive a request to remove any data from our archives, it already exists in so many places that one more copy of the data can’t possibly cause any additional harm. We also do include a disclaimer at the bottom of every page on Trac, on the list info page for each of our mailing lists, and in the Help->About box in Pidgin itself that our mailing lists are publicly archived, thus adequate warning exists to inform people that their data will be publicly disclosed. We cannot be held accountable for someone else’s failure to read the disclaimer. So, as a policy, we do not remove anything from our mailing list archives.


Help home > FAQ home

UsingThisSite

The Wiki

The Ticketing System

Where do I submit bugs, patches, translations, or feature requests?

Here.

Why are so many enhancements closed as "Won't Fix?"

There are three basic arguments for leaving enhancement requests open indefinitely (or in other words, until they happen):

  1. Leaving it open might inspire someone to write the patch or plugin necessary
  2. Leaving it open might allow someone to comment on the existing request instead of submitting a new one
  3. Leaving it open allows for the fact that one or more developers may at some point change their minds.

Each of these is a decent argument, and together they might be seen as persuasive. There are, however, reasons for closing enhancement requests aggressively:

  1. Many developers believe that there is a sort of "cost" associated with each preference, each menu item, each button. That the increased code complexity has a non-trivial cost (in time to debug, and need to do so), and that the increased interface complexity will eventually get in the way of users. Many even argue against the concept of an "advanced user." This line of argument is developed at length here, here, and here. It is also embodied in the following quote from Linus Torvalds: "The question is never EVER 'Why shouldn't it be accepted?', but it is always 'Why do we really not want to live without this?'"
  2. As developers and maintainers of Pidgin, Finch and libpurple, we have a limited amount of time available to spend on the enhancement tracker, particularly when so many bugs in the existing code require attention. As the database grows in size, it becomes harder and harder to be able to remember, much less find, any given ticket in the midst of so many others. This in turn results in the inability to detect and close true duplicates. There are only two ways to combat this: closing requests that will not be implemented, and closing requests as they are implemented. The two, as you can see, go hand in hand. You can only close requests as they are implemented if you can find them, which in turn depends on closing ones you have no intention of implementing (and thus keeping the database of open tickets small).
  3. History tells us that while there are some users who will search the tracker for similar issues, many users will not. This means that time *must* be spent detecting duplicate reports. This is easier to do if the number of such reports are small. It also tells us that if it grows big enough, developers will ignore the tracker, considering it a waste of time to attempt to do anything with the tickets in there when so many similar reports will be unfound and remain open. While this means that some requests will be closed many times, it also means that each request has a better chance of having any sort of response.

We have devoted considerable space to this question because we do not want to discourage ticket submissions. We just operate with a finite ability, a finite amount of time, and a finite number of people able to contribute. This means that most requests, particularly those that could exist as plugins (protocol or otherwise), will be closed. That being said, a good many fine ideas come from people not already involved with the project, and some things that are rejected might be accepted if they were presented in patch form instead of request form. This is particularly true if they come from someone who has demonstrated a willingness to work with us, stay the course, and contribute time and time again.

I think my report was closed mistakenly. What can I do?

We get emails from every update on every ticket, both those closed and those still open. We try to read and consider all of these emails. If you disagree with the decision that has been made regarding your ticket, post a comment to that effect. Chances are we will read it, and consider reopening it. This is particularly true of your response is polite and well reasoned, instead of being a knee-jerk reaction or a flame. If you suspect that your post might have been missed, you can either post an email to the devel mailing list or open a new ticket. However, if the new ticket is shortly closed as duplicate or with a very similar rationale, then you should conclude that we simply disagree with you, and that a patch or 3rd party plugin is the only avenue left open. While we try to be as reasonable as possible, we simply cannot please everyone.


Last modified 15 years ago Last modified on Sep 14, 2008, 4:47:30 PM
All information, including names and email addresses, entered onto this website or sent to mailing lists affiliated with this website will be public. Do not post confidential information, especially passwords!