[157] in Athena User Interface
Revised plan for printing GUIs
daemon@ATHENA.MIT.EDU (Christopher D. Beland)
Mon Jun 12 19:49:17 2000
Message-Id: <200006122349.TAA20696@No-Whammies.mit.edu>
To: aui@MIT.EDU
Cc: cfox@MIT.EDU
Date: Mon, 12 Jun 2000 19:49:12 -0400
From: "Christopher D. Beland" <beland@MIT.EDU>
Deliverables:
- Panel applet to support drag-and-drop printing
- Print job monitoring applet
- Associated capplets
- Wrapper script in /usr/athena/bin/lpr
- Supporting documentation
This sub-project is "medium" priority. If time is short, we might
punt the wrapper script and support for ~/.recent-printers in the job
tracking applet.
Please send mail to aui@mit.edu if you have suggestions for
improvement, if I've gotten something wrong, etc.
---
* PRINTING PANEL APPLET*
We will be modifying the existing GNOME "Printer Applet" (in the
Utility category of the stock applets). It will live on the GNOME
panel by default.
On login, it will check the PRINTER environment variable; if set, it
will remember this value. If not set, it will do a Hesiod lookup for
the default printer and remember that value. Alternately, the user
may specify a default printer that will persist from login to login.
If no value is obtained from any of these sources, the printer is set
to "(none)".
The name of the current printer (to which jobs will be sent if files
are dropped on the applet) should be displayed below the panel icon as
they are in the unmodified applet.
We will create a wrapper script and put it in /usr/athena/bin/lpr.
This will store the name of any Athenized printers that receive jobs
in ~/.recent-printers, for job tracking purposes. (Printers with no
jobs for the user will get purged by the Gnome-Athena printjob
tracker.) If the user has configured the print applet to use a
program other than lpr (or the applet uses one on its own) then the
applet must ensure the printer name is stored in ~/.recent-printers.
In any case, the applet will determine the file's type, decide whether
to print interpreted document or source code, depending on user
configuration, and dispatch to the appropriate action:
- Send file directly to the print spool (e.g. PostScript)
- Invoke an appropriate translator and then spool (e.g. PDF)
- Prompt the user to open and print from inside the appropriate
application (e.g. GIMP)
[We may actually be able to borrow MIME decoding stuff from GNOME
and/or KDE file managers or other places.]
The applet would have a configuration page (capplet) that looks like this:
=========================================
PRINTING CONFIGURATION
Current printer: ajax (w20-575)
[Change current printer to...]
[Make choice persistent] (not recommended)
Print method:
(X) Built in
(X) Print header pages for each job
(X) Zephyr me when each job completes
(X) Auto-detect document type (recommended)
( ) Ignore document type and print source code
( ) Prompt me before printing
( ) Use custom command: _____________
=========================================
ASCII Legend:
[buttons]
( ) Check boxes
(other GUI objects)
Fill-in field: ___________
=========================================
Notes:
[Edit list] menus
Header pages and Zephyr notification both should default on.
"Auto-detect type" "print source" and "prompt me" should be mutually
exclusive.
[Change printer to...] should open a "Choose printer" dialog, which
should have buttons to allow adding and deleting entries to a
persistent list, in addition to resetting the list to Athena default.
---
We would be deliberately not be supporting multiple copies and e-mail
notification, among the many other lpr flags.
* PRINT JOB TRACKING *
We will create an applet for users to track print jobs once they've
been sent to the queue. It will be launched after a DND print request
by default.
===================================================================================
ATHENA PRINT JOB TRACKING APPLET
Default printer for this host: ajax (w20-575)
[Show all known jobs for beland]
[Show all jobs for printer...]
[Show all jobs on all printers
with known jobs for beland]
-------------------------------------------------------------------------------------------
--- Showing all jobs on ajax (w20-575) ---
[Update display]
------------------------------------------------------------------------------------------------
Click Job Owner Job# Job name Printed From Sent to Time Size
X to Status Host Printer Sent
Cancel
X Pending beland 222 baz.html w20-575-165 ajax (w20-575) 17:04:21 3.4 Mb
X 1st on queue beland 238 foo.txt No-Whammies ajax (w20-575) 17:05:49 6.8 Kb
2nd on queue joeuser 259 bar.frame w20-575-200 ajax (w20-575) 17:06:20 5.2 Mb
-------------------------------------------------------------------------------------------------
[Update display]
---------------------------------
Printer Location Status
ajax w20-575 printing Track: (active printers only - recommended)
ceres w20-575 idle (all printers on list)
housebook Fenway House jammed [Edit printer list...]
---------------------------------
[Printing Configuration...]
(X) Auto start applet when printing
=============================================================================================
Notes:
"beland" should be set by $USER or some similar mechanism.
[Show all jobs for printer...] should open up the "choose printer"
dialog mentioned above.
In addition to checking all printers in ~/.recent-printers, the applet
should always check to see if the user has jobs on the current default
printer.
By default, only the status of "active" printers (i.e. those with jobs
on them) are tracked.
Both [Update display] buttons should update both charts. Pressing one
of these buttons should, in addition to updating all visible screens,
check to see if any of the printers in ~/.recent-printers should be
deleted (because the user no longer has any jobs there).
[Printing configuration] should open the capplet for the DND panel
applet.
---
By default, pull-down menu should include all public Athena printers.
Changes to the lists should be maintained per-user and from session
to session.
After discussion about print server load, we decided we won't make the
displays automatically update (like say, every 10 seconds). It would,
however, be easy to add in such a feature later if it was wanted and
we thought the print servers could handle it.
* PRINT DOCUMENTATION *
Help for all screens should be accessible from within all the relevant
applets/applications from the pulldown menus, via the GNOME help
browser. Athena-specific documentation should be added to the GNOME
docs, including:
- How to move jobs to another printer if the queue is long
(kill and reprint)
- Detailed explanation of what drag and drop printing does with
various document types and why some types might not print.
Pointers to places where the appropriate software might be found
(should be integrated into error messages).
- Why a job might not show up under "Find all jobs for $USER" and
what to do about it. (Old or non-lpr binary was used; enter
printer name manually.)
- Instructions on what (or what not) to do when a printer is
physically jammed, misbehaving, or broken (e.g. e-mail
hotline@mit.edu)
- How to request that a queue be cleared (Zephyr -i printadm)
complain about abuse, etc.
- Where to print your thesis, in color, etc.
- Updates to all other OLC stock printing answers
This may or may not be off-loadable to people elsewhere in I/S.
* GENERAL NOTES *
DND printing will only work from GNOME-aware applications (which
fortunately includes gmc, the interim file manager).
Everywhere a printer name appears, its physical location should
appear. (e.g. w20-575, etc.)
It would seem to make sense to make the list of known printers (by
default, containing all public Athena printers) persistent from login
to login, and global for anything related to Gnome-Athena printing.
Obviously, the printers you want to print to are the same ones you
want to check the status of, and it would just be a waste of time to
have multiple lists for people to configure.
Lastly, if Camilla or anyone else has any light to shed on the
following question, that would be useful. 8)
> > * If a user prints to a printer name which is only valid on a
> > particular machine, that will confuse things.
>
> Does this really happen? That will confuse things. Could you explain
> further? I have never seen this situation, is it common?