# Pidgin (简体中文)

翻译状态： 本文是英文页面 Pidgin 的翻译，最后翻译时间：2012-09-30，点击这里可以查看翻译后英文页面的改动。

Pidgin （以前的Gaim）是Linux平台上的一个即时信息客户端，它可以连接到许多流行的即时信息网络，比如Live Messenger, Yahoo, IRC, AIM等等。Pidgin的一个关键特性是它可以同时连接许多即时信息网络。

## 安装

官方软件仓库 提供了 pidgin 的安装包。

你可以从purple-plugin-pack处安装其它的插件。

## 拼写检查

作为依赖Aspell会被默认安装，但为了避免你输入的所有文本都显示为“拼写错误”，你需要安装一个aspell字典：

    # pacman -S aspell-en

这将安装英文字典。使用`pacman -Ss aspell`来查看可用的语言。

注意: switch spell插件包含在purple-plugin-pack中，它允许你在不同的语言间切换。

## 修复声音

为了修复声音需要安装gstreamer0.10-good包。或者，你可以在配置的声音选项卡中把方法（method）切换为‘命令’（'command'），然后使用下面的命令之一：

如果你使用的是ALSA:

    aplay %s

如果使用的是OSS:

    ossplay %s

## 浏览器错误

如果在Pidgin中点击网络链接会产生一个关于“试图使用'sensible-browser'打开链接”的错误，试试编辑`~/.purple/prefs.xml`。找到与'sensible-browser'相关的行改为以下的样子：

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

上面的例子假设你使用Firefox.

## QIP Encoding bug

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.

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 (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).

## Xfire

只要安装 pidgin-gfire ，然后添加新账户，在协议处选择xfire。

## Facebook XMPP

Since Facebook Chat supports XMPP, you can use Pidgin without extra plugins. See this article for more information: 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]

1. Go to "Accounts" and select "Manage Accounts."

2. On the Basic tab, enter the following info:

  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:

  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
Note: Changing your facebook privacy settings to "Turn off all apps" (under Apps and Websites), will disable your ability to send messages via jabber.

## 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-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 [extra], like so:

    # 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 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.

### Pidgin-Encryption

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

    # pacman -S pidgin-encryption

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

Now you can open conversation window and new icon sould 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.

## Sametime protocol

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 `~/builds` directory.

First install meanwhile from the AUR.

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.

### [extra] package

Make sure you have installed the Arch Build System and downloaded the ABS tree.

Now copy the pidgin directory of ABS to `~/builds`:

    $ cp -r /var/abs/extra/pidgin ~/builds

Go to `~/builds/pidgin` and edit the `PKGBUILD` file. Go to the `build()` section and make sure you remove the `--disable-meanwhile` line from the configure options.

Make the package:

    $ makepkg -s

Install first the libpurple package as root:

    # pacman -U libpurple-version-arch.pkg.tar.gz

After that install the pidgin package as root:

    # pacman -U pidgin-version-arch.pkg.tar.gz

Pidgin now has the 'Sametime' protocol as an option when creating accounts.

### AUR package

Download and extract your Pidgin package from AUR (this example will use pidgin-gnome, change to preference):

    $ cd ~/builds && wget https://aur.archlinux.org/packages/pidgin-gnome/pidgin-gnome.tar.gz && tar xfvz pidgin-gnome.tar.gz

Change into the extracted directory:

    $ cd pidgin-gnome

In order to have 'Sametime' support you must remove the following from PKGBUILD

    --disable-meanwhile

Build the package:

    $ makepkg -s

Install the package as root:

    # pacman -U pidgin-gnome-2.5.8-1-i686.pkg.tar.gz

Pidgin now has the 'Sametime' protocol as an option when creating accounts.

## SIP/Simple protocol for Live Communications Server 2003/2005/2007

The pidgin-sipe plugin is available from AUR.

## 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
- 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插件

从 AUR 安装 skype4pidgin 。

## Auto logout on suspend

If you suspend your computer pidgin seems to stay connected for about 15 minutes. To prevent message loss create a `00pidgin` file in `/etc/pm/sleep.d/` to set your status to offline before suspending or hibernating. The status message won't be changed. Take the following script and replace `user` with your user.

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

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

## Troubleshooting

- If facebook XMPP verification does not work for you, there a package in the aur 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)

### Installing Pidgin After a Carrier Installation

- If you previously installed Carrier (aka FunPidgin), follow these steps before installing Pidgin
- Quit Carrier
- Delete your ~/.purple directory (Warning: this will remove all your user settings for any programs that use libpurple, i.e. Pidgin, Carrier, etc.)

    rm -r ~/.purple

- Remove Carrier and libpurple

    pacman -R carrier libpurple

- Install Pidgin and libpurple

    pacman -S pidgin libpurple

## History Import Kopete To Pidgin

- Install xalan-c

    pacman -S xalan-c

- 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>

- 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 < 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,' ')) < 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

## See also

- Pidgin homepage
- History Import Kopete To Pidgin

Categories:

- Internet applications (简体中文)
- Internet Relay Chat (简体中文)