merge new cache branch
[claws.git] / README.claws
index 4538c239e4699116c0450b1c77aa4b19f55d4b23..b399e06677a93f7ff2cc678fd568402fed6f5c56 100644 (file)
@@ -1,6 +1,31 @@
-
-What is Sylpheed Claws?
-----------------------
+README.claws
+------------
+
+Summary:
+
+1. What is Sylpheed Claws?
+2. Switching between Sylpheed Claws and Sylpheed
+   * From Sylpheed to Sylpheed Claws
+   * From Sylpheed Claws to Sylpheed
+3. Things Claws does different
+   * auto address replacement in summary view
+   * manual selection of MIME types for attachments
+   * sharing mail folders
+   * default to address for folders
+   * threading mode per folder
+   * simplify subject string
+   * pixmap themes
+   * user definable actions
+   * spell checking (with installation instructions)
+4. How to contribute
+5. How to request features
+6. Installing Claws from CVS
+7. History
+
+
+
+1. What is Sylpheed Claws?
+--------------------------
 
 Sylpheed Claws is a bleeding edge branch of Sylpheed, a light weight mail 
 user agent for UNIX. Features in this branch may (or may not) end up in 
@@ -14,108 +39,443 @@ For brevity Sylpheed Claws is referred to as Claws, and Sylpheed as either
 Sylpheed or Main.
 
 
-Switching to Claws
-------------------
-
-From the user perspective Claws is just a fancy Sylpheed, so it uses the
-same sylpheed setting files located in ~/.sylpheed.
 
-It's always a good idea to back up all files in ~/.sylpheed in case
-you want to switch back to Sylpheed. (You don't have to backup the
-directories.)
+2. Switching between Sylpheed Claws and Sylpheed
+------------------------------------------------
 
-There are some things that frequently come up when switching to Claws:
+  From Sylpheed to Sylpheed Claws      
+  -------------------------------
 
+  From the user perspective Claws is just a fancy Sylpheed, so it uses the
+  same sylpheed setting files located in ~/.sylpheed.
 
-* When replying, the original sender's text is not quoted anymore.
+  It's always a good idea to back up all files in ~/.sylpheed in case
+  you want to switch back to Sylpheed. (You don't have to backup the
+  directories.)
 
-  Claws has a different quote format handler. Add either %Q or %q to the
-  quote format text. Also click the button "Description of symbols"
-  for more quotation symbols.
+  There are some things that frequently come up when switching to Claws:
 
 
-* Why does the advanced filtering system not work?
+  * Why does the advanced filtering system not work?
 
-  Claws uses the new filtering system as soon as you define a new rule for it.
-  Your old sylpheed filter rules will not be used. In subdirectory tools/ of
-  the distribution there is a Perl script called filter_conv.pl which convers
-  old filter rules to the claws filtering system.
+    Claws uses the new filtering system as soon as you define a new rule for it.
+    Your old sylpheed filter rules will not be used. In subdirectory tools/ of
+    the distribution there is a Perl script called filter_conv.pl which converts
+    old filter rules to the claws filtering system.
   
 
-* What happened to the compose email and compose news buttons? 
+  * What happened to the compose email and compose news buttons? 
+
+    There's a composite button for both composing mail and news. You can toggle
+    between composing mail and news by clicking on the button with the triangle.
+
+
+  * And to the Preferences and Execute buttons?
+
+    Sorry, they're not there.
+
 
-  There's a composite button for both composing mail and news. You can toggle
-  between composing mail and news by clicking on the button with the triangle.
+  From Sylpheed Claws to Sylpheed
+  -------------------------------
 
+  Moving from Claws to Sylpheed is also simple. Sylpheed should neglect the things
+  Claws put in the settings files. This also means that the old rules will work
+  again. 
 
-* And to the Preferences and Execute buttons?
+  If you want to switch back to Claws at a later time, make sure you back up at least
+  ~/.sylpheed/matcherrc (the Claws filtering rules), and ~/.sylpheed/sylpheedrc 
+  (which may have some claws specific settings).
 
