efax-gtk - GUI front end for efax program
efax-gtk [options] [ file ]
-r Start the program in receive standby mode
-s Start the program hidden in the system tray
Efax-gtk is Copyright (C) Chris Vine, 2001 - 2008. It is released
under the General Public License, version 2.
efax-gtk is a GTK+ front end for the efax program. It can be used to
send and receive faxes with a fax modem, and to view, print and manage
faxes received. It also provides a socket interface to provide a
"virtual printer" for sending faxes from word processors and similar
programs, and can automatically e-mail a received fax to a designated
The efax-gtk distribution compiles and installs a patched version of
efax-0.9a-001114, so you do not need to separately build and install
efax. In particular, the version of efax supplied with efax-gtk
provides internationalization support, and resolves certain
difficulties with locales in the standard distribution.
To avoid name conflicts the patched versions of efax and efix are
installed as efax-0.9a and efix-0.9a. If you want to use the standard
distributions of efax, delete efax-0.9a and efix-0.9a, and then make a
symbolic link from efax to efax-0.9a and from efix to efix-0.9a so that
efax-gtk can find them. efax-0.9 or higher is recommended, although
the program will work with older versions of efax - with older
versions, some automatic configuration options will not be available
and the different lock file semantics means that a binary and not UUCP
lock file will be created, which may confuse some other programs trying
to access the same serial port.
Any files to be faxed must be in postscript format, which is the
generic printer format for Unix/Linux systems. The program will use
ghostscript to convert these into the Group 3 fax format which the fax
modem will understand.
A file may be passed as an argument to the program, in which case that
file will automatically appear in the "File to send" box when the
The first time you use the program, you will be asked if you accept the
terms of the General Public Licence, version 2.
Before sending a fax, the name of the file to be sent must be specified
in the "File to fax" box. The file specified must be in postscript
format, and will be converted by the program into the correct tiffg3
fax format. It can be entered manually in the "Fax to send" box, or
entered by means of the file selection dialog. If the file comprises a
single postscript file, then you can find it by pressing the "Single
File" button. It can be more easily found with this dialog if it is
placed in the $HOME/faxout directory.
Where more than one file is specified in the "Fax to send" box, they
will be sent as a single fax appended in the order in which they are
entered in the box. Such multiple files can be more easily selected
using the file list brought up by pressing the "Multiple Files" button.
Pressing the "Multiple Files" button enables files to be found and
added to the file list, and they can be reordered by using the Up or
Down arrow buttons, or by dragging and dropping with the mouse. (If
entering multiple files manually rather than by means of the "Multiple
Files" dialog, use a `,' or a `;' as the file name separator.)
The telephone number to which the fax is to be sent is entered into the
"Tel number" box. This can be entered directly into the box, or by
using the built-in addressbook. The addressbook can be invoked by
pressing the "Tel number" button, or from the `File/Address book' pull-
down menu item. See "Using the address book" further below. However,
if a telephone connection has already been established with the remote
fax receiver, then the fax can be sent without dialing by leaving the
"Tel number" box blank (a dialog will come up asking if you would like
to send the fax without dialing - this does the same thing as `fax send
-m ...' using the efax `fax' script from the command line).
When a fax is received from the print system via the socket server, the
program settings can be configured to bring up a dialog automatically.
If the program is inactive or is standing-by to receive faxes the fax
can be sent directly from this dialog without the need to invoke the
list of queued faxes received from the socket.
Successfully sent faxes are copied to a directory in the $HOME/faxsent
directory, which has a name derived from the year, month, day, hour and
seconds when the sending of the fax was completed, and will appear in
the faxes sent list. They are only included in that list if they have
been sent without error. The efax message display box will report on
the progress of a fax being sent. The fax list can be brought up from
the `File/List sent faxes' pull down menu item. See "Using the fax
lists" further below.
The program can send a fax when it is in receive standby mode. If
sending a fax from receive standby mode, when the fax has been sent (or
there is an error in sending the fax), the program will return to
receive standby mode.
To make sending faxes from word processors easy, a socket server is
provided interfacing directly with the print system. See below for
Ordinary ascii text files can be converted into postscript if required
using a number of programs, of which probably the easiest to use are
nenscript or GNU enscript (`man enscript').
Three ways of receiving faxes are provided for.
First, the program can be set to answer a fax call which is ringing but
has not been answered, by pressing the "Answer call" button.
Secondly, the program can take over a call which has already been
answered (say, by a telephone hand set) by pressing the "Take over
Thirdly, the program can be placed in standby mode by pressing the
"Standby" button. This will automatically answer any call after the
number of rings specified in the efax-gtkrc file, and receive the fax.
The program will keep on receiving faxes until the "Stop" button is
pressed. A fax can also be sent when the program is in receive standby
Received faxes in tiffg3 format (one file for each page) are placed in
a directory in the $HOME/faxin directory, which has a name derived from
the year, month, day, hour and seconds when the relevant "Answer call",
"Take over call" or "Standby" button was pressed. (Where in standby
mode after a fax has been received, any further fax will derive its
name from the time when receipt of the last received fax has been
completed and the program goes back into standby mode.)
Received faxes can be printed, viewed, described and managed using the
built in fax list facility. This can be brought up from the `File/List
received faxes' pull down menu item. See "Using the fax lists" further
When a fax is received, a pop-up dialog can also be set to appear (go
to the Settings dialog to do this).
In the settings dialog you can also specify a program to be executed
whenever a fax is received. The fax ID number is passed as the first
(and only) argument to the program, which enables the program to find
the fax in $HOME/faxin. The distribution contains two executable
scripts, mail_fax and print_fax, which can be used to e-mail a fax to a
user or print a fax automatically when it is received. (These scripts
are not installed by `make install' - if you want to use them, make
them executable with `chmod +x' and copy them to a directory which is
in the system path, such as /usr/local/bin, and then specify the script
name in the settings dialog).
Using the address book
To pick a telephone number from the address book, highlight the
relevant address by pressing the left mouse button over it, and then
press the "OK" button.
Addresses can be added to the address book by pressing the add button,
and then completing the relevant dialog which will appear. To delete
an address from the address book, highlight the relevant address and
press the delete (trashcan) button. The addressbook can be sorted by
using the up and down arrow buttons on a highlighted address.
Addresses are stored in file `$HOME/.efax-gtk_addressbook'.
Using the fax lists
To bring up the fax lists, go to the the `File' menu and pick the `List
received faxes' or `List sent faxes' menu item. Highlight the fax to
printed or viewed by pressing the left mouse button. The programs to
be used to print and view the fax are specifed in the efax-gtkrc
configuration file, or if none are specified, the program will print
using lpr (which will work for most Unix systems) and view with gv.
To print faxes, a PRINT_SHRINK parameter can be specifed in efax-gtkrc
to enable the fax page to fit within the printer margins. A parameter
of 98 will work with most printers. This can be changed while the
program is running by bringing up the `Settings' dialog and entering it
into the `Print/Print Shrink' box.
A fax can be deleted from a fax list by pressing the delete (trashcan)
button. This will place the deleted fax in the `Trash' folder. If the
delete (trashcan) button is pressed in relation to a fax in the `Trash'
folder, it will be deleted from the file system.
A description can be added to a received fax when appearing in a fax
list (or subsequently amended) by pressing the relevant button -- this
will enable faxes to be more easily identified.
The received faxes list will show, at the far right of the tool bar,
the number of faxes received since the program was last started. If
efax-gtk is in receive standby mode, the "tooltips" for the program's
icon in the system tray will also indicate this number. The count can
be reset to 0 without restarting the program by pressing the reset
button in the received faxes list.
The program settings can be changed by manually editing the efax-gtk
configuration file comprising $HOME/.efax-gtkrc, $sysconfdir/efax-gtkrc
or /etc/efax-gtkrc. The file is searched for in that order, so
$HOME/.efax-gtkrc takes precedence over the other two.
The configuration file can also be set by using the Settings dialog
launched from the `File/Settings' pull down menu item. The settings
entered using this dialog are always stored as $HOME/.efax-gtkrc.
Accordingly, if the Settings dialog has been used, and you want to
revert to the global settings, this can be done either by deleting the
$HOME/.efax-gtkrc file, or by pressing the `Reset' button in the
Settings dialog, which will reload the Settings dialog from the global
configuration file ($sysconfdir/efax-gtkrc or /etc/efax-gtkrc).
Help can be obtained when filling out the Settings dialog by holding
the mouse over the relevant help (?) button, which will bring up a
"Tips" display, or by pressing the button, which will bring up an
Errors and warnings from efax are displayed in red in the application
text window, and information messages and reports on the progress of
negotiations and on fax status are displayed in black in the window.
In addition, these messages are sent to stderr and stdout respectively.
Accordingly, fax status can be logged by redirecting stderr and stdout
to a log file.
As an alternative, a log file can also be maintained by setting the
LOG_FILE parameter in the efax-gtkrc configuration file, or by entering
a log file name via the Settings dialog. If no log file is specified,
no log file will be maintained. If a log file is specified, then it
can be viewed from the "Log" pull-down menu, and if efax-gtk is
compiled against GTK+-2.10 or greater, the log file can also be printed
from the pull-down menu.
USING WITH A WORD PROCESSOR
Printing to file from the program itself
Probably the simplest way of using the program with a word processor is
to print to file from the print dialog of the word processor program
concerned, and choosing a file name in the $HOME/faxout directory which
can then be selected with the file selector dialog in efax-gtk. All
Unix/Linux word and document processing programs will print to file in
Postscript format, ready to be faxed by efax-gtk. (At least, if there
is one which does not, I do not know of it).
Printing via CUPS
Efax-gtk can run a socket server, which CUPS can connect to. When the
socket server is running, fax files received from CUPS will
automatically be displayed in a "Queued faxes from socket" list
maintained by efax-gtk. From this list, a fax can be selected for
sending by efax-gtk, so there is no need to print to file from the word
processor and then select the file with the file selection dialog in
When a fax is received in this way from the print system via the
socket, the program settings can also be configured to bring up a
dialog automatically. If the program is inactive or is standing-by to
receive faxes, the fax can be sent directly from this dialog without
the need to invoke the list of queued faxes received from the socket.
If you are using CUPS and you want to connect it directly to efax-gtk
as mentioned above, you can do so by bringing up the fax administration
page for CUPS in a web browser, installing a new printer with a name of
"fax" (or whatever other name you want), choose the IPP protocol, pick
a URI of "socket://[hostname]:[port]", and choose the "Raw" CUPS
The port number can be any port number less than 65536 and more than
1023 which is not used by any other service on your machine/network
(this can be checked out by using nmap, but it is best to avoid any
listed in /etc/services). For example, as you will usually be printing
from a local computer, if you choose a port number of 9900 (which would
be quite reasonable) the URI would be:
As an alternative, rather easier than the web interface is adding a new
CUPS virtual printer for efax-gtk by using lpadmin. To do this, log in
as whatever user has appropriate permissions (usually root) and do it
from the command line with:
/usr/sbin/lpadmin -p FaxPrinter -E -v socket://localhost:9900
That will create a printer name for efax-gtk called FaxPrinter for a
case where efax-gtk is listening on port 9900.
You should then start efax-gtk, go to the Socket tab in the settings
dialog, check the "Run socket server" box, and enter 9900 in the "Port
to which faxes to be sent" box.
To send a fax from the "Queued faxes from socket" dialog, highlight the
one to be sent, press the "Enter selected fax to send" button in the
dialog (the one with an icon representing a fax machine) which will
enter the fax in the "File to fax" box in efax-gtk, and then choose a
telephone number to send it to and press the "Send fax" button in the
If efax-gtk isn't running when you attempt to send a file via CUPS to
efax-gtk don't worry. CUPS will queue the fax until it detects that
the efax-gtk socket server is running, and then send it to efax-gtk.
Where a fax is queued for sending in the socket list, a small red
circle will appear in the main program window on the right hand side of
the "Fax to send" box.
Printing via lpd/lprng
The socket server can also be used in the same way with lpd/lprng. The
files efax-gtk-faxfilter and efax-gtk-socket-client are installed in
/var/spool/fax, when you run `make install' (the installation directory
can be changed at the ./configure stage using the "./configure
--spooldir=[dir]" parameter. You should add at the end of
/etc/printcap the following -
This will cause a printer by the name of "fax" to be available, which
(if printed to) will send the file to the efax-gtk socket server. If
you set efax-gtk to listen on a port other than port 9900, you will
need to amend the file /var/spool/fax/efax-gtk-faxfilter by hand to
specify the correct port number on which efax-gtk is listening.
Don't forget to restart the lpd printer daemon after amending
/etc/printcap. (An equivalent addition to /etc/printcap can also be
made by using the printer configuration tool with your distribution,
choosing a printer name of "fax" (or whatever other name you want),
choosing a printer device of "/dev/null", a spool directory of
"/var/spool/fax" and an input filter of "/var/spool/fax/efax-gtk-
Efax-gtk has been written so that it will sit in the system tray in
GNOME and KDE when the program is running.
From the system tray, the program can be hidden and raised again by
left-clicking with the mouse on the icon, and right-clicking on it will
bring up a menu from which certain program operations can be performed.
A `tips' display will also indicate the program state if the mouse is
left hovering over the efax-gtk icon.
Clicking on the top right (delete) button of the window frame will not
cause the program to terminate if the program is embedded in the system
tray. Instead it will hide it in the tray. If you want to close the
program when it is embedded in the tray, either select the "Quit" menu
item in the system tray efax-gtk menu, or select the "Quit" menu item
in the "File" pull-down menu in the program toolbar.
Recent versions of GNOME call the system tray a "Notification Area".
If your desktop panel does not have a Notification Area installed, it
can be placed on the panel by right clicking on the panel, and going to
Add to Panel -> Utility -> Notification Area.
A working sub-directory for the storage of .efax-gtk_addressbook,
.efax-gtk_mainwin_save and .efax-gtk_queued_server_files and the
faxin, faxout, faxsent and efax-gtk-server directories can be specified
in the efax-gtkrc configuration file with the WORK_SUBDIR: parameter.
This working subdirectory will appear as a subdirectory of $HOME (so if
WORK_SUBDIR: is specified as efax-gtk, $HOME/efax-gtk will be the
working directory). If none is specified, which is the default, then
these files/directories will be stored directly in $HOME (which was
what happened before the option was available, so past efax-gtk
installations will not be broken if this option is left unset). The
WORK_SUBDIR: parameter enables these files and folders to be kept
together in a separate directory if wanted. If a WORK_SUBDIR:
parameter is specified, only .efax-gtkrc will appear directly in $HOME.
Note that if you specify a value for WORK_SUBDIR: in the efax-gtkrc
configuration file, you will need to shift old versions of the files
and directories mentioned above into the new working directory or efax-
gtk will not be able to find them, so use this option with caution. In
addition, if you wish to use the "print_fax" or "mail_fax" scripts, you
will need to set the WORK_SUBDIR option in the relevant script.
The efax-gtk executable.
A filter script for lpd/lprng which will send files to the efax-
gtk socket server
The companion socket client for efax-gtk-faxfilter
The efax-gtk configuration file.
Various translation files for different locales.
Efax-gtk manual file
In addition some files from efax itself are installed, as follows:
The efax executable
The efix executable
Efax manual files
9 September 2008