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