Difference between revisions of "Pidgin"

From ArchWiki
Jump to: navigation, search
(Sametime protocol: remove duplications, difference gnome/kde is actually aur/extra)
m (See also: add wikipedia page link, remove duplicate homepage link)
 
(142 intermediate revisions by 55 users not shown)
Line 1: Line 1:
{{i18n|Pidgin}}
+
[[Category:Internet applications]]
[[Category:Internet Applications (English)]]
+
[[Category:Internet Relay Chat]]
 
+
[[Category:XMPP]]
 
[[de:Pidgin]]
 
[[de:Pidgin]]
 +
[[es:Pidgin]]
 +
[[fr:Pidgin]]
 +
[[ja:Pidgin]]
 +
[[ru:Pidgin]]
 +
[[zh-hans:Pidgin]]
 +
From the project [http://www.pidgin.im/ home page]: "Pidgin is an easy to use and free chat client used by millions. Connect to AIM, Google Talk, ICQ, IRC, XMPP, and more chat networks all at once."
  
'''Pidgin''' (formerly Gaim) is an instant messaging client for Linux that can connect to many different IM networks, such as Live Messenger, Yahoo, IRC, AIM, etc. One of Pidgin's key features is that you can use many networks at the same time.
+
== Installation ==
 
 
==Installation==
 
# pacman -S pidgin
 
  
You may also want to install extra plugins from the <tt>purple-plugin-pack</tt>.
+
[[Install]] the {{Pkg|pidgin}} package.
 +
Notable variants are:
 +
* {{App|Pidgin Light|Light Pidgin version without GStreamer, Tcl/Tk, XScreenSaver, video/voice support.|http://pidgin.im/|{{AUR|pidgin-light}}}}
  
==Spellcheck==
+
You may also want to install additional plugins from the {{Pkg|purple-plugin-pack}}.
Aspell will be installed as a dependency, but to prevent all of your text from showing up as incorrect you will need to install an aspell dictionary:
 
# pacman -S aspell-en
 
  
This installs the English dictionary. Use <tt>pacman -Ss aspell</tt> to list available languages.
+
== Spellcheck ==
  
{{Note| The '''switch spell'''-plugin is included in the purple-plugin-pack (see above). It allows you to switch between multiple languages.}}
+
The {{pkg|aspell}} package will be installed as a dependency, but to prevent all of your text from showing up as incorrect you will need to install an aspell dictionary. See the [[aspell]] article.
  
==Sound fix==
+
{{Note|The '''switch spell''' plugin is included in the {{Pkg|purple-plugin-pack}}. It allows you to switch between multiple languages.}}
If the sound does not work with the automatic settings, configure [[ALSA]], then change the play method ('Command') to the following:
 
aplay %s
 
  
Or if using [[OSS]], then change the play method ('Command') to the following:
+
== Services ==
ossplay %s
 
  
Another (unconfirmed) solution is to install following package and change the play method to 'Automatic':
+
=== Facebook ===
gstreamer0.10-good
 
  
==Browser error==
+
[[Install]] the {{Pkg|purple-facebook}} package. (or {{AUR|purple-facebook-git}})
If clicking a link within Pidgin creates an error message about trying to use 'sensible-browser' to open a link, try editing {{Filename|~/.purple/prefs.xml}}. Find the line referencing 'sensible-browser' and change it to this:
 
<pref name='command' type='path' value='firefox'/>
 
  
This example assumes you use [[Firefox]].
+
Then add a new account, select Facebook as the protocol, enter your [https://www.facebook.com/help/211813265517027 Facebook username] and password and login.
  
==QIP Encoding bug==
+
=== IRC ===
There is another bug in character encoding when communicating between Pidgin and QIP, which especially affects Czech language, but there are also other languages affected. There are two possible solutions. The better one is to upgrade from QIP to QIP Infimum, second solution is to install and enable plugin from '''pidgin-qip-decoder''' package currently available from [[AUR]].
 
  
==IRC==
 
 
This is a small tutorial for connecting to Freenode. It should work for other IRC networks as long as you substitute the port numbers and other specific settings.
 
This is a small tutorial for connecting to Freenode. It should work for other IRC networks as long as you substitute the port numbers and other specific settings.
  
Go to Accounts -> Manage Accounts -> Add -> Fill/select the following options:
+
Go to ''Accounts > Manage Accounts > Add''. Fill/select the following options:
  Protocol: IRC  
+
  Protocol: IRC
  Username: <your username>
+
  Username: ''your username''
  
Now go to Buddies -> New instant message ( or hit ctrl + m) fill 'freenode.net' in the textbox and <username>@irc.freenode.net -> then click 'Ok'. Type:
+
Now go to ''Buddies > New instant message'' (or hit {{ic|Ctrl+m}}), fill 'freenode.net' in the textbox and ''username''@irc.freenode.net, then click 'Ok'. Type:
  /join #archlinux (channel is irrelevant)
+
  /join #archlinux
 +
The channel is irrelevant.
  
 
In order to register your nick, type:
 
In order to register your nick, type:
  /msg nickserv register <password> <email-addres>
+
  /msg nickserv register ''password'' ''email-addres''
  
 
Follow the instructions from the registration mail. For further help type:
 
Follow the instructions from the registration mail. For further help type:
 
  /msg nickserv help
 
  /msg nickserv help
  /msg nickserv help <command>
+
  /msg nickserv help ''command''
  
This final step will add your channel to 'Buddies': go to Buddies -> Add chat -> fill the correct channel in the textbox named channel (#archlinux).
+
This final step will add your channel to 'Buddies': go to ''Buddies > Add chat'', fill the correct channel in the textbox named channel (#archlinux).
  
==Xfire==
+
=== Sametime protocol ===
Install one of the two pacakages from the [[AUR]]:
 
  
Stable:
+
[[Install]] the {{AUR|libpurple-meanwhile}} package. The 'Sametime' protocol will be available when creating an account.
pidgin-gfire
 
Or the development/SVN:
 
pidgin-gfire-svn
 
  
Now add a new account and select xfire as protocol.
+
=== SIP/Simple protocol for Skype for Business/Office 365/Lync ===
  
==Facebook XMPP==
+
[[Install]] the {{Pkg|pidgin-sipe}} package.
Since Facebook Chat supports XMPP, you can use Pidgin without extra plugins. See this article for more information: [http://blog.facebook.com/blog.php?post=297991732130 Facebook Chat Now Available Everywhere]
 
  
{{Note| In order to utilise facebook chat through XMPP and pidgin, you will require a facebook "username", this is located in facebook -> account settings -> username [below real name]}}
+
=== Skype plugin ===
  
1. Go to "Accounts" and select "Manage Accounts."
+
Install the {{Pkg|purple-skypeweb}} or {{AUR|skype4pidgin-git}} package.
  
2. On the Basic tab, enter the following info:
+
=== Rocket.Chat plugin ===
: Protocol: XMPP
 
: Username: ''Your facebookID'' (without e-mail domain, e.g. @yahoo.com, etc)
 
: Domain: chat.facebook.com  (make sure you haven't typed any extra space)
 
: Resource: Pidgin (leave this empty if you get "username@chat.facebook.com/Pidgin Not Authorized" error message)
 
: Password: ''Your Password''
 
: Local alias: ''Your Name''
 
  
3. Click the Advanced tab, then enter the following info:
+
Install the {{AUR|purple-rocketchat}} package.
: Connect port: 5222
 
: Connect server: chat.facebook.com  (make sure you haven't typed any extra space)
 
: (Uncheck the box labeled "Require SSL/TLS")
 
  
{{Note| Newer versions of Pidgin do not have a "Require SSL/TLS" box.  Instead, select "Use encryption if available" from the Connection Security dropdown in Advanced}}
+
== Security ==
  
Most users probably get a '503: Service unavailable' after this. You need the package '''cyrus-sasl-plugins''' for correct authentication. [http://permalink.gmane.org/gmane.network.jabber.devel/31961 Source]
+
Pidgin uses Libpurple 2 which stores passwords unencrypted (in plaintext) in $HOME/.purple/account.xml, see [https://developer.pidgin.im/wiki/PlainTextPasswords]. You can store them in a keyring by using a plugin like:
  
# pacman -Syu cyrus-sasl-plugins
+
* {{AUR|purple-gnome-keyring}}
 +
* {{Pkg|pidgin-kwallet}}
  
 
== Privacy ==
 
== Privacy ==
Pidgin has some privacy rules set by default. Namely, the whole world cannot send you messages; only your contacts or people selected from a list. Adjust this, and other settings through:
+
 
Tools -> Privacy
+
Pidgin has some privacy rules set by default. Namely, the whole world cannot send you messages;
 +
only your contacts or people selected from a list. Adjust this, and other settings in ''Tools > Privacy''.
  
 
=== Pidgin-OTR ===
 
=== Pidgin-OTR ===
 +
 
This is a plugin that brings Off-The-Record (OTR) messaging to Pidgin. OTR is a cryptographic protocol that will encrypt your instant messages.
 
This is a plugin that brings Off-The-Record (OTR) messaging to Pidgin. OTR is a cryptographic protocol that will encrypt your instant messages.
  
First you need to install the Pidgin OTR plugin itself, like so:
+
First you need to install {{Pkg|pidgin-otr}} from the official repositories. Once this has been done, OTR has been added to Pidgin.
$ pacman -S pidgin-otr
 
  
Once this has been done, OTR has been added to Pidgin.  
+
# To enable OTR, start Pidgin and go to ''Tools > Plugins'' or press {{ic|Ctrl+u}}. Scroll down to the entry entitled "Off-The-Record Messaging". If the checkbox beside it is not checked, check it.
 +
# Next, click on the plugin entry and select "Configure plugin" at the bottom. Select which account you wish to generate a key for, then click "Generate". You will have now generated a private key. If you are not sure what the other options do, leave them, the default options will work fine.
 +
# The next step is to contact a buddy who also has OTR installed. In the chat window, a new icon should appear to the top right of your text input box. Click on it, and select "Start private conversation". This will start an 'Unverified' session. Unverified sessions are encrypted, but not verified - that is, you have started a private conversation with someone using your buddy's account who has OTR, but who might not be your buddy. The steps for verification of a buddy are beyond the scope of this section; however, they might be added in the future.
  
To enable OTR, start Pidgin and go to Tools -> Plugins or press Ctrl + U. Scroll down to the entry entitled "Off-The-Record Messaging". If the checkbox beside it is not checked, check it.
+
=== Pidgin-Encryption ===
  
Next, click on the plugin entry and select "Configure plugin" at the bottom. Select which account you wish to generate a key for, then click "Generate". You will have now generated a private key. If you are not sure what the other options do, leave them, the default options will work fine.
+
{{Pkg|pidgin-encryption}} transparently encrypts your instant messages with RSA encryption. Easy-to-use, but very secure.
 +
 
 +
You can enable it the same way as Pidgin-OTR.
 +
 
 +
Now you can open conversation window and new icon should appear beside menu. Press it to enable or disable encryption.
 +
Also if you want to make encryption enabled by default right-click on a buddy's name (in your buddy list), and select Turn Auto-Encrypt On. Now, whenever a new conversation window for that buddy is opened, encryption will start out as enabled.
 +
 
 +
=== Pidgin-GPG ===
 +
 
 +
Pidgin-GPG transparently encrypt conversations using GPG, and taking advantage of all the features of a pre-existing WoT.
 +
 
 +
The plugin is available on AUR as {{aur|pidgin-gpg-git}}. It can be enabled the same way as the previously mentioned ones.
 +
 
 +
== Other packages ==
  
The next step is to contact a buddy who also has OTR installed. In the chat window, a new icon should appear to the top right of your text input box. Click on it, and select "Start private conversation". This will start an 'Unverified' session. Unverified sessions are encrypted, but not verified - that is, you have started a private conversation with someone using your buddy's account who has OTR, but who might not be your buddy. The steps for verification of a buddy are beyond the scope of this section; however, they might be added in the future.
+
Arch has other Pidgin-related packages. Here are the most popular (for a thorough list, search the AUR):
 +
*{{Pkg|pidgin-libnotify}} - Libnotify support, for theme-consistent notifications
 +
*{{AUR|purple-libnotify-plus}} - Notifications with Libnotify which does work with notify-osd. It might matter for WMs without DE, like i3, the original pidgin-libnotify instead uses plain messagebox there.
 +
*{{Pkg|guifications}} - Toaster-style popup notifications
 +
*{{AUR|microblog-purple}}{{Broken package link|{{aur-mirror|microblog-purple}}}} - Libpurple plug-in supporting microblog services like Twitter
 +
*{{AUR|pidgin-latex}} - A small latex plugin for pidgin. Put math between $$ and have it rendered (recepient also needs to have this installed)
  
== Sametime protocol ==
+
== Auto logout on suspend ==
Sametime support is not available in the default version of Arch Linux's Pidgin package. This section will demonstrate how to enable this feature via AUR and the 'Meanwhile' plugin. This section assumes that you are familiar with using the AUR and that you are performing the following commands in {{Filename|~/builds}} directory.
 
  
First install [https://aur.archlinux.org/packages.php?ID=2956 meanwhile] from the [[AUR]].
+
If you suspend your computer pidgin seems to stay connected for about 15 minutes. To prevent message loss, it is needed to set your status offline before suspending or hibernating. The status message won't be changed.
  
Now you have to rebuild your installed version of Pidgin with Sametime support: the procedure is different depending on whether you have Pidgin from [extra] or from a package in AUR.
+
Therefore create a new systemd unit {{ic|pidgin-suspend}} in {{ic|/etc/systemd/system}}
 +
Take the following snippet and replace ''myuser'' with your user.
  
===[extra] package===
+
[Unit]
 +
Description=Suspend Pidgin
 +
Before=sleep.target
 +
StopWhenUnneeded=yes
 +
 +
[Service]
 +
Type=oneshot
 +
User=''myuser''
 +
RemainAfterExit=yes
 +
Environment=DISPLAY=:0
 +
ExecStart=-/usr/bin/purple-remote setstatus?status=offline
 +
ExecStop=-/usr/bin/purple-remote setstatus?status=available
 +
 +
[Install]
 +
WantedBy=sleep.target
  
Make sure you have installed the [[Arch Build System]] and downloaded the ABS tree.
+
If you are using [[pm-utils]], you could create a {{ic|00pidgin}} file in {{ic|/etc/pm/sleep.d/}} instead.
  
Now copy the pidgin directory of ABS to {{Filename|~/builds}}:
+
{{bc|<nowiki>
$ cp -r /var/abs/extra/pidgin ~/builds
+
#!/bin/sh
 +
#
 +
# 00pidgin: set offline/online status
  
Go to ~/builds and open the pidgin/PKGBUILD file. Go to the “build()” section and make sure you remove the “–disable-meanwhile” line from the configure options.
+
case "$1" in
 +
    hibernate|suspend)
 +
        DISPLAY=:0 su -c 'purple-remote setstatus?status=offline' ''%myuser''
 +
    ;;
 +
    thaw|resume)
 +
        DISPLAY=:0 su -c 'purple-remote setstatus?status=available' ''%myuser''
 +
    ;;
 +
    *) exit $NA
 +
    ;;
 +
esac
 +
</nowiki>}}
  
Make the package:
+
== Minimize to tray ==
$ makepkg -s
+
To make use of the [[Xfce]] system tray go to preferences and enable the system tray in the section "Interface".
 +
You can now close the main window and run pidgin minimized. You will also be able to see message notifications in the tray.
  
Install '''first''' the libpurple package as root:
+
== History import Kopete to Pidgin ==
# pacman -U libpurple-version-arch.pkg.tar.gz
 
  
After that install the pidgin package as root:
+
* Install {{Pkg|xalan-c}} and create {{ic|~/bin/history_import_kopete2pidgin.sh}} with this code:
# pacman -U pidgin-version-arch.pkg.tar.gz
+
{{bc|<nowiki>
 +
#!/bin/sh
  
Pidgin now has the 'Sametime' protocol as an option when creating accounts.
+
KOPETE_DIR=~/.kde4/share/apps/kopete/logs
 +
PIDGIN_DIR=~/.purple/logs
 +
CURRENT_DIR=~/bin
  
===AUR package===
+
cd
  
Download and extract your Pidgin package from AUR (this example will use pidgin-gnome, change to preference):
+
if [ ! -d $KOPETE_DIR ];then
$ cd ~/builds && wget http://aur.archlinux.org/packages/pidgin-gnome/pidgin-gnome.tar.gz && tar xfvz pidgin-gnome.tar.gz
+
    echo "Kopete log directory not found"
 +
    exit 1;
 +
fi
  
Change into the extracted directory:
+
if [ ! -d $PIDGIN_DIR ];then
$ cd pidgin-gnome
+
    echo "Pidgin log directory not found"
 +
    exit 2;
 +
fi
  
In order to have 'Sametime' support you must remove the following from PKGBUILD
+
for KOPETE_PROTODIR in $(ls $KOPETE_DIR); do
--disable-meanwhile
+
    PIDGIN_PROTODIR=$(echo $KOPETE_PROTODIR | sed 's/Protocol//' | tr [:upper:] [:lower:])
 +
    for accnum in $(ls $KOPETE_DIR/$KOPETE_PROTODIR); do
 +
        echo "Account number: $accnum"
 +
        for num in $(ls $KOPETE_DIR/$KOPETE_PROTODIR/$accnum); do
 +
            FILENAME=$(Xalan $KOPETE_DIR/$KOPETE_PROTODIR/$accnum/$num $CURRENT_DIR/history_import_kopete2pidgin_filename.xslt)
 +
            if [ $? = 0 ]; then
 +
                echo "$KOPETE_DIR/$KOPETE_PROTODIR/$accnum/$num"
 +
                echo " -> $PIDGIN_DIR/$PIDGIN_PROTODIR/$FILENAME"
 +
                mkdir -p $(dirname $PIDGIN_DIR/$PIDGIN_PROTODIR/$FILENAME)
 +
                Xalan -o $PIDGIN_DIR/$PIDGIN_PROTODIR/$FILENAME $KOPETE_DIR/$KOPETE_PROTODIR/$accnum/$num $CURRENT_DIR/history_import_kopete2pidgin.xslt
 +
            fi
 +
        done
 +
    done
 +
done
 +
</nowiki>}}
 +
* Make {{ic|~/bin/history_import_kopete2pidgin.sh}} executable:
 +
chmod +x ~/bin/history_import_kopete2pidgin.sh
 +
* Create {{ic|~/bin/history_import_kopete2pidgin.xslt}} with this code:
 +
{{bc|1=
 +
<?xml version="1.0"?>
 +
<nowiki><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"></nowiki>
 +
    <xsl:output method="text" indent="no" />
  
Build the package:
+
    <xsl:template match="kopete-history">
$ makepkg -s
+
        <xsl:apply-templates select="msg"/>
 +
    </xsl:template>
  
Install the package as root:
+
    <xsl:template match="msg">
# pacman -U pidgin-gnome-2.5.8-1-i686.pkg.tar.gz
+
        <xsl:text>(</xsl:text>
 +
        <xsl:value-of select="translate(substring-after(@time,' '),':',',')"/>
 +
        <xsl:text>) </xsl:text>
 +
        <xsl:value-of select="@nick"/>
 +
        <xsl:if test="not(@nick) or @nick = ''">
 +
            <xsl:value-of select="@from"/>
 +
        </xsl:if>
 +
        <xsl:text>: </xsl:text>
 +
        <xsl:value-of select="."/>
 +
<xsl:text>
 +
</xsl:text>
 +
    </xsl:template>
 +
</xsl:stylesheet>
 +
</nowiki>}}
 +
* Create {{ic|~/bin/history_import_kopete2pidgin_filename.xslt}} with this code:
 +
{{bc|1=
 +
<?xml version="1.0"?>
 +
<nowiki><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"></nowiki>
 +
    <xsl:output method="text" indent="no" />
  
Pidgin now has the 'Sametime' protocol as an option when creating accounts.
+
    <xsl:template match="kopete-history">
 +
        <xsl:value-of select="head/contact[@type = 'myself']/@contactId"/>
 +
        <xsl:text>/</xsl:text>
 +
        <xsl:value-of select="head/contact[not(@type)]/@contactId"/>
 +
        <xsl:text>/</xsl:text>
 +
        <xsl:value-of select="head/date/@year"/>
 +
        <xsl:text>-</xsl:text>
 +
        <xsl:if test="head/date/@month &amp;lt; 10">0</xsl:if>
 +
        <xsl:value-of select="head/date/@month"/>
 +
        <xsl:text>-</xsl:text>
 +
        <xsl:if test="string-length(substring-before(msg[1]/@time,' ')) &amp;lt; 2">0</xsl:if>
 +
        <xsl:value-of select="translate(msg[1]/@time,' :','.')"/>
 +
        <xsl:text>+0200EET.txt</xsl:text>
 +
    </xsl:template>
 +
</xsl:stylesheet>
 +
}}
 +
* Execute the command in the shell:
  
== Other packages ==
+
  ~/bin/history_import_kopete2pidgin.sh
Arch has other Pidgin-related packages. Here are the most popular (for a thorough list, search the AUR):
 
*pidgin-libnotify - Libnotify support, for theme-consistent notifications
 
*guifications - Toaster-style popup notifications
 
*microblog-purple - Libpurple plug-in supporting microblog services like Twitter
 
*pidgin-light - All supported protocols same as default; but without gstreamer, tcl, tk or xscreensaver support.  No video/voice.
 
  
==Skype plugin==
+
== Backup ==
  
Install {{Package AUR|skype4pidgin}} from the [[AUR]].
+
Save {{ic|~/.purple}} to backup all message logs, accounts and other application data.
  
 
== Troubleshooting ==
 
== Troubleshooting ==
  
*If facebook XMPP verification does not work for you, there a package in the aur [http://aur.archlinux.org/packages.php?ID=34479 pidgin-facebookchat] which does not require a unique user name (you may login with an email address)
 
  
*The facebookchat plugin will prompt for varification (enter these two words...), if that fails, hit cancel and log onto facebook with pidgin open, this will configre the plugin's security setting)
+
=== Version Match for Sametime ===
 +
 
 +
There was an issue if you would connect to the Sametime via Pidgin, it prompt "Version Match". A potential solution on the client side is to fake the version in accounts.xml. Insert/change the lines:
 +
 
 +
<setting name='fake_client_id' type='bool'>1</setting>
 +
<setting name='client_minor' type='int'>8511</setting>
 +
 
 +
in the <settings> section of Sametime account in accounts.xml which is located in $HOME/.purple/ folder.
 +
 
 +
=== Browser error ===
 +
 
 +
If clicking a link within Pidgin creates an error message about trying to use 'sensible-browser' to open a link, try editing {{ic|~/.purple/prefs.xml}}. Find the line referencing 'sensible-browser' and change it to this:
 +
<pref name='command' type='path' value='firefox'/>
 +
 
 +
This example assumes you use [[Firefox]].
 +
 
 +
As an alternative if the method above does not work you can set the desired browser in the pidgin preferences in the section "Browser".
 +
 
 +
=== ICQ Buddy Information encoding fix ===
  
=== Installing Pidgin After a Carrier Installation ===
+
You can change encoding for ICQ account if encoding in Buddy Information is not correct:
* If you previously installed [http://aur.archlinux.org/packages.php?ID=17191 Carrier] (aka [http://funpidgin.sourceforge.net/ FunPidgin]), follow these steps ''before'' installing Pidgin
+
Account > ''your ICQ account'' > Edit account > Advanced tab
* Quit Carrier
+
Select {{ic|Encoding: CP1251}} (for Cyrillic).
* Delete your ~/.purple directory '''(Warning: this will remove all your user settings for any programs that use libpurple, i.e. Pidgin, Carrier, etc.)'''
 
<pre>
 
rm -r ~/.purple
 
</pre>
 
* Remove Carrier and libpurple
 
<pre>
 
pacman -R carrier libpurple
 
</pre>
 
* Install Pidgin and libpurple
 
<pre>
 
pacman -S pidgin libpurple
 
</pre>
 
  
== External links ==
+
== See also ==
*[http://pidgin.im Pidgin homepage]
+
* [https://developer.pidgin.im/wiki/Using%20Pidgin Using Pidgin]
 +
* [[Wikipedia:Pidgin_(software)]]
 +
* [http://lukav.com/wordpress/2008/03/30/history-import-kopete-to-pidgin History import Kopete to Pidgin]
 +
* [https://confluence.atlassian.com/hipchatkb/connecting-to-hipchat-using-pidgin-751436267.html Connecting to HipChat using Pidgin]

Latest revision as of 02:40, 14 November 2017

From the project home page: "Pidgin is an easy to use and free chat client used by millions. Connect to AIM, Google Talk, ICQ, IRC, XMPP, and more chat networks all at once."

Installation

Install the pidgin package. Notable variants are:

  • Pidgin Light — Light Pidgin version without GStreamer, Tcl/Tk, XScreenSaver, video/voice support.
http://pidgin.im/ || pidgin-lightAUR

You may also want to install additional plugins from the purple-plugin-pack.

Spellcheck

The aspell package will be installed as a dependency, but to prevent all of your text from showing up as incorrect you will need to install an aspell dictionary. See the aspell article.

Note: The switch spell plugin is included in the purple-plugin-pack. It allows you to switch between multiple languages.

Services

Facebook

Install the purple-facebook package. (or purple-facebook-gitAUR)

Then add a new account, select Facebook as the protocol, enter your Facebook username and password and login.

IRC

This is a small tutorial for connecting to Freenode. It should work for other IRC networks as long as you substitute the port numbers and other specific settings.

Go to Accounts > Manage Accounts > Add. Fill/select the following options:

Protocol: IRC
Username: your username

Now go to Buddies > New instant message (or hit Ctrl+m), fill 'freenode.net' in the textbox and username@irc.freenode.net, then click 'Ok'. Type:

/join #archlinux

The channel is irrelevant.

In order to register your nick, type:

/msg nickserv register password email-addres

Follow the instructions from the registration mail. For further help type:

/msg nickserv help
/msg nickserv help command

This final step will add your channel to 'Buddies': go to Buddies > Add chat, fill the correct channel in the textbox named channel (#archlinux).

Sametime protocol

Install the libpurple-meanwhileAUR package. The 'Sametime' protocol will be available when creating an account.

SIP/Simple protocol for Skype for Business/Office 365/Lync

Install the pidgin-sipe package.

Skype plugin

Install the purple-skypeweb or skype4pidgin-gitAUR package.

Rocket.Chat plugin

Install the purple-rocketchatAUR package.

Security

Pidgin uses Libpurple 2 which stores passwords unencrypted (in plaintext) in $HOME/.purple/account.xml, see [1]. You can store them in a keyring by using a plugin like:

Privacy

Pidgin has some privacy rules set by default. Namely, the whole world cannot send you messages; only your contacts or people selected from a list. Adjust this, and other settings in Tools > Privacy.

Pidgin-OTR

This is a plugin that brings Off-The-Record (OTR) messaging to Pidgin. OTR is a cryptographic protocol that will encrypt your instant messages.

First you need to install pidgin-otr from the official repositories. Once this has been done, OTR has been added to Pidgin.

  1. To enable OTR, start Pidgin and go to Tools > Plugins or press Ctrl+u. Scroll down to the entry entitled "Off-The-Record Messaging". If the checkbox beside it is not checked, check it.
  2. Next, click on the plugin entry and select "Configure plugin" at the bottom. Select which account you wish to generate a key for, then click "Generate". You will have now generated a private key. If you are not sure what the other options do, leave them, the default options will work fine.
  3. The next step is to contact a buddy who also has OTR installed. In the chat window, a new icon should appear to the top right of your text input box. Click on it, and select "Start private conversation". This will start an 'Unverified' session. Unverified sessions are encrypted, but not verified - that is, you have started a private conversation with someone using your buddy's account who has OTR, but who might not be your buddy. The steps for verification of a buddy are beyond the scope of this section; however, they might be added in the future.

Pidgin-Encryption

pidgin-encryption transparently encrypts your instant messages with RSA encryption. Easy-to-use, but very secure.

You can enable it the same way as Pidgin-OTR.

Now you can open conversation window and new icon should appear beside menu. Press it to enable or disable encryption. Also if you want to make encryption enabled by default right-click on a buddy's name (in your buddy list), and select Turn Auto-Encrypt On. Now, whenever a new conversation window for that buddy is opened, encryption will start out as enabled.

Pidgin-GPG

Pidgin-GPG transparently encrypt conversations using GPG, and taking advantage of all the features of a pre-existing WoT.

The plugin is available on AUR as pidgin-gpg-gitAUR. It can be enabled the same way as the previously mentioned ones.

Other packages

Arch has other Pidgin-related packages. Here are the most popular (for a thorough list, search the AUR):

  • pidgin-libnotify - Libnotify support, for theme-consistent notifications
  • purple-libnotify-plusAUR - Notifications with Libnotify which does work with notify-osd. It might matter for WMs without DE, like i3, the original pidgin-libnotify instead uses plain messagebox there.
  • guifications - Toaster-style popup notifications
  • microblog-purpleAUR[broken link: archived in aur-mirror] - Libpurple plug-in supporting microblog services like Twitter
  • pidgin-latexAUR - A small latex plugin for pidgin. Put math between $$ and have it rendered (recepient also needs to have this installed)

Auto logout on suspend

If you suspend your computer pidgin seems to stay connected for about 15 minutes. To prevent message loss, it is needed to set your status offline before suspending or hibernating. The status message won't be changed.

Therefore create a new systemd unit pidgin-suspend in /etc/systemd/system Take the following snippet and replace myuser with your user.

[Unit]
Description=Suspend Pidgin
Before=sleep.target
StopWhenUnneeded=yes

[Service]
Type=oneshot
User=myuser
RemainAfterExit=yes
Environment=DISPLAY=:0
ExecStart=-/usr/bin/purple-remote setstatus?status=offline
ExecStop=-/usr/bin/purple-remote setstatus?status=available

[Install]
WantedBy=sleep.target

If you are using pm-utils, you could create a 00pidgin file in /etc/pm/sleep.d/ instead.

#!/bin/sh
#
# 00pidgin: set offline/online status

case "$1" in
    hibernate|suspend)
        DISPLAY=:0 su -c 'purple-remote setstatus?status=offline' ''%myuser''
    ;;
    thaw|resume)
        DISPLAY=:0 su -c 'purple-remote setstatus?status=available' ''%myuser''
    ;;
    *) exit $NA
    ;;
esac

Minimize to tray

To make use of the Xfce system tray go to preferences and enable the system tray in the section "Interface". You can now close the main window and run pidgin minimized. You will also be able to see message notifications in the tray.

History import Kopete to Pidgin

  • Install xalan-c and create ~/bin/history_import_kopete2pidgin.sh with this code:
#!/bin/sh

KOPETE_DIR=~/.kde4/share/apps/kopete/logs
PIDGIN_DIR=~/.purple/logs
CURRENT_DIR=~/bin

cd

if [ ! -d $KOPETE_DIR ];then
    echo "Kopete log directory not found"
    exit 1;
fi

if [ ! -d $PIDGIN_DIR ];then
    echo "Pidgin log directory not found"
    exit 2;
fi

for KOPETE_PROTODIR in $(ls $KOPETE_DIR); do
    PIDGIN_PROTODIR=$(echo $KOPETE_PROTODIR | sed 's/Protocol//' | tr [:upper:] [:lower:])
    for accnum in $(ls $KOPETE_DIR/$KOPETE_PROTODIR); do
        echo "Account number: $accnum"
        for num in $(ls $KOPETE_DIR/$KOPETE_PROTODIR/$accnum); do
            FILENAME=$(Xalan $KOPETE_DIR/$KOPETE_PROTODIR/$accnum/$num $CURRENT_DIR/history_import_kopete2pidgin_filename.xslt)
            if [ $? = 0 ]; then
                echo "$KOPETE_DIR/$KOPETE_PROTODIR/$accnum/$num"
                echo " -> $PIDGIN_DIR/$PIDGIN_PROTODIR/$FILENAME"
                mkdir -p $(dirname $PIDGIN_DIR/$PIDGIN_PROTODIR/$FILENAME)
                Xalan -o $PIDGIN_DIR/$PIDGIN_PROTODIR/$FILENAME $KOPETE_DIR/$KOPETE_PROTODIR/$accnum/$num $CURRENT_DIR/history_import_kopete2pidgin.xslt
            fi
        done
    done
done
  • Make ~/bin/history_import_kopete2pidgin.sh executable:
chmod +x ~/bin/history_import_kopete2pidgin.sh
  • Create ~/bin/history_import_kopete2pidgin.xslt with this code:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="text" indent="no" />

    <xsl:template match="kopete-history">
        <xsl:apply-templates select="msg"/>
    </xsl:template>

    <xsl:template match="msg">
        <xsl:text>(</xsl:text>
        <xsl:value-of select="translate(substring-after(@time,' '),':',',')"/>
        <xsl:text>) </xsl:text>
        <xsl:value-of select="@nick"/>
        <xsl:if test="not(@nick) or @nick = ">
            <xsl:value-of select="@from"/>
        </xsl:if>
        <xsl:text>: </xsl:text>
        <xsl:value-of select="."/>
		<xsl:text>
</xsl:text>
    </xsl:template>
</xsl:stylesheet>
</nowiki>
  • Create ~/bin/history_import_kopete2pidgin_filename.xslt with this code:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="text" indent="no" />

    <xsl:template match="kopete-history">
        <xsl:value-of select="head/contact[@type = 'myself']/@contactId"/>
        <xsl:text>/</xsl:text>
        <xsl:value-of select="head/contact[not(@type)]/@contactId"/>
        <xsl:text>/</xsl:text>
        <xsl:value-of select="head/date/@year"/>
        <xsl:text>-</xsl:text>
        <xsl:if test="head/date/@month &lt; 10">0</xsl:if>
        <xsl:value-of select="head/date/@month"/>
        <xsl:text>-</xsl:text>
        <xsl:if test="string-length(substring-before(msg[1]/@time,' ')) &lt; 2">0</xsl:if>
        <xsl:value-of select="translate(msg[1]/@time,' :','.')"/>
        <xsl:text>+0200EET.txt</xsl:text>
    </xsl:template>
</xsl:stylesheet>
  • Execute the command in the shell:
~/bin/history_import_kopete2pidgin.sh

Backup

Save ~/.purple to backup all message logs, accounts and other application data.

Troubleshooting

Version Match for Sametime

There was an issue if you would connect to the Sametime via Pidgin, it prompt "Version Match". A potential solution on the client side is to fake the version in accounts.xml. Insert/change the lines:

<setting name='fake_client_id' type='bool'>1</setting>
<setting name='client_minor' type='int'>8511</setting>

in the <settings> section of Sametime account in accounts.xml which is located in $HOME/.purple/ folder.

Browser error

If clicking a link within Pidgin creates an error message about trying to use 'sensible-browser' to open a link, try editing ~/.purple/prefs.xml. Find the line referencing 'sensible-browser' and change it to this:

<pref name='command' type='path' value='firefox'/>

This example assumes you use Firefox.

As an alternative if the method above does not work you can set the desired browser in the pidgin preferences in the section "Browser".

ICQ Buddy Information encoding fix

You can change encoding for ICQ account if encoding in Buddy Information is not correct:

Account > your ICQ account > Edit account > Advanced tab

Select Encoding: CP1251 (for Cyrillic).

See also