[gaim-migrate @ 2952]
[pidgin-git.git] / doc / FAQ
blobf64c83ff2416fb38cf7211b6cd451d2e761f14e1
1 Gaim: The Pimpin' Penguin IM Clone Thats Good For The Soul
3 1  The Basics
4         1.1  What does 'gaim' stand for?
5         1.2  Where are my log files stored?
6         1.3  What are GtkHTML and GtkIMHtml, and why not just use GNOME's
7              GtkHTML?
8         1.4  How do I load plugins/perl scripts?
9         1.5  I'm not a native English speaker and I would like a translated
10              version of gaim.
11         1.6  Why can I import my buddylist but not export it?
13 2  Multiple Connections
14         2.1  What do you mean by "multiple connections"?
15         2.2  How do I sign on more than one account?
16         2.3  How do buddy lists work for multiple connections?
17         2.4  What's a PRPL?
18         2.5  How do I use a different protocol?
20 3  About the Protocols (what they support, and how to do things with them)
21         3.0  Introduction
22         3.1  TOC
23         3.2  Oscar
24         3.3  Yahoo!
25         3.4  IRC
26         3.5  ICQ
27         3.6  MSN
28         3.7  Jabber
29         3.8  Napster
31 4  Problems
32         4.1  Sound doesn't work
33         4.2  Clicking on URLs doesn't open Netscape
34         4.3  I don't use Netscape
35         4.4  I have a bug not described here
37 5  Programming
38         5.1  I have a patch for gaim!
39         5.2  I have a plugin/perl script for gaim!
40         5.3  Can you teach me how to program GTK?
42 6  Miscellaneous
43         6.1  Can I talk to you on IM?
44         6.2  I want to write an IM client. Will you help me?
45         6.3  I have money. I need software written. Can you help?
46         6.4  I have hardware here that's not being used. Can you use it?
47         6.5  I would like to send you beer.
48         6.6  Are you going to port this to Windows?
49         6.7  Why no AOL logo?
50         6.8  Why the GPL?
51         6.9  What is a wagii?
52         6.10 What window manager/distribution/other crap do you use?
53         6.11 Is XX a good hard drive, YY a good monitor and ZZ a good CPU?
54         6.12 I want to contribute to the effort. Where can I send beer to?
56 ---
58 1  The Basics
60 1.1  What does 'gaim' stand for?
62 It's basically the letter 'g' tacked on to the beginning of 'AIM' (which is
63 fairly obvious). G stands for all sorts of good things. Girls, Godzilla, GTK,
64 graham crackers, whatever.
66 1.2  Where are my log files stored?
68 Your logs are stored in $HOME/.gaim/logs/. They had previously been stored in
69 $HOME/.gaim/YourScreenName/ (e.g. $HOME/.gaim/EWarmenhoven).
71 1.3  What are GtkHTML and GtkIMHtml, and why not just use GNOME's GtkHTML?
73 The widget Gaim had previously used to display HTML was called GtkHTML, and
74 was written by Mark and Jim specifically for Gaim. Over time, Rob and Eric
75 hacked at it (read: broke it) and it's gotten to be very fragile and fairly
76 buggy.
78 One day Eric got pissed off at GtkHTML and decided to rewrite it, and called
79 it GtkIMHtml (IM to indicate that it should be used in IM clients). He made
80 it its own separate project, so that other IM clients (like Jabber clients)
81 could use it. He based it somewhat off of the old GtkHTML and GNOME's GtkHTML.
83 GNOME's GtkHTML is a very powerful HTML viewer. Because of this, it isn't
84 well-suited for Gaim. It wouldn't be very good if we let you have IFrames in
85 your conversation, for example. Also, GNOME's GtkHTML depends on a lot of
86 GNOME libraries that we don't want to force people to use in Gaim. (There is
87 a strip-down version, CSCHTML, which doesn't use the GNOME libraries; but the
88 first objection (that it supports too many tags) still applies.)
90 1.4  How do I load plugins/perl scripts?
92 Plugins you had loaded when you quit gaim are loaded again when you start
93 gaim. To load a new plugin, either click 'Plugins' on the login screen, or
94 select 'Plugins' from the 'Tools' menu in the buddy list. From there, you
95 can load and unload plugins, and configure certain ones. If you click on
96 the 'Load Plugin' button, it will present you with a file dialog, asking
97 which file you want to load; it will default to looking for a .so file in
98 the directory plugins get installed to, though you don't have to load a .so
99 file, and you don't have to load it from that directory.
101 When you start gaim, all the .pl files in ~/.gaim will be loaded
102 automatically. You can also load new scripts from the 'Perl' menu in 'Tools'.
103 From that menu, you can load a new script (similarly to how you loaded a
104 plugin above), unload all your loaded scripts, and list which scripts you have
105 loaded.
107 1.5  I'm not a native English speaker and I would like a translated version of
108 gaim.
110 Gaim currently has a few translations (French, Spanish, Korean, and Simplified
111 Chinese); however, most of them are out of date. If you would like to update
112 or add a translation of gaim, email or IM either Rob or Eric and they can tell
113 you how to go about it.
115 1.6  Why can I import my buddylist but not export it?
117 Because you don't have to.  Gaim, out of the kindness of its sweet little 
118 heart, automagically exports your buddylist for you.  You can find a copy
119 of your list in ~/.gaim/YOURNAME.PROTO.BLIST.  For example, if you're
120 using AIM, and your name is JoeUser, then your buddy list could be found
121 in: ~/.gaim/JOEUSER.0.blist.
123 2  Multiple Connections
125 2.1  What do you mean by "multiple connections"?
127 Multiple Connections means that it's possible to connect to the AOL servers
128 using more than one screenname at a time. It's just a way of not having to run
129 three copies of gaim for each of your screennames.
131 2.2  How do I sign on more than one account?
133 The Account Editor controls all of your accounts, and lets you add, delete,
134 modify, and sign on/off accounts. It is accessible from the login window or
135 from the 'Tools' menu in the buddy list as 'Accounts'. Simply highlight the
136 account you want to sign on, and click the 'Sign On/Off' button. To sign on
137 another account, highlight it and click the 'Sign On/Off' button. There is a
138 column labeled 'Currently Online' to let you know if the account is online or
139 not.
141 2.3  How do buddy lists work for multiple connections?
143 "The same as they did before" is the simple answer. Each account you have will
144 have its own buddy list, which you can add buddies to and remove from. In the
145 'Edit Buddies' tab of your buddy list, you'll see the name of each of your
146 online accounts (unless if you only have one), with its buddy list nested
147 underneath it.
149 2.4  What's a PRPL?
151 PRPL stands for Protocol Plugin. It's a way to dynamically add new protocols
152 to gaim. This allows you to use gaim as your AIM, ICQ, Yahoo, and even IRC
153 client, all at the same time. Loading a PRPL is just like loading any other
154 plugin - simply load the .so file from the plugins dialog.
156 2.5  How do I use a different protocol?
158 In the Account Editor,  click the 'Add' button to add a new account. Below the
159 password entry, you should see a menu labeled 'Protocol', with a list of the
160 protocols available for you to use. (If you don't see the protocol you want to
161 use, make sure you have the proper PRPL loaded.) Enter in your username (for
162 ICQ this should be your UIN) and password, and you're set. You can then sign
163 the account on by clicking the 'Sign On/Off' button when the account is
164 highlighted.
167 3  About the Protocols (what they support, and how to do things with them)
169 3.0  Introduction
171 This really only describes the protocol, and how gaim is able to use it. For
172 a listing of what gaim has implemented with each protocol, please read the
173 STATUS file.
175 3.1  TOC
177 TOC is an open protocol (meaning that there's open documentation from the
178 people who developed it), developed by AOL, for clients to use to connect to
179 the AIM server. It has stopped being supported by AOL (though they do still
180 make changes to the TOC server). It is a strip-down and simplified version of
181 their "real" protocol, Oscar.
183 TOC is a TCP protocol, and will only ever make one TCP connection (unless if
184 you accept a file transfer request). Your buddy list is stored on the server,
185 and gaim keeps a locally cached copy as well. When you sign on the server and
186 local lists are merged.
188 3.2  Oscar
190 Oscar is the protocol that the Windows version of AIM uses (and actually,
191 ICQ2000 uses it too). It's a closed protocol, meaning that in order for gaim
192 to use it, someone had to reverse-engineer it. For gaim, the libfaim authors
193 did this, and wrote a library so that we could use it.
195 Oscar is a TCP protocol, but it makes several connections: the authorizor (the
196 initial connection, who you send your screenname/password to), the BOS (which
197 is the "main" connection, through which all your messages go), ChatNav (which
198 lets you join chat rooms), as well as one for each chat room you join. Oscar
199 does let you store your buddy list on the server, but libfaim hasn't added
200 that functionality yet.
202 3.3  Yahoo!
204 Yahoo! uses a closed protocol; the authors of libyahoo reverse-engineered it
205 and gaim uses that library. It is a TCP protocol, and makes several
206 connections, though I'm not entirely sure at which points. It stores your
207 buddy list on the server, and gaim keeps a locally cached copy. When you sign
208 on the server and local lists are merged.
210 3.4  IRC
212 IRC is an open protocol (though I've heard that some servers deviate slightly
213 from it). It's a TCP protocol, and will only ever make one connection (outside
214 of DCC connections).
216 3.5  ICQ
218 ICQ is a closed protocol, though there have been several groups of people who
219 have reverse-engineered it, and there are several libraries available. Gaim
220 uses icqlib (which supports multiple connections, as opposed to libicq, which
221 does not). It is a mix of UDP and TCP: the connection to the server is UDP,
222 and conversations are TCP unless if they are sent through the server. This
223 means you'll make one UDP connection, and possibly very many TCP connections.
225 3.6  MSN
227 MSN is a weird TCP protocol written by Microsoft.  It requires multiple
228 connections and is a real headache :).
230 3.7  Jabber
232 Jabber is an open protocol, developed by the Jabber team, and is XML-encoded.
233 It is a TCP protocol, and you will only ever make one TCP connection. Jabber
234 has a feature it calls 'transports', where the server tells you which services
235 it has available (such as AIM or ICQ), and you tell it which service you would
236 like to use. This way you can have only one connection, but be connected to
237 AIM and ICQ (among others) several times. Anyone who gives a damn about Open
238 Source, especially open messaging, should use Jabber. They have the only Open
239 Source IM server.
241 3.8  Napster
243 Napster is, as you know, the protocol used by that wonderful little program
244 called napster.  You know the one!  It's what millions of college kids across
245 america are using to sastisfy their longing for music :-D.  Anyways, gaim supports
246 it.  It's kind of fiunky, though. Napster is a TCP protocol and only requires one
247 connection to the server.  All file transfers, however, are explicitly client to
248 client.  The plugin currently only supports one way file transfer (downloading)
249 from people who are _not_ firewalled.  You can also send private messages to each
250 other, join chat rooms, browse a user's files, and search.  More implementation
251 coming soon.
253 4  Problems
255 4.1  Sound doesn't work
257 ./configure should autodetect whether or not you have ESD libraries. If you
258 have them it will compile with them; if not it won't. If it compiles with them
259 you don't need to be running the ESD daemon; it'll automatically fall back to
260 using /dev/dsp. Make sure gaim has the proper permissions to talk to /dev/dsp
261 and /dev/audio though!
263 4.2  Clicking on URLs doesn't open Netscape
265 Netscape either needs to be running on the current display (though gaim should
266 handle remote netscape windows OK), or 'netscape' needs to be in your path.
268 4.3  I don't use Netscape
270 There's the option to manually enter which browser you'd like to use. We're
271 interested in supporting browsers other than Netscape though; send us some
272 information about how to send a URL to your browser (source is nice :) ).
274 4.4  I have a bug not described here
276 We have a page at http://sourceforge.net/projects/gaim/, and from there you
277 can report your bug.
280 5  Programming
282 5.1  I have a patch for gaim!
284 Great! Send it over to the Patches section on our sourceforge page,
285 http://sourceforge.net/projects/gaim/. From there we'll take a look at it (no
286 promises that it'll get in, but we'll at least take a look at it).
288 5.2  I have a plugin/perl script for gaim!
290 Great! Post it to the Patches section on our sourceforge page, and mark it as
291 a plugin. Then other people will be able to see it and use it. (Make sure that
292 you understand that your plugin is necessarily GPL'd, and you must provide
293 source to your plugin.)
295 5.3  Can you teach me how to program GTK?
297 Actually, I can't. I'm a very bad teacher. I'm much too impatient. There is a
298 really great tutorial and API reference on the GTK website though,
299 http://www.gtk.org/. That's how I learned, anyway.
302 6  Miscellaneous
304 6.1  Can I talk to you on IM?
306 Sure. Our IM names can be found in the AUTHORS file. Keep in mind though that
307 we're busy people. We use those screennames as our main screen names, not just
308 to talk to gaim users. So please, don't IM us for us to answer questions about
309 Linux. We'd like to be able to answer everyone's questions, but we just don't
310 have the time. We aren't paid to hack gaim; we do have other jobs.  Also,
311 please don't waste our time with a simple "hi" or "hello."  Don't ask if
312 you can ask a question, just ask it.  We'll usually respond.
314 6.2  I want to write an IM client. Will you help me?
316 I'll give you advice, but other than that, no (unless you'd like to pay me).
318 6.3  I have money. I need software written. Can you help?
320 Oh yes. Our email addresses are warmenhoven@yahoo.com (EWarmenhoven) and
321 rob@marko.net (RobFlynn).
323 6.4  I have hardware here that's not being used. Can you use it?
325 Most certainly. IM me or email me and I'll tell you where you can ship it to
326 (I might be able to scratch together shipping money even).
328 6.5  I would like to send you beer.
332 6.6  Are you going to port this to Windows?
334 No. If you'd like to work on a port help yourself; but I really really dislike
335 Windows (in all its closed-source evilness).
337 6.7  Why no AOL logo?
339 AOL's legal staff told us no-no.
341 6.8  Why the GPL?
343 I like the GPL.
345 6.9  What is a wagii?
347 Interesting question that you ask, there. 'Wagii' is the official celebratory
348 cry of gaim. Anytime you are feeling happy or excited, just remember all of
349 the hard work that we have done to provide you with this wonderful, free piece
350 of software -- as the pure, raw, emotion flows through you, maybe you too will
351 let out the cry of -- Wagii.
353 It is also the sound a Penguin Samurai makes :)
355 6.10 What window manager/distribution/other crap do you use?
357 Rob uses Red Hat, with Ximian GNOME on top.  I dont really like Ximian but I like
358 Gnome.  On top of my Ximian Gnome is Sawfish.  Eric hates saw fish.  I kinda of
359 like it even though it makes me mad. 
361 Eric uses debian woody. He uses Enlightenment as his window manager; though
362 the only reason it would seem that Eric uses X at all is to support having
363 his 20 Eterms and 4 Mozilla windows open. Oh yeah, and gaim_applet.
365 6.11 Is XX a good hard drive, YY a good monitor and ZZ a good CPU?
367 You could send us one and we could tell you... :)
369 6.12 I want to contribute to the effort. Where can I send beer to?
371 IM RobFlynn or email him at rob@marko.net.