Fugu
----

Fugu is a graphical client for the Gale instant messaging system.  Its
features include: multiple screens for different subscription lists; a
detachable puff composer window; threading facilities for jumping to the
next and previous puff in a category; searching for the next puff by
author; clickable URLs; and support for thumbnail pics of each puff sender.

Fugu is written in Python/Tk.  It requires Pmw 0.8 or greater and Python
1.5.1 or greater.  To view thumbnail pics, you'll need Python 1.5.2 and
Tcl/Tk 8.0.  To render Unicode correctly, you need Python 2.0 and
Tcl/Tk 8.3 or better.

Dependencies
------------

Fugu requires Python 1.5.1 or greater and Tcl/Tk 8.0 or greater.  It's been
known to work on Linux and FreeBSD.

The OpenSSL library (-lcrypto) is required.  Fugu has been tested with
the following OpenSSL versions: 0.9.5a, 0.9.6, 0.9.6a.

Python Distribution Utilities (distutils) are required.  The distutils are
standard in Python version 1.6 or better.  If you have an older version of
Python, install the distutils before installing Fugu.  Get them here:
	http://www.python.org/sigs/distutils-sig/download.html

The Pmw (Python Mega-Widgets) distribution is required.  See the Pmw home
page at http://pmw.sourceforge.net/ for more information.  Fugu has been
tested with Pmw version 0.8.4.

Note for Debian users: the following packages are required.
	python-base python-dev python-tk python-pmw openssl libssl-dev
	python-distutils
The following packages are optional:
	python-zlib

(Optional) If you have the zlib and gzip Python modules installed (Debian:
python-zlib), Fugu will save the puff-history files (used to save/restore
the puffs in a screen across a quit/restart) compressed to save space.

Upgrading
---------

*** Read if upgrading from an earlier version of Fugu ***

People upgrading from Fugu 1.0 or earlier should delete (or backup and then
delete) your existing configuration before starting the new Fugu:
	~/.gale/fuguconfig.xml
	~/.gale/fugustate.pck       \ you may have only one of these two
	~/.gale/fugustate.pck.gz    /

Installing Fugu
---------------

1) If you don't have Pmw installed, download it and either:
   (a) Unpack it into your local Python installation's site-packages
       directory: .../lib/pythonX.Y/site-packages/

   (b) Unpack it a different directory (e.g., /foo/bar/).  It will create a
	  subdirectory Pmw/ in that directory.  Set the PYTHONPATH environment
	  variable to point to the directory where you unpacked Pmw.  For
	  example:

		cd /foo/bar
		tar xvzf /path/to/Pmw.0.8.1.tar.gz
	     setenv PYTHONPATH /foo/bar

2) ./configure
	Make sure that python (version 1.5 or better) is in your path, and
	that libcrypto.so is in your compiler's default search path, else the
	configure script will fail miserably.  If the crypto library is
	installed in a nonstandard location, set environment variables before
	running configure.  For example:

		LDFLAGS=-L/my/wacky/dir/lib ./configure

3) make

4) make install

5) Run fugu-config to configure Fugu
	Fugu will save its configuration into ~/.gale/ by default, unless you
	set the environment variable FUGU_DIR to point to a different
	directory.

6) Run fugu

Usage
-----

Try right-clicking in the puff screen to get additional options
applicable to each puff.

Toggle thumbnail images, and set other global configuration
options, via the File/Preferences dialog box.

Configure your screen subscriptions via the Screens/Configure
dialog box.

Thumbnail images
----------------

You can set a custom thumbnail image (a small picture that appears to the
left of every puff you send) by entering a URL to an image in the
File|Preferences dialog box.  This URL must reference a file in GIF or PNM
format.  The image must be <= 40 pixels high (if larger, it will be
subsampled down until it is less than 40 pixels).  The file must be <= 10kb
in size (otherwise it will be truncated to 10kb).

Sender color customization
--------------------------

Fugu can color sender names using a regular expression match.  The Fugu
distribution contains a sample config file "fugu-conf.py".  Copy this file
to your ~/.gale/ directory and edit to suit.  This file is read every time
Fugu starts up.

The file fugu-conf.py must contain a Python dictionary named "sender".
Each key in the dictionary is a Python regular expression, which is matched
against the signature of each puff.  If it matches, the sender name of that
puff is rendered with the foreground color specified as the value of that
key.  Values must be legal Tk color names (e.g., "blue" or "#430f32").

The behavior is undefined if two regexps match a single signature (either
one or the other will be matched).

Hotkeys
-------

Everything in Fugu can be done via the keyboard.  You can pull down the
menus with Alt-letter (e.g. Alt-f for the File menu).  The menus list the
hotkeys for all puff operations (e.g., Ctrl-r to reply to the selected
puff, up/down arrow to select different puffs).  Note that the menu hotkeys
might not work if you have Tk 8.3.

These are the undocumented hotkeys:

Ctrl-PgUp and Ctrl-PgDn move to the top/bottom of the screen
Ctrl-Shift-p changes focus to the presence selector (Tab away from it)
Ctrl-s brings up the search window, Esc makes it go away
Alt-PgUp and Alt-PgDn scroll the puff window when the cursor is in the puff
	composition window

Links
-----

For more information about Fugu, see
     http://fugu.gale.org/
For more information about Gale, see
     http://gale.org/
The Pmw home page is at
	http://pmw.sourceforge.net/
The Python home page (get the latest version of Python here):
	http://www.python.org/
Python distribution utilities
	http://www.python.org/sigs/distutils-sig/download.html

--------

Tessa Lau
<tlau-fugu@ofb.net>

Copyright (C) 2001  Tessa Lau

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