-  Sorry, they're not there.
+  When switching back to Sylpheed you will not lose messages or message flags (color
+  labels, read / unread status of messages). 
 
+  Switching between Sylpheed Claws and Sylpheed on a regular basis
+  ----------------------------------------------------------------
 
+  If you want to have both claws and main installed concurrently simply pass them
+  a different --prefix when doing ./configure. Then use the script 'sylpheed-switcher',
+  (which is provided in the tools directory), to launch the version you require without
+  fear of losing specific settings related to either claws or main. Further details can
+  be found in tools/README. 
 
-Things Claws does different
----------------------------
+3. Things Claws does different
+------------------------------
 
 Claws does a lot of things different. Here a quick run-down of things that
-are hardly noticable, but deserve mentioning:
+are hardly noticeable, but deserve mentioning:
 
 * auto address replacement in summary view
+-----------------------------------
   This matches a plain email address with a person in the address book. This
   feature is enabled in Common Preferences | Tab Display | SummaryView Group |
   Display sender using addressbook
 
 * manual selection of MIME types for attachments
+-----------------------------------
   You can change the MIME type of an attachment by right-clicking in the
   attachment list, selecting Property in the menu. The MIME type list
   is a combo box with the known MIME types.
 
 * sharing mail folders   
-  You can also share or use shared mail folders. Right-click a folder and
+ -----------------------------------
+ You can also share or use shared mail folders. Right-click a folder and
   select Property. Change the Folder chmod setting.
 
-* default reply-to address for folders
-  Most people filter mailing list mails to separate folders. Claws allows
-  you to associate a folder with a mailing list. Right-click a folder, 
-  select Property and change the Default To setting.
+* default to address for folders
+ -----------------------------------
+ Most people filter mailing list mails to separate folders. Claws allows
+  you to associate a folder with a mailing list or a person. Right-click a
+  folder, select Property and change the Default To setting. When you
+  compose a new mail, when this folder is selected the recipient address
+  will be set to this address.
 
   (NOTE: this is also a shoot-yourself-in-the-foot-setting! If you want
    to send a private mail, don't have a folder selected with this setting
    set.)
 
