EFAX-GTK(1)

πŸ“¦ version 3.2.8, in debian bookworm, ubuntu jammy

✨ EFAX-GTK ✨ (the efax-gtk manual, bestie edition)

okay so. sit down. hydrate. we're talking about efax-gtk, and honestly? it's giving fax machine but make it ✨GUI✨. this page is the EFAX-GTK(1) manual and I'm about to make it make sense. no cap. πŸ¦‹


πŸŽ€ NAME πŸŽ€

efax-gtk β€” it's the GUI front end for the efax program. that's it. that's the whole vibe. πŸ’…


🌸 SYNOPSIS 🌸

efax-gtk [options] [ file ]

Options: [-rs]
       -r  Start the program in receive standby mode

       -s  Start the program hidden in the system tray

so yeah, you run it, you can toss a file at it if you want, and there's exactly two options in the synopsis lineup:

  • -r β€” starts the program in receive standby mode. it's just sitting there, waiting, ready to catch a fax like it's catching feelings. πŸ“ 
  • -s β€” starts the program hidden in the system tray. it's the introvert option. lowkey present, highkey minding its own business. 🫢

Efax-gtk is Copyright (C) Chris Vine, 2001 - 2008. It is released under the General Public License, version 2.

respect the license bestie, it's literally the law. ⭐


πŸ’– DESCRIPTION πŸ’–

so here's the whole deal, fr fr. efax-gtk is a GTK+ front end for the efax program. it can:

  • send and receive faxes with a fax modem πŸ“ 
  • view, print and manage the faxes you received πŸ‘€
  • hand you a socket interface that acts like a "virtual printer", so you can send faxes straight from word processors and similar programs (iconic behaviour honestly)
  • automatically e-mail a received fax to a designated user ✨

now the tea on the packaging: 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. that's the whole point. and the patch isn't just for fun β€” the version of efax shipped with efax-gtk provides internationalization support, and it resolves certain difficulties with locales that the standard distribution has. so like, it actually fixes things. ate. πŸ’…

to avoid name conflicts, the patched versions of efax and efix are installed as efax-0.9a and efix-0.9a. now β€” if you want to use the standard distributions of efax instead, here's the ritual you perform:

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.

and just so you know: efax-0.9 or higher is recommended. the program will work with older versions of efax, but heads up, with older versions:

  • some automatic configuration options will not be available 😭
  • 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 πŸ’€

so like, older versions = chaos potential. you've been warned. πŸ™ˆ

one more thing, and it's important: 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 those into the Group 3 fax format that the fax modem will understand. so ghostscript is doing the heavy lifting behind the scenes. main character energy, honestly. πŸ‘‘


🧚 ARGUMENTS 🧚

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 program starts. 🎁

so like, no clicking around trying to find it β€” you hand it over at launch and it's already in the box. we love a program that reads the room. 🌈


✨ USE ✨

Okay bestie, so the very first time you fire this program up, it's gonna ask you if you accept the terms of the General Public Licence, version 2. That's the vibe check before anything else. πŸ’…


πŸ¦‹ Sending faxes

Before you send a fax, you gotta tell it which file you're sending β€” that goes in the "File to fax" box. And heads up: the file has to be in postscript format, because the program will convert it into the correct tiffg3 fax format for you. ✨

You can type it in manually in the "Fax to send" box, or pull it in through the file selection dialog. If your file is just one single postscript file, hit the "Single File" button and go find it. And ngl, this dialog makes life way easier if you just drop the file in the $HOME/faxout directory first. πŸŽ€

Now, if you put more than one file in the "Fax to send" box, they all get sent as a single fax, appended in the exact order you entered them in the box. Multiple files are way easier to pick using the file list that pops up when you press the "Multiple Files" button. Pressing that button lets you find files and add them to the list, and you can reorder them with the Up or Down arrow buttons, or just drag and drop with the mouse. πŸ–±οΈ

If you're entering multiple files manually instead of using the "Multiple Files" dialog, use a ,Β΄ or a ;Β΄ as the file name separator. Don't forget, bestie.

The number you're faxing to goes in the "Tel number" box. Type it straight in, or grab it from the built-in addressbook. You can open the addressbook by pressing the "Tel number" button, or from the `File/Address bookΒ΄ pull-down menu item. (More on that in "Using the address book" below. πŸ‘‡)

