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