-* threading mode per folder
-  Folders can have their own threading and sorting mode. Just select a 
-  folder, and set their threading and sorting mode.
-
-* spell checking
-  Spell checking using pspell library (http://pspell.sourceforge.net)
-  can can be compiled in. You must have dictionaries available. You can
-  use aspell (http://aspell.sourceforge.net) or ispell dictionaries. For
-  the former, you have to install aspell. For the latter, you have to
-  install the pspell-ispell module (see pspell home page) in addition
-  to ispell.  Spell checking can then enabled in Configuration |Common
-  Preferences | Compose. Use the file selector and select any file in
-  the directory where the dictionaries (*.pwli) are. Do not simply enter
-  the path in the text entry. You can select the default dictionary.
-  When composing, use the right-button click.
-
-* quotation wrapping
-  Quotation is wrapped like VIM would wrap it (at least that was the
-  goal). To enable this feature go to Common preferences->Compose and
-  make sure Wrap quotation is enabled. The text is automatically
-  wrapped when you reply to an e-mail if this feature is enabled.
+* pixmap themes
+-----------------------------------
+  To use different icon sets you need to create a directory: 
+       mkdir ~/.sylpheed/themes
+  Icon sets should be placed in this directory in their own sub-directory. 
+  They are then selectable from Pixmap Theme on the Interface tab of Commmon
+  Preferences. 
+
+* user definable actions
+-----------------------------------
+  The "actions" feature is a convenient way for the user to launch external 
+  commands to process a complete message file including headers and body or 
+  just one of its parts. It allows also the use of an external command to 
+  filter the whole text or just a selected part in the message window or in 
+  the compose window. This is a generic tool that allows to do any uncommon 
+  actions on the messages, and thus extends the possibilities of Sylpheed. 
+  For example, Sylpheed does not include the rot13 cyphering algorithm 
+  popular in some newsgroups. It does not support natively armored 
+  encryption or clear signing. It does not support uuencoded messages. As 
+  all these features can be handled by external programs, the actions 
+  provide a convenient way to use them from the menu bar.
+
+  a. Usage
+  --------
+
+  To create a new action, go to Configuration -> Actions.... The "Action
+  Creation" dialog offers to enter the Menu name that will trigger the 
+  command. The created menu will be found in the Tools -> Actions submenu. 
+  By inserting a slash / in the menu name, you create a submenu.
+
+  The command is entered in the Command line entry. Note that Sylpheed 
+  stores every single email in a separate file. This allows to use the 
+  following syntax for the command:
+
+    * %f denotes the file name of the selected message. If you selected more
+        than one, then the command will be launched for each message with 
+        the appropriate file name
+    * %F denotes the list of the file names of the selected message. If only
+        one message is selected, this amounts to %f, but if more messages 
+        are selected, then the command will be launched only once with the 
+        list of the file names. (You can use both %f and %F in one command: 
+        then the command will be launched for each selected message with 
+        the name of this message and with the list of all selected 
+        messages. I did not find a practical example for this.)
+    * %p denotes the current selected message part of a multipart message. 
+        The part is decoded accordingly. If the message is not a multipart 
+        message, it denotes the message body.
+    * Prepending >: this will allow you to send to the command's standard 
+        input a text that you will enter in a dialog window.
+    * Prepending *: this will allow you to send to the command's standard 
+        input a text that you will enter in a dialog window. But in 
+        contrast to prepending >, the entered text is hidden (useful when 
+        entering passwords).
+    * Appending an ampersand &: this will run the command asynchronously. 
+        That means "fire and forget". Sylpheed won't wait for the command 
+        to finish, nor will it catch its output or its error messages.
+    * Prepending the vertical bar | (pipe-in): this will send the current 
+        displayed text or the current selected text from the message view 
+        or the compose window to the command standard input. The command 
+        will silently fail if more than one message is selected.
+    * Appending the vertical bar | (pipe-out): this will replace the current 
+        displayed text or the current selected text from the message window
+        or the compose window by the command standard output. The command
+        will silently fail if more than one message is selected.
+
+  Note: It is not possible to use actions containing %f, %F or %p from the
+  compose window. 
+
+  When a command is run, and unless it is run asynchronously, Sylpheed will
+  be insensitive to any interaction and it will wait for the command to 
+  finish. If the command takes too long (5 seconds), it will popup a dialog 
+  window allowing to stop it. This dialog will also be displayed as soon as
+  the command has some output: error messages or even its standard output 
+  when the command is not a "pipe-out" command. When multiple commands are 
+  being run, they are run in parallel and each command output is separated 
+  from the outputs of the others.
+
+  a. Examples
+  -----------
+
+  Here are some examples that are listed in the same syntax as used for 
+  storing the actions list. You can copy and past the definition in your 
+  ~/.sylpheed/actionsrc file (exit Sylpheed before). The syntax is very 
+  simple: one line per action, each action contains the menu name and the 
+  command line separated by a colon and a space ": "
+
+  Purpose:     rot13 cyphering
+  Definition:  Rot13: |tr a-zA-Z n-za-mN-ZA-M|
+  Details:     This will apply the rot13 cyphering algorithm to the 
+               (selected) text in the message/compose view.
+
+  Purpose:     Decoding uuencoded messages
+  Definition:  UUdeview: xdeview %F&
+  Details:     xdeview comes with uudeview. If an encoded file is split in 
+               multiple messages, just select them all and run the command.
+
+  Purpose:     Display uuencoded image
+  Definition:  Display uuencoded: uudec %f&
+  Details:     Displays uuencoded files. The uudec[1] script can be found in 
+               the 'tools' directory of the distribution package.
+  Purpose:     Alter messages
+  Definition:  Edit message: gvim -f %F
+  Details:     Allows editing of any received message. Can be used to remove 
+               unneeded message parts, etc.
+
+  Purpose:     Pretty format
+  Definition:  Par: |par 72Tbgjqw74bEe B=._A_a 72bg|
+  Details:     par is a utility that can pretty format any text. It does a 
+               very good job in indenting quoted messages, and justifying 
+               text. Used when composing a message
+
+  Purpose:     Browse
+  Definition:  Part/Dillo: dillo %p&
+  Details:     Browse the selected message part in Dillo.
+
+  Purpose:     Clear Sign
+  Definition:  GnuPG/Clear Sign: |gpg-sign-syl|
+  Details:     Clear sign a message. The gpg-sign-syl[2] script is responsible
+               for asking the passphrase and for running gnupg. 
+
+  Purpose:     Verify Clear Signed
+  Definition:  GnuPG/Verify: |gpg --no-tty --verify
+  Details:     Verify clear signed messages. The result is displayed in the
+               actions output dialog.
+
+  Purpose:     Decrypt ASCII Armored
+  Definition:  GnuPG/Decrypt: *gpg --no-tty --command-fd 0 --passphrase-fd 0 --decrypt %f|
+  Details:     Decrypt ASCII armored messages. The passphrase is entered 
+               into the opened action's input dialog.
+
+  [1] The uudec script can be found in the 'tools' directory of the 
+  distribution package. It needs uudecode and ImageMagick's display. The 
+  latter can be replaced by any image viewer that can get input from 
+  standard input. The script could also be modified to use temporary files 
+  instead of standard input. 
+
+  [2] The gpg-sign-syl script can be found in the 'tools' directory of the 
+  distribution package. 
+
+* Spell checker for Sylpheed-Claws
+-----------------------------------
+  a. Requirements
+  b. Configuration and installation
+  c. Usage
+  d. Known problems
+
+  a. Requirements
+  ---------------
+
+  The spell checker in sylpheed requires the Portable Spell Checker
+  Interface Library pspell (http://pspell.sourceforge.net), version
+  0.12.2 or newer.
+
+  You will need also the actual spell checker.  There are two alternatives:
+
+     i) ispell (http://fmg-www.cs.ucla.edu/fmg-members/geoff/ispell.html),
+        which is found on quasi every distribution.  You have then to
+        install the pspell-ispell module found at the pspell site.
+
+    ii) aspell (http://aspell.sourceforge.net).  This spell checker
+        must be installed after installing pspell.  The version tested
+        is .33.7 alpha. It has three different suggestion modes (fast
+        -default- , normal, bad spellers), has the ability to learn
+        from mistakes (default). 
+
+  And, last but not least, do not forget to install the dictionaries. Check
+  the corresponding spell checker home page for more information on this.
+
+  b. Configuring Sylpheed
+  -----------------------
+
+  Spell checking is enabled if you configure sylpheed appropriately. Add
+  the option '--enable-pspell' when configuring. E.g.:
+
+  ./configure --enable-pspell
+
+  The configure script needs 'pspell-config' in your path.  If it is
+  in weird places, use '--with-pspell-prefix' to tell the path to
+  pspell-config.  E.g., if pspell-config is really
+  /foo/bar/pspell-config, then use:
+
+  ./configure --enable-pspell --with-pspell-prefix=/foo/bar
+
+  If you have problems with not found includes or libraries, check
+  first where these are located, and add either options:
+
+  --with-pspell-includes=/foo/bar/include
+
+  or 
+
+  --with-pspell-libs=/foo/bar/lib
+
+  as appropriate.
+
+  Configure script summarizes the options compiled in. Check that
+  configure lists 'Pspell = yes'.
+
+  Then proceed as usual, with 'make' and 'make install'.
+
+  c. Usage
+  --------
+
+  NOTE: if you upgraded from 0.7.0claws, please reselect your default
+  dictionary in the preferences.
+
+  After successful compiling, you need to tell sylpheed where your
+  dictionaries reside.  First run 'pspell-config pkgdatadir' on the
+  shell to get their path.
+
+  Then run sylpheed and go to Configuration -> Common preferences ->
+  Spell Checker.  Check the box 'Enable spell checker (EXPERIMENTAL)' and
+  use the file selector ('...' button) to select the path where the
+  dictionaries reside.  Within the file selector, go to that directory
+  and select *any* file in the file lists.  Click ok. You should then
+  be able to select your default dictionary.
+
+  When composing, misspelled words are highlighted.  Click on any
+  highlighted word with the right mouse button to get a list of
+  suggestions.  The first entry of the menu just displays the unknown
+  word.  Selecting "Accept in this session" (or hitting MOD1-Space, 
+  where MOD1 is usually the ALT key), will ignore this word and accept
+  it in this message.  Selecting the next entry "Add to dictionary", which
+  is bound to MOD1-Enter combination will add the unknown word to the
+  dictionary to learn it.  The next entries are the suggested words. 
+  The first 15 suggestions can be accessed typing one of the first letters
+  of Latin alphabet (if this does not suit your language, please send
+  a mail to melvin.hadasht@free.fr).  If you are using an aspell 
+  dictionary, you can use its 'learn from mistake' feature, by pressing
+  the MOD1 key and selecting the suggestion (with the keyboard or with
+  the mouse).  See pspell manual ยง4.7.1 for an explanation of this 
+  feature. 
+
+  If you click with the right mouse button everywhere else, or if you
+  shift-right-click even on a misspelled word, you get the
+  configuration menu.  'Check all' highlights all misspelled words.
+  With this menu, you can also change the dictionary while editing.
+  Finally, you can change the suggestion mode, and the learn from
+  misktakes feature (only when using an aspell dictionary).
+
+  Spell checking can also be done using keyboard shortcuts.  In the
+  "Edit" menu of the compose window, there are two menus "Check backwards
+  misspelled word" and "Forward to next misspelled word".  Add to them 
+  appropriate keyboard shortcuts.  "Check backwards misspelled word" 
+  checks backwards from cursor position for the first misspelled word.
+  If it finds one, it displays the suggestions lists which can be handled
+  with the keyboard as described before. When the suggestion menu is 
+  closed, the cursor returns to its original position to be able to 
+  continue editing.  The "Forward to next misspelled word" do the same 
+  thing in the other direction but moves the cursor at the end of the
+  misspelled word.  This way, you can spell check easily a whole message
+  starting from its beginning and using the "Forward to next misspelled
+  word" keyboard short cut.
+  
+
+  d. Known problems
+  -----------------
+
+    i) libtool
+
+    The only real known problems until now are configuration and
+    compilation problems  due to libtool interaction with pspell. 
+
+    If you do not compile pspell/aspell/pspell-ispell yourself, you
+    need to install them with their devel packages.
+
+    Pspell work with dynamic linking of libraries and thus uses the
+    libltdl library of libtool.  If you have weird problems when
+    configuring showing 'libtool', chances are the libtool used when
+    compiling the pspell package is not compatible with what you have
+    on your system.  The best solution, is to install the latest
+    libtool AND compile yourself pspell package.  I can't help more
+    than that in this issue.
+
+    After successfully compiled and used sylpheed with spell checking,
+    the same problem can appear if you upgrade your libtool to a
+    version which libltdl is incompatible to your older one.    The
+    symptoms are a crash when starting to compose.  Disabling spell
+    checking avoids the problem. The solution should be to recompile pspell.
+
+    ii) New installed ispell dictionary are not detected
+
+    Installing a new ispell dictionary needs an additional step. Go
+    to the 'pkgdatadir' and run 'make-ispell-pwli'.  You may need to
+    su root.
+
+* simplify subject string
+    It is possible to remove parts of string from the subject line.
+    Example: [Sylpheed-claws-users] This is a test
+    becomes: This is a test
+    This is a per folder property. Right click on a folder and select
+    property, enable Simplify Subject RegExp check box. Example
+    regexp for the above is: \[Sylpheed-claws-(devel|users)\]
+    Another example for the Sylpheed mailing list (not claws!) is:
+    \[sylpheed:[0-9]{5}\]
+
+* new cache
+    New cache is  a new data cache structure for sylpheed, that will
+    solve many of the problems sylpheed currently has with updates to
+    flags.  But you will also notice a large speed gain when you open
+    these folders. 
+
+    New cache uses two new configuration parameters that can be
+    adjusted in ~/.sylpheed/sylpheedrc (no gui for them available yet).
+
+    cache_max_mem_usage                (default: 4096)
+       the maximum kB of memory sylpheed should use.
+       It will try to keep the memory usage below this
+       value, but it will always use the assigned
+       amount of memory for speed gain.
+
+    cache_min_keep_time                (default: 15)
+       the minimum time in minutes sylpheed will keep
+       the folder cache in memory. If a cache is more
+       recent than this time it will not be freed even
+       if the memory usage is above the maximum. You
+       should probably set this value higher than your
+       mail check interval. Otherwise the cache will
+       always be freed between checks even if the folder
+       is accessed on every check, which will cause much
+       disk IO.
+
+    The check if memory can be freed is currently done after the
+    active folder has been changed or whenever a new cache is read,
+    i.e. triggered by mail incorporation.
+
+    New mails in MH folders are not detected automatically like before,
+    when you enter the folder. You have to update the folder manually,
+    or activate the auto update setting in the options.
 
 There are a lot more options. If you find one, don't hesitate to
 mention it.
 
 
-How to contribute
------------------
+
+4. How to contribute
+--------------------
 
 Sylpheed Main: 
 
        submit it to the Sylpheed ML, Hiroyuki, or Paul Mangan
-       (for incorporation on the Sylpheed Patches page)
+       (for incorporation on the Sylpheed Patches page,
+        <http://www.thewildbeast.co.uk/sylpheed/>)
 
 Sylpheed Claws:
 
@@ -129,7 +489,7 @@ Sylpheed Claws:
        Bugs can be reported in the same way; the recommended web page:
        http://sourceforge.net/tracker/?group_id=25528&atid=384598
 
-       Ofcourse you can also post to the sylpheed claws users
+       Of course you can also post to the sylpheed claws users
        mailing list.
 
 Also, we really try to incorporate good contributions, but sometimes we
@@ -138,13 +498,51 @@ a long time to stabilize, send a mail to Paul Mangan. We can probably
 arrange access to the Claws branch.
 
 
-How to request features
------------------------
+
+5. How to request features
+--------------------------
 
 Ask around in both Sylpheed ML and Sylpheed Claws Users ML. Note
 that some developers may already thought about your feature, may
 perhaps be implementing it - or the feature was already discussed
 and rejected for whatever reason.  You might want to go ahead and 
-hack a patch for it. (That would be very cool!)
+hack a patch for it. (That would be very cool!) Another
+possibility is to use the Feature Request Tracker at the
+sourceforge project page.
+
+
+
+6. Installing Claws from CVS
+----------------------------
+
+  a. Downloading
+  --------------
+
+  To download the latest cvs cd to the directory where you wish to download
+  to and type the following information:
+
+  cvs -d:pserver:anonymous@cvs.sylpheed-claws.sourceforge.net:/cvsroot/sylpheed-claws login
+
+  When prompted for a password press the RETURN key.
+  After anonymously logging in:
+
+  cvs -z3 -d:pserver:anonymous@cvs.sylpheed-claws.sourceforge.net:/cvsroot/sylpheed-claws co sylpheed-claws 
+
+
+  b. Installing
+  -------------
+
+  To compile and install use the following commands:
+
+  ./autogen.sh         [add configure options as required]
+  make
+  make install         [as root]
+
+  You will need a full set of development tools installed to be able to run
+  autogen.sh. See also ac/README.
+
+7. History
+----------
 
+TODO