summaryrefslogtreecommitdiff
path: root/Pidgin
blob: 12a4fa2f7d0fb30913ff52d6f9f68c5289a4dba7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
[[Category:Internet applications]]
[[Category:Internet Relay Chat]]
[[de:Pidgin]]
[[es:Pidgin]]
[[ja:Pidgin]]
[[ru:Pidgin]]
[[zh-CN: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, MSN, Yahoo, and more chat networks all at once.''

== Installation ==

[[pacman|Install]] {{Pkg|pidgin}}, available in the [[official repositories]].
Notable variants are:
* {{App|Pidgin Light|Light Pidgin version without GStreamer, Tcl/Tk, XScreenSaver, video/voice support.|http://pidgin.im/|{{AUR|pidgin-light}}}}

You may also want to install additional plugins from the {{Pkg|purple-plugin-pack}}.

== Spellcheck ==

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 like {{Pkg|aspell-en}}. Use {{ic|pacman -Ss aspell}} to list available languages.

If spell checking doesn't work try running aspell separately to check that it is setup correctly and doesn't spit out a helpful error message.

 $ echo center | aspell -a

{{Note|The '''switch spell''' plugin is included in the {{Pkg|purple-plugin-pack}}. It allows you to switch between multiple languages.}}

== Sound fix ==

To have event sounds working, install the {{Pkg|gstreamer0.10-good}} package. Alternatively, in the "Sounds" preferences tab, the method can be set to 'command' and one of the following sound commands used.

After configuring [[ALSA]]:
 $ aplay %s

If using [[OSS]]:
 $ ossplay %s

And for [[PulseAudio]]:
 $ paplay %s

== 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]].

== 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 2012 or QIP Infium, second solution is to install and enable plugin from {{AUR|pidgin-qip-decoder}} package currently available from [[AUR]].

== ICQ ==

You can change encoding for ICQ account if encoding in Buddy Information is not correct:
 Account > ''your ICQ account'' > Edit account > Advanced tab
Select {{ic|Encoding: CP1251}} (for Cyrillic).

== 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 {{ic|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).

== Xfire ==

Simply install {{Pkg|pidgin-gfire}} and then add a new account, selecting xfire as protocol.

== Web QQ ==

Simply install {{Pkg|pidgin-lwqq}} and then add a new account, selecting webQQ as the protocol. QQ is a proprietary chat protocol/IM service mainly used in Asia, particularly China.

== Facebook XMPP ==

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

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
* Changing your Facebook privacy settings to "Turn off all apps" (under Apps and Websites), will disable your ability to send messages via jabber (see [https://developer.pidgin.im/wiki/Protocol%20Specific%20Questions?version&#61;123#WhycantPidginseemtosendFacebookmessages Why can't Pidgin seem to send Facebook messages]).
* You may notice that all Facebook contacts are in a separate group every time you login with your XMPP account even though you moved them to other groups or created meta-contacts. If you want to be able to group contacts and create meta-contacts you can use the plugin {{AUR|pidgin-xmpp-ignore-groups}} (after installing the plugin activate the option ''Ignore server-sent groups'' on the Advanced tab in your XMPP account settings). It essentially ignores the group data sent by the server roaster and preserves your local changes. It is easier to enable this plugin on your account ''before'' logging in the first time, so your contacts are put into the default group instead of a group called "Facebook Friends". Enabling it afterward won't move the contacts out of this group.
}}

== 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 {{Pkg|pidgin-otr}} from the official repositories. 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.

=== Pidgin-Encryption ===

{{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 [https://aur.archlinux.org/packages/pidgin-gpg/ pidgin-gpg]. It can be enabled the same way as the previously mentioned ones.

== Sametime protocol ==

Sametime support is available by installing two packages from [[AUR]]:

* {{AUR|meanwhile}}
* {{AUR|libpurple-meanwhile}}

Previously it was required to rebuild Pidgin to remove the {{ic|--disable-meanwhile}} flag from compilation, this is no longer needed. Once these two packages are installed the 'Sametime' protocol will be available when creating an account.

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

The {{AUR|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):
*{{Pkg|pidgin-libnotify}} - Libnotify support, for theme-consistent notifications
*{{Pkg|guifications}} - Toaster-style popup notifications
*{{AUR|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)

== Skype plugin ==

Install {{AUR|skype4pidgin-svn}} from the [[AUR]].

== 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 {{ic|pidgin-suspend}} in {{ic|/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 {{ic|00pidgin}} file in {{ic|/etc/pm/sleep.d/}} instead.

{{bc|<nowiki>
#!/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
</nowiki>}}

== Troubleshooting ==

* If Facebook XMPP verification does not work for you, there a package in the aur [https://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 configure the plugin's security setting)

=== Installing Pidgin after a Carrier installation ===

If you previously installed {{AUR|carrier}} (aka [http://funpidgin.sourceforge.net/ FunPidgin]), follow these steps ''before'' installing Pidgin:
* Quit Carrier
* Delete your {{ic|~/.purple}} directory.
{{Warning|This will remove all your user settings for any programs that use libpurple, i.e. Pidgin, Carrier, etc.}}
 rm -r ~/.purple
* Uninstall '''carrier''' and '''libpurple'''.
* Install '''pidgin''' and '''libpurple'''.

== History import Kopete to Pidgin ==

* Install {{Pkg|xalan-c}} and create {{ic|~/bin/history_import_kopete2pidgin.sh}} with this code:
{{bc|<nowiki>
#!/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
</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" />

    <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 {{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" />

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

 ~/bin/history_import_kopete2pidgin.sh

== See also ==

* [http://pidgin.im Pidgin homepage]
* [http://lukav.com/wordpress/2008/03/30/history-import-kopete-to-pidgin History import Kopete to Pidgin]