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)
   * new cache
   * extended search in quick search
   * 'dynamic' signatures
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 
Sylpheed. 

Hiroyuki's ChangeLog is also included in the claws-branch distribution, 
so it should be easy to spot which features were merged with Sylpheed
(and which features were not).

For brevity Sylpheed Claws is referred to as Claws, and Sylpheed as either
Sylpheed or Main.



2. Switching between Sylpheed Claws and Sylpheed
------------------------------------------------

  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.

  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.)

  There are some things that frequently come up when switching to Claws:


  * What happened to my filter rules? 

    Claws uses a new filtering system. 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, see tools/README for details.
 
  * 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.


  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. 

  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).

  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. 

3. Things Claws does different
------------------------------

Claws does a lot of things different. Here a quick run-down of things that
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
  select Property. Change the Folder chmod 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.)

* 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
  ---------------

  Note:
  As for version 0.8.3 (and cvs version 0.8.2claws3), Sylpheed-Claws uses
  the new GNU/aspell 0.50 for spell checking instead of the obsolete pspell
  and old aspell 0.33.x.  You will need to upgrade your system.  See
  http://www.gnu.org/software/aspell for instructions on how to do this.

  The spell checker in Sylpheed requires the new GNU/aspell library
  (http://www.gnu.org/software/aspell), version 0.50 or newer.

  You also need the dictionaries. Check GNU/aspell home page for how
  to download and install them.
  
  NB: The old dictionaries used by the old aspell will not work.

  b. Configuring Sylpheed
  -----------------------

  Spell checking is enabled if you configure Sylpheed appropriately. Add
  the option '--enable-aspell' when configuring. E.g.:

  ./configure --enable-aspell

  The configure script needs the 'aspell' executable to be in your path.
  If it is in unusual places, use '--with-aspell-prefix' to tell the path of
  the aspell executable.  E.g., if aspell's full path is
  /foo/bar/bin/aspell, then use:

  ./configure --enable-aspell --with-aspell-prefix=/foo/bar

  The '--with-aspell-prefix=PREFIX' option will let the configure
  script search for includes and libraries in PREFIX/include and PREFIX/lib.

  You can also specify manually the includes and libraries path by using
  either following options:

  --with-aspell-includes=/foo/bar/include

  and/or 

  --with-aspell-libs=/rab/oof/lib

  as appropriate.

  The configure script summarizes the options compiled in.  Check that
  it lists 'GNU/aspell = yes'.

  Then proceed as usual, with 'make' and 'make install'.

  c. Usage
  --------

  NOTE: if you upgraded from Sylpheed-Claws 0.8.2 (or cvs version 0.8.2claws2) 
  or earlier, please check if the dictionary path was updated in the
  Configuration -> Common Preferences -> Spell Checker menu.  If not, update
  it accordingly as explained below.

  After successful compiling, you need to tell Sylpheed where your
  dictionaries reside. The configure script should have found it,
  but in case it did not, run 'aspell config dict-dir' on the
  shell to get the path to the dictionaries.

  Then run Sylpheed and go to Configuration -> Common preferences ->
  Spell Checker.  Check the box 'Enable spell checker' 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. Then, you should 
  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 your
  personal dictionary to learn it.  The next entries are the suggested words. 
  The first 15 suggestions can be accessed by 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).  Aspell has a 'learn from mistake'
  function that can be used by pressing the MOD1 key and selecting the 
  suggestion (with the keyboard or with the mouse).  See GNU/aspell manual
  §6.3 for an explanation of this feature (also called 'replacement storing'). 

  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.

  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
  -----------------

    No known problems as the time of this writing (0.8.2claws3).

* 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.