But here's the cute part: if a telephone connection is already established with the remote fax receiver, you can send the fax without dialing by just leaving the "Tel number" box blank. A dialog will pop up asking if you'd like to send the fax without dialing β€” and that 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. And if the program is inactive or is standing-by to receive faxes, the fax can be sent directly from this dialog without needing to invoke the list of queued faxes received from the socket. Slay.

Faxes that send successfully get copied to a directory in the $HOME/faxsent directory β€” the name is derived from the year, month, day, hour and seconds when the sending of the fax was completed β€” and they'll show up in the faxes sent list. But only if they were sent without error, periodt. The efax message display box will report on the progress of a fax being sent. You can bring the fax list up from the `File/List sent faxesΒ΄ pull down menu item. (See "Using the fax lists" further below. πŸ’–)

The program can also send a fax while it's in receive standby mode. If you do that, once the fax has been sent (or there's an error in sending it), the program returns to receive standby mode. Iconic behaviour.

To make sending faxes from word processors easy, a socket server is provided that interfaces directly with the print system. More on that below.

And oh β€” ordinary ascii text files can be converted into postscript if you need to, using a bunch of different programs. Probably the easiest to use are nenscript or GNU enscript (man enscript). 🌸


🌈 Receiving faxes

Three ways of receiving faxes are provided for. Yes, three. Let's go. 🫢

  1. First, the program can be set to answer a fax call that's ringing but hasn't been answered yet β€” just press the "Answer call" button.
  2. Secondly, the program can take over a call that's already been answered (say, by a telephone hand set) β€” press the "Take over call" button.
  3. Thirdly, the program can be placed in standby mode by pressing the "Standby" button. This automatically answers any call after the number of rings specified in the efax-gtkrc file, and receives the fax. The program keeps on receiving faxes until the "Stop" button is pressed. And yes, a fax can also be sent while the program is in receive standby mode. ✨

Received faxes come in tiffg3 format (one file for each page) and get placed in a directory in the $HOME/faxin directory. The name is derived from the year, month, day, hour and seconds when the relevant "Answer call", "Take over call" or "Standby" button was pressed. πŸ’«

Little detail for the standby girlies: 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. Bring it up from the `File/List received faxesΒ΄ pull down menu item. (See "Using the fax lists" further below. πŸ‘€)

When a fax is received, a pop-up dialog can also be set to appear β€” just go to the Settings dialog to make that happen.

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 lets the program 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's received. πŸŽ€

These scripts are not installed by make install β€” so if you want to use them, make them executable with chmod +x and copy them to a directory that's in the system path, like /usr/local/bin, and then specify the script name in the settings dialog. No cap.

πŸ’œ 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, then press the "OK" button. Easy.

Addresses can be added to the address book by pressing the add button and then completing the relevant dialog that appears. To delete an address, highlight it and press the delete (trashcan) button. πŸ—‘οΈ And the addressbook can be sorted using the up and down arrow buttons on a highlighted address.

Addresses are stored in the file $HOME/.efax-gtk_addressbookΒ΄. iykyk. πŸ’…


⭐ Using the fax lists

To bring up the fax lists, go to the FileΒ΄ menu and pick the List received faxesΒ΄ or `List sent faxesΒ΄ menu item. Highlight the fax you wanna print or view by pressing the left mouse button. The programs used to print and view the fax are specified in the efax-gtkrc configuration file β€” or, if none are specified, the program will print using lpr (which works for most Unix systems) and view with gv.

To print faxes, a PRINT_SHRINK parameter can be specified in efax-gtkrc so the fax page fits within the printer margins. A parameter of 98 will work with most printers. πŸ”₯ You can change this 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 places the deleted fax in the TrashΒ΄ folder. And if you press the delete (trashcan) button on a fax that's already in the TrashΒ΄ folder, it gets deleted from the file system. πŸ’€

A description can be added to a received fax when it appears in a fax list (or amended later) by pressing the relevant button β€” this makes faxes way easier to identify. 🏷️

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. And if efax-gtk is in receive standby mode, the "tooltips" for the program's icon in the system tray will also show this number. You can reset the count to 0 without restarting the program by pressing the reset button in the received faxes list. πŸŽ‰


🌸 Settings

