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