* Custom toolbar
----------------
   Configuration->Custom toolbar lets you define the toolbar 
   you want. The configuration dialog enables you to set an icon,
   an appropriate text and map an action to it. Actions to choose
   from are predefined. You may as well have your "Sylpheed Actions"
   (refer to "user definable actions" above) on your toolbar. 
   Example: 
	* Configuration->Actions 
		- add an entry "Dillo: dillo %p&"
        * Configuration->Custom toolbar    
		- select Sylpheed Actions Feature
	 	- select "Dillo: dillo %p&" from drop down list
		- choose an icon and click ok

* extended search in quick search
---------------------------------
    This feature allows one to define criteria that messages have
    to match in order to be displayed in the summary view pane.
    Search types titled From, Subject and To are self explanatory.
    Search type extended allows one to use Sylpheed's powerful
    filtering engine to select messages. Examples:
    from regexpcase "foo"
    subject regexp "Bug" & to regexp "sylpheed-claws"

    Additionally, it is possible to use simpler yet equally
    powerfull patterns for message selections. Mutt users will
    immediately recognize most of the available patterns:

    Pattern  Parameter  Selects
    ----------------------------------------------------
    a                   all messages
    ag       #          messages whose age is greater than #
    al       #          messages whose age is lower than #
    b        S          messages which contain S in the message body
    B        S          messages which contain S in the whole message
    c        S          messages carbon-copied to S
    C        S          message is either to: or cc: to S
    D                   deleted messages
    e        S          messages which contain S in the Sender field
    E        S          true if execute "S" succeeds
    f        S          messages originating from user S
    F                   forwarded messages
    h        S          messages which contain header S
    i        S          messages which contain S in Message-Id header
    I        S          messages which contain S in inreplyto header
    L                   locked messages
    n        S          messages which are in newsgroup S
    N                   new messages
    O                   old messages
    r                   messages which have been replied to
    R                   read messages
    s        S          messages which contain S in subject
    se       #          messages whose score is equal to #
    sg       #          messages whose score is greater than #
    sl       #          messages whose score is lower than #
    Se       #          messages whose size is equal to #
    Sg       #          messages whose size is greater than #
    Ss       #          messages whose size is smaller than #
    t        S          messages which have been sent to S
    T                   marked messages
    U                   unread messages
    x        S          messages which contain S in References header
    y        S          messages which contain S in X-Label header

    # means number
    S means regexp string

    It is possible to use logical operators AND (&), OR (|) and
    NOT (! or ~). Case sensitive search is achieved with %.
    Examples:
    T                  marked messages
    U                  unread messages
    f "john beavis"    messages from john beavis
    %f "John Beavis"   messages from John Beavis (case sensitive)
    ~s foo             messages which do not have foo in the subject
    f foo & ~s bar     messages from foo that do not have bar in thesubject

* (build in) image viewer
-----------------------
    Claws allows to load viewers for mime parts with plugins. To keep
    the main programs code small and easier to maintain by defining an
    API for viewers and not having to include every viewer in the code
    the build in image viewer was removed and put into a plugin. If you
    wonder why image viewing is not working anymore you probably have
    to load the plugin.


4. How to contribute
--------------------

Sylpheed Main: 

	submit it to the Sylpheed ML, Hiroyuki, or Paul Mangan
	(for incorporation on the Sylpheed Patches page,
	 <http://www.thewildbeast.co.uk/sylpheed/>)

Sylpheed Claws:

	It is highly recommended to use the sourceforge project page
	of claws. Check: 
	http://sourceforge.net/tracker/?atid=384600&group_id=25528&func=browse

	If that's too troublesome, either contact Paul Mangan or consider
	posting to the sylpheed claws users mailing list.

	Bugs can be reported with Claws' bugzilla at:
	http://sylpheed-claws.sourceforge.net/cgi-bin/bugzilla/index.cgi

	Of course you can also post to the sylpheed claws users
	mailing list.

Also, we really try to incorporate good contributions, but sometimes we
don't have enough time. If the contribution is really big, or requires
a long time to stabilize, send a mail to Paul Mangan. We can probably
arrange access to the Claws branch.



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!) 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