The program settings can be changed by manually editing the efax-gtk configuration file, which comprises $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 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. So accordingly, if the Settings dialog has been used and you wanna revert to the global settings, you can do it either by deleting the $HOME/.efax-gtkrcfile, or by pressing theResetΒ΄ 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 brings up a "Tips" display, or by pressing the button, which brings up an information display. πŸ¦‹


πŸ“œ LOGGING

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. So 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 πŸ’–

okay so honestly? the simplest way to vibe with a word processor here is just to print to file straight from the print dialog of whatever word processor you're in, and pick a file name inside the $HOME/faxout directory. then you can just grab it with the file selector dialog in efax-gtk. easy. ✨

and here's the slay: 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's one out there that doesn't, bestie, I literally do not know of it πŸ™ˆ)

🌸 Printing via CUPS 🌸

Efax-gtk can run a socket server, and CUPS can connect to it. when the socket server is running, fax files received from CUPS will automatically show up in a "Queued faxes from socket" list that efax-gtk maintains. from that list you can pick a fax to send with efax-gtk, so no need to print to file from the word processor and then hunt for the file in the file selection dialog. iconic, no cap. πŸ’…

when a fax comes 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 needing to invoke the list of queued faxes received from the socket. main character energy fr fr. πŸ‘‘

if you're using CUPS and you want to connect it directly to efax-gtk like we said, you do it 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, live ur truth), choose the IPP protocol, pick a URI of "socket://[hostname]:[port]", and choose the "Raw" CUPS printer driver. that's it, that's the whole thing. πŸŽ€

now the port number β€” it can be any port number less than 65536 and more than 1023 which isn't used by any other service on your machine/network. (you can check that out with nmap, but honestly it's best to avoid any listed in /etc/services.) for example, since you'll usually be printing from a local computer, if you pick a port number of 9900 (which would be quite reasonable, lowkey a great choice) the URI would be:

socket://localhost:9900

as an alternative β€” and rather easier than the web interface β€” you can add a new CUPS virtual printer for efax-gtk by using lpadmin. to do that, 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 creates a printer name for efax-gtk called FaxPrinter for a case where efax-gtk is listening on port 9900. 🫢

then you should 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. done bestie.

to send a fax from the "Queued faxes from socket" dialog: highlight the one you wanna send, 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 ordinary way.

and if efax-gtk isn't running when you try 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. it's patient like that.

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. that's ur little visual vibe check that something's waiting.

🌈 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 β€”

fax:\
     :sd=/var/spool/fax:\
     :mx#0:\
     :sh:\
     :lp=/dev/null:\
     :if=/var/spool/fax/efax-gtk-faxfilter:

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'll 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. ⚠️ seriously, it will not notice otherwise.

(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-faxfilter".) πŸ’œ


✨ SYSTEM TRAY ✨

Efax-gtk has been written so that it will sit in the system tray in GNOME and KDE when the program is running. it just... lives there. rent free. 🏠

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. πŸ–±οΈ

now listen β€” 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 actually want to close the program when it's 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. πŸ’€ the X button is a little liar, that's all.

recent versions of GNOME call the system tray a "Notification Area". if your desktop panel doesn't 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. boom. slotted in. πŸŽ€


🌟 WORKING DIRECTORY 🌟

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. so tidy. so clean. 🧚

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. don't skip that bit bestie, i'm begging 😭

πŸ’… FILES πŸ’…

  • efax-gtk β€” the efax-gtk executable.
  • efax-gtk-faxfilter β€” a filter script for lpd/lprng which will send files to the efax-gtk socket server.
  • efax-gtk-socket-client β€” the companion socket client for efax-gtk-faxfilter.
  • efax-gtkrc β€” the efax-gtk configuration file.
  • efax-gtk.po β€” various translation files for different locales. 🌍
  • efax-gtk.1 β€” efax-gtk manual file. (hi, that's me πŸ’–)

in addition, some files from efax itself are installed, as follows:

  • efax-0.9a β€” the efax executable.
  • efix-0.9a β€” the efix executable.
  • efax.1 efix.1 β€” efax manual files.

πŸ‘€ SEE ALSO πŸ‘€


🫢 AUTHOR 🫢

Chris Vine cvine@users.sourceforge.net


and that's a wrap on the whole page, bestie!! πŸŽ‰ this manual is version EFAX-GTK(1), dated 9 September 2008. go forth and fax, you absolute icon. πŸ’–βœ¨πŸ¦‹πŸŽ€

πŸ“¦ where this page comes from