sync with 0.8.0cvs1
[claws.git] / README.claws
1 README.claws
2 ------------
3
4 Summary:
5
6 1. What is Sylpheed Claws?
7 2. Switching between Sylpheed Claws and Sylpheed
8    * From Sylpheed to Sylpheed Claws
9    * From Sylpheed Claws to Sylpheed
10 3. Things Claws does different
11    * auto address replacement in summary view
12    * manual selection of MIME types for attachments
13    * sharing mail folders
14    * default to address for folders
15    * threading mode per folder
16    * simplify subject string
17    * pixmap themes
18    * user definable actions
19    * spell checking (with installation instructions)
20 4. How to contribute
21 5. How to request features
22 6. Installing Claws from CVS
23 7. History
24
25
26
27 1. What is Sylpheed Claws?
28 --------------------------
29
30 Sylpheed Claws is a bleeding edge branch of Sylpheed, a light weight mail 
31 user agent for UNIX. Features in this branch may (or may not) end up in 
32 Sylpheed. 
33
34 Hiroyuki's ChangeLog is also included in the claws-branch distribution, 
35 so it should be easy to spot which features were merged with Sylpheed
36 (and which features were not).
37
38 For brevity Sylpheed Claws is referred to as Claws, and Sylpheed as either
39 Sylpheed or Main.
40
41
42
43 2. Switching between Sylpheed Claws and Sylpheed
44 ------------------------------------------------
45
46   From Sylpheed to Sylpheed Claws       
47   -------------------------------
48
49   From the user perspective Claws is just a fancy Sylpheed, so it uses the
50   same sylpheed setting files located in ~/.sylpheed.
51
52   It's always a good idea to back up all files in ~/.sylpheed in case
53   you want to switch back to Sylpheed. (You don't have to backup the
54   directories.)
55
56   There are some things that frequently come up when switching to Claws:
57
58
59   * Why does the advanced filtering system not work?
60
61     Claws uses the new filtering system as soon as you define a new rule for it.
62     Your old sylpheed filter rules will not be used. In subdirectory tools/ of
63     the distribution there is a Perl script called filter_conv.pl which converts
64     old filter rules to the claws filtering system.
65   
66
67   * What happened to the compose email and compose news buttons? 
68
69     There's a composite button for both composing mail and news. You can toggle
70     between composing mail and news by clicking on the button with the triangle.
71
72
73   * And to the Preferences and Execute buttons?
74
75     Sorry, they're not there.
76
77
78   From Sylpheed Claws to Sylpheed
79   -------------------------------
80
81   Moving from Claws to Sylpheed is also simple. Sylpheed should neglect the things
82   Claws put in the settings files. This also means that the old rules will work
83   again. 
84
85   If you want to switch back to Claws at a later time, make sure you back up at least
86   ~/.sylpheed/matcherrc (the Claws filtering rules), and ~/.sylpheed/sylpheedrc 
87   (which may have some claws specific settings).
88
89   When switching back to Sylpheed you will not lose messages or message flags (color
90   labels, read / unread status of messages). 
91
92   Switching between Sylpheed Claws and Sylpheed on a regular basis
93   ----------------------------------------------------------------
94
95   If you want to have both claws and main installed concurrently simply pass them
96   a different --prefix when doing ./configure. Then use the script 'sylpheed-switcher',
97   (which is provided in the tools directory), to launch the version you require without
98   fear of losing specific settings related to either claws or main. Further details can
99   be found in tools/README. 
100
101 3. Things Claws does different
102 ------------------------------
103
104 Claws does a lot of things different. Here a quick run-down of things that
105 are hardly noticeable, but deserve mentioning:
106
107 * auto address replacement in summary view
108 -----------------------------------
109   This matches a plain email address with a person in the address book. This
110   feature is enabled in Common Preferences | Tab Display | SummaryView Group |
111   Display sender using addressbook
112
113 * manual selection of MIME types for attachments
114 -----------------------------------
115   You can change the MIME type of an attachment by right-clicking in the
116   attachment list, selecting Property in the menu. The MIME type list
117   is a combo box with the known MIME types.
118
119 * sharing mail folders   
120  -----------------------------------
121  You can also share or use shared mail folders. Right-click a folder and
122   select Property. Change the Folder chmod setting.
123
124 * default to address for folders
125  -----------------------------------
126  Most people filter mailing list mails to separate folders. Claws allows
127   you to associate a folder with a mailing list or a person. Right-click a
128   folder, select Property and change the Default To setting. When you
129   compose a new mail, when this folder is selected the recipient address
130   will be set to this address.
131
132   (NOTE: this is also a shoot-yourself-in-the-foot-setting! If you want
133    to send a private mail, don't have a folder selected with this setting
134    set.)
135
136 * pixmap themes
137 -----------------------------------
138   To use different icon sets you need to create a directory: 
139         mkdir ~/.sylpheed/themes
140   Icon sets should be placed in this directory in their own sub-directory. 
141   They are then selectable from Pixmap Theme on the Interface tab of Commmon
142   Preferences. 
143
144 * user definable actions
145 -----------------------------------
146   The "actions" feature is a convenient way for the user to launch external 
147   commands to process a complete message file including headers and body or 
148   just one of its parts. It allows also the use of an external command to 
149   filter the whole text or just a selected part in the message window or in 
150   the compose window. This is a generic tool that allows to do any uncommon 
151   actions on the messages, and thus extends the possibilities of Sylpheed. 
152   For example, Sylpheed does not include the rot13 cyphering algorithm 
153   popular in some newsgroups. It does not support natively armored 
154   encryption or clear signing. It does not support uuencoded messages. As 
155   all these features can be handled by external programs, the actions 
156   provide a convenient way to use them from the menu bar.
157
158   a. Usage
159   --------
160
161   To create a new action, go to Configuration -> Actions.... The "Action
162   Creation" dialog offers to enter the Menu name that will trigger the 
163   command. The created menu will be found in the Tools -> Actions submenu. 
164   By inserting a slash / in the menu name, you create a submenu.
165
166   The command is entered in the Command line entry. Note that Sylpheed 
167   stores every single email in a separate file. This allows to use the 
168   following syntax for the command:
169
170     * %f denotes the file name of the selected message. If you selected more
171          than one, then the command will be launched for each message with 
172          the appropriate file name
173     * %F denotes the list of the file names of the selected message. If only
174          one message is selected, this amounts to %f, but if more messages 
175          are selected, then the command will be launched only once with the 
176          list of the file names. (You can use both %f and %F in one command: 
177          then the command will be launched for each selected message with 
178          the name of this message and with the list of all selected 
179          messages. I did not find a practical example for this.)
180     * %p denotes the current selected message part of a multipart message. 
181          The part is decoded accordingly. If the message is not a multipart 
182          message, it denotes the message body.
183     * Prepending >: this will allow you to send to the command's standard 
184          input a text that you will enter in a dialog window.
185     * Prepending *: this will allow you to send to the command's standard 
186          input a text that you will enter in a dialog window. But in 
187          contrast to prepending >, the entered text is hidden (useful when 
188          entering passwords).
189     * Appending an ampersand &: this will run the command asynchronously. 
190          That means "fire and forget". Sylpheed won't wait for the command 
191          to finish, nor will it catch its output or its error messages.
192     * Prepending the vertical bar | (pipe-in): this will send the current 
193          displayed text or the current selected text from the message view 
194          or the compose window to the command standard input. The command 
195          will silently fail if more than one message is selected.
196     * Appending the vertical bar | (pipe-out): this will replace the current 
197          displayed text or the current selected text from the message window
198          or the compose window by the command standard output. The command
199          will silently fail if more than one message is selected.
200
201   Note: It is not possible to use actions containing %f, %F or %p from the
202   compose window. 
203
204   When a command is run, and unless it is run asynchronously, Sylpheed will
205   be insensitive to any interaction and it will wait for the command to 
206   finish. If the command takes too long (5 seconds), it will popup a dialog 
207   window allowing to stop it. This dialog will also be displayed as soon as
208   the command has some output: error messages or even its standard output 
209   when the command is not a "pipe-out" command. When multiple commands are 
210   being run, they are run in parallel and each command output is separated 
211   from the outputs of the others.
212
213   a. Examples
214   -----------
215
216   Here are some examples that are listed in the same syntax as used for 
217   storing the actions list. You can copy and past the definition in your 
218   ~/.sylpheed/actionsrc file (exit Sylpheed before). The syntax is very 
219   simple: one line per action, each action contains the menu name and the 
220   command line separated by a colon and a space ": "
221
222   Purpose:      rot13 cyphering
223   Definition:   Rot13: |tr a-zA-Z n-za-mN-ZA-M|
224   Details:      This will apply the rot13 cyphering algorithm to the 
225                 (selected) text in the message/compose view.
226
227   Purpose:      Decoding uuencoded messages
228   Definition:   UUdeview: xdeview %F&
229   Details:      xdeview comes with uudeview. If an encoded file is split in 
230                 multiple messages, just select them all and run the command.
231
232   Purpose:      Display uuencoded image
233   Definition:   Display uuencoded: uudec %f&
234   Details:      Displays uuencoded files. The uudec[1] script can be found in 
235                 the 'tools' directory of the distribution package.
236  
237   Purpose:      Alter messages
238   Definition:   Edit message: gvim -f %F
239   Details:      Allows editing of any received message. Can be used to remove 
240                 unneeded message parts, etc.
241
242   Purpose:      Pretty format
243   Definition:   Par: |par 72Tbgjqw74bEe B=._A_a 72bg|
244   Details:      par is a utility that can pretty format any text. It does a 
245                 very good job in indenting quoted messages, and justifying 
246                 text. Used when composing a message
247
248   Purpose:      Browse
249   Definition:   Part/Dillo: dillo %p&
250   Details:      Browse the selected message part in Dillo.
251
252   Purpose:      Clear Sign
253   Definition:   GnuPG/Clear Sign: |gpg-sign-syl|
254   Details:      Clear sign a message. The gpg-sign-syl[2] script is responsible
255                 for asking the passphrase and for running gnupg. 
256
257   Purpose:      Verify Clear Signed
258   Definition:   GnuPG/Verify: |gpg --no-tty --verify
259   Details:      Verify clear signed messages. The result is displayed in the
260                 actions output dialog.
261
262   Purpose:      Decrypt ASCII Armored
263   Definition:   GnuPG/Decrypt: *gpg --no-tty --command-fd 0 --passphrase-fd 0 --decrypt %f|
264   Details:      Decrypt ASCII armored messages. The passphrase is entered 
265                 into the opened action's input dialog.
266
267   [1] The uudec script can be found in the 'tools' directory of the 
268   distribution package. It needs uudecode and ImageMagick's display. The 
269   latter can be replaced by any image viewer that can get input from 
270   standard input. The script could also be modified to use temporary files 
271   instead of standard input. 
272
273   [2] The gpg-sign-syl script can be found in the 'tools' directory of the 
274   distribution package. 
275
276 * Spell checker for Sylpheed-Claws
277 -----------------------------------
278   a. Requirements
279   b. Configuration and installation
280   c. Usage
281   d. Known problems
282
283   a. Requirements
284   ---------------
285
286   The spell checker in sylpheed requires the Portable Spell Checker
287   Interface Library pspell (http://pspell.sourceforge.net), version
288   0.12.2 or newer.
289
290   You will need also the actual spell checker.  There are two alternatives:
291
292      i) ispell (http://fmg-www.cs.ucla.edu/fmg-members/geoff/ispell.html),
293         which is found on quasi every distribution.  You have then to
294         install the pspell-ispell module found at the pspell site.
295
296     ii) aspell (http://aspell.sourceforge.net).  This spell checker
297         must be installed after installing pspell.  The version tested
298         is .33.7 alpha. It has three different suggestion modes (fast
299         -default- , normal, bad spellers), has the ability to learn
300         from mistakes (default). 
301
302   And, last but not least, do not forget to install the dictionaries. Check
303   the corresponding spell checker home page for more information on this.
304
305   b. Configuring Sylpheed
306   -----------------------
307
308   Spell checking is enabled if you configure sylpheed appropriately. Add
309   the option '--enable-pspell' when configuring. E.g.:
310
311   ./configure --enable-pspell
312
313   The configure script needs 'pspell-config' in your path.  If it is
314   in weird places, use '--with-pspell-prefix' to tell the path to
315   pspell-config.  E.g., if pspell-config is really
316   /foo/bar/pspell-config, then use:
317
318   ./configure --enable-pspell --with-pspell-prefix=/foo/bar
319
320   If you have problems with not found includes or libraries, check
321   first where these are located, and add either options:
322
323   --with-pspell-includes=/foo/bar/include
324
325   or 
326
327   --with-pspell-libs=/foo/bar/lib
328
329   as appropriate.
330
331   Configure script summarizes the options compiled in. Check that
332   configure lists 'Pspell = yes'.
333
334   Then proceed as usual, with 'make' and 'make install'.
335
336   c. Usage
337   --------
338
339   NOTE: if you upgraded from 0.7.0claws, please reselect your default
340   dictionary in the preferences.
341
342   After successful compiling, you need to tell sylpheed where your
343   dictionaries reside.  First run 'pspell-config pkgdatadir' on the
344   shell to get their path.
345
346   Then run sylpheed and go to Configuration -> Common preferences ->
347   Spell Checker.  Check the box 'Enable spell checker (EXPERIMENTAL)' and
348   use the file selector ('...' button) to select the path where the
349   dictionaries reside.  Within the file selector, go to that directory
350   and select *any* file in the file lists.  Click ok. You should then
351   be able to select your default dictionary.
352
353   When composing, misspelled words are highlighted.  Click on any
354   highlighted word with the right mouse button to get a list of
355   suggestions.  The first entry of the menu just displays the unknown
356   word.  Selecting "Accept in this session" (or hitting MOD1-Space, 
357   where MOD1 is usually the ALT key), will ignore this word and accept
358   it in this message.  Selecting the next entry "Add to dictionary", which
359   is bound to MOD1-Enter combination will add the unknown word to the
360   dictionary to learn it.  The next entries are the suggested words. 
361   The first 15 suggestions can be accessed typing one of the first letters
362   of Latin alphabet (if this does not suit your language, please send
363   a mail to melvin.hadasht@free.fr).  If you are using an aspell 
364   dictionary, you can use its 'learn from mistake' feature, by pressing
365   the MOD1 key and selecting the suggestion (with the keyboard or with
366   the mouse).  See pspell manual ยง4.7.1 for an explanation of this 
367   feature. 
368
369   If you click with the right mouse button everywhere else, or if you
370   shift-right-click even on a misspelled word, you get the
371   configuration menu.  'Check all' highlights all misspelled words.
372   With this menu, you can also change the dictionary while editing.
373   Finally, you can change the suggestion mode, and the learn from
374   misktakes feature (only when using an aspell dictionary).
375
376   Spell checking can also be done using keyboard shortcuts.  In the
377   "Edit" menu of the compose window, there are two menus "Check backwards
378   misspelled word" and "Forward to next misspelled word".  Add to them 
379   appropriate keyboard shortcuts.  "Check backwards misspelled word" 
380   checks backwards from cursor position for the first misspelled word.
381   If it finds one, it displays the suggestions lists which can be handled
382   with the keyboard as described before. When the suggestion menu is 
383   closed, the cursor returns to its original position to be able to 
384   continue editing.  The "Forward to next misspelled word" do the same 
385   thing in the other direction but moves the cursor at the end of the
386   misspelled word.  This way, you can spell check easily a whole message
387   starting from its beginning and using the "Forward to next misspelled
388   word" keyboard short cut.
389   
390
391   d. Known problems
392   -----------------
393
394     i) libtool
395
396     The only real known problems until now are configuration and
397     compilation problems  due to libtool interaction with pspell. 
398
399     If you do not compile pspell/aspell/pspell-ispell yourself, you
400     need to install them with their devel packages.
401
402     Pspell work with dynamic linking of libraries and thus uses the
403     libltdl library of libtool.  If you have weird problems when
404     configuring showing 'libtool', chances are the libtool used when
405     compiling the pspell package is not compatible with what you have
406     on your system.  The best solution, is to install the latest
407     libtool AND compile yourself pspell package.  I can't help more
408     than that in this issue.
409
410     After successfully compiled and used sylpheed with spell checking,
411     the same problem can appear if you upgrade your libtool to a
412     version which libltdl is incompatible to your older one.    The
413     symptoms are a crash when starting to compose.  Disabling spell
414     checking avoids the problem. The solution should be to recompile pspell.
415
416     ii) New installed ispell dictionary are not detected
417
418     Installing a new ispell dictionary needs an additional step. Go
419     to the 'pkgdatadir' and run 'make-ispell-pwli'.  You may need to
420     su root.
421
422 * simplify subject string
423     It is possible to remove parts of string from the subject line.
424     Example: [Sylpheed-claws-users] This is a test
425     becomes: This is a test
426     This is a per folder property. Right click on a folder and select
427     property, enable Simplify Subject RegExp check box. Example
428     regexp for the above is: \[Sylpheed-claws-(devel|users)\]
429     Another example for the Sylpheed mailing list (not claws!) is:
430     \[sylpheed:[0-9]{5}\]
431
432 * new cache
433     New cache is  a new data cache structure for sylpheed, that will
434     solve many of the problems sylpheed currently has with updates to
435     flags.  But you will also notice a large speed gain when you open
436     these folders. 
437
438     New cache uses two new configuration parameters that can be
439     adjusted in ~/.sylpheed/sylpheedrc (no gui for them available yet).
440
441     cache_max_mem_usage         (default: 4096)
442         the maximum kB of memory sylpheed should use.
443         It will try to keep the memory usage below this
444         value, but it will always use the assigned
445         amount of memory for speed gain.
446
447     cache_min_keep_time         (default: 15)
448         the minimum time in minutes sylpheed will keep
449         the folder cache in memory. If a cache is more
450         recent than this time it will not be freed even
451         if the memory usage is above the maximum. You
452         should probably set this value higher than your
453         mail check interval. Otherwise the cache will
454         always be freed between checks even if the folder
455         is accessed on every check, which will cause much
456         disk IO.
457
458     The check if memory can be freed is currently done after the
459     active folder has been changed or whenever a new cache is read,
460     i.e. triggered by mail incorporation.
461
462     New mails in MH folders are not detected automatically like before,
463     when you enter the folder. You have to update the folder manually,
464     or activate the auto update setting in the options.
465
466 There are a lot more options. If you find one, don't hesitate to
467 mention it.
468
469
470
471 4. How to contribute
472 --------------------
473
474 Sylpheed Main: 
475
476         submit it to the Sylpheed ML, Hiroyuki, or Paul Mangan
477         (for incorporation on the Sylpheed Patches page,
478          <http://www.thewildbeast.co.uk/sylpheed/>)
479
480 Sylpheed Claws:
481
482         It is highly recommended to use the sourceforge project page
483         of claws. Check: 
484         http://sourceforge.net/tracker/?atid=384600&group_id=25528&func=browse
485
486         If that's too troublesome, either contact Paul Mangan or consider
487         posting to the sylpheed claws users mailing list.
488
489         Bugs can be reported in the same way; the recommended web page:
490         http://sourceforge.net/tracker/?group_id=25528&atid=384598
491
492         Of course you can also post to the sylpheed claws users
493         mailing list.
494
495 Also, we really try to incorporate good contributions, but sometimes we
496 don't have enough time. If the contribution is really big, or requires
497 a long time to stabilize, send a mail to Paul Mangan. We can probably
498 arrange access to the Claws branch.
499
500
501
502 5. How to request features
503 --------------------------
504
505 Ask around in both Sylpheed ML and Sylpheed Claws Users ML. Note
506 that some developers may already thought about your feature, may
507 perhaps be implementing it - or the feature was already discussed
508 and rejected for whatever reason.  You might want to go ahead and 
509 hack a patch for it. (That would be very cool!) Another
510 possibility is to use the Feature Request Tracker at the
511 sourceforge project page.
512
513
514
515 6. Installing Claws from CVS
516 ----------------------------
517
518   a. Downloading
519   --------------
520
521   To download the latest cvs cd to the directory where you wish to download
522   to and type the following information:
523
524   cvs -d:pserver:anonymous@cvs.sylpheed-claws.sourceforge.net:/cvsroot/sylpheed-claws login
525
526   When prompted for a password press the RETURN key.
527   After anonymously logging in:
528
529   cvs -z3 -d:pserver:anonymous@cvs.sylpheed-claws.sourceforge.net:/cvsroot/sylpheed-claws co sylpheed-claws 
530
531
532   b. Installing
533   -------------
534
535   To compile and install use the following commands:
536
537   ./autogen.sh          [add configure options as required]
538   make
539   make install          [as root]
540
541   You will need a full set of development tools installed to be able to run
542   autogen.sh. See also ac/README.
543
544 7. History
545 ----------
546
547 TODO
548