Document Printer (auto)configurator
Author Jan Holesovsky <kendy@suse.cz>
Id $Id: spec_printconf.html,v 1.2 2002/07/15 11:53:33 jsrain Exp $

Vision

Configuration of the printer should be as easy as a children play. This should be provided by as much autoconfiguration and default values as possible.
Keep in mind that children games can be rather complicated and also pretty cruel. Have you ever thought about slipping wings off your printer?

The Configurator

The main point of this document is The Configuration Wizard. The printer instatallation tool is in fact the poor Wizard, the administration tool has these additional features:

Deleting the printer

The Configurator should ask user if he is really sure. After it, it should remove everything it previously installed.

Editing the printer settings

This is similar to Manual addition of the printer, step 5. of the Configuration Wizard, but the current settings of the edited printer are used as the default values.

Configuring the filter

Starts the Filter Setup.

The Configuration Wizard

If you want to know deeply, how to get particular information for configuration, have a look at Printer connection document.

When the user starts the Configuration Wizard, the following steps should be walked through:

  1. Perform autodetection of possible printer connections. Check for necessary packages and detect currently used spooler from the list of them. In case of inconsistency ask user to choose spooler and reinstall it.
  2. Autoprobe printer models on detected connections.
    Reference: Printer connection document
  3. Add all autoprobed printers sitting on autodetected connections to the spooling system.
    The connection (/dev/lp?, network address, etc.), manufacturer and type of these printers is known.
  4. Ask user about the manufacturer and the model of all unknown printers sitting on autodetected connections and add them to the spooling system.
    The connection is known and it is known that there is a printer on it, but its manufacturer and its type is unknown. (E.g. when a queue on a remote host is detected --- you know the name of the queue but not the printer type. Another example: Autodetected printer is not in the printer database.) More printers can use one kind of connection!
  5. Manual addition of the printers.
      This is necessary for printers or printer connections that cannot provide information about themselves, or when some parts of the system weren't configured properly.
    1. Ask the user about the type of connection (parport, serial, ..., remote, ...)
    2. Ask the user for all required information about the connection and for printer's manufacturer and model. Of course, help him as much as possible (e.g. provide list of serial devices, list near hosts, ...)
      (Reference: Printer connection document)
    3. Ask the printer name.
    4. Configure the filter. (See The Filter Setup section.)
    5. Add the printer to the spooling system.
    Repeat the manual addition until the user answers, that he has no other printers to configure.
  6. Finish, congratulate, etc. :-)

Asking the user about the printer's manufacturer and model

See the Printer Database.

The Configurator should provide a list of all printers in the printer database. This list should be structured --- into a tree or into two windows, where in one, there are vendors and in the other, there are models of the selected vendor there.

Adding a printer to the spooling system

Ask for this (required) information:

At this point, the Configurator knows every required information about the printer. It means:

Now it should update the spooling system:

  1. Write the spooler and filter configuration files (/etc/gs.upp/y2prn_printername.upp if using LPRng or call CUPS daemon via IPP call to force it save change if using CUPS) and YaST2 Printer configuration file (/var/lib/YaST2/printers).
  2. Call /var/lib/apsfilter/apsfilter.setup to add the printer (with /etc/gs.upp/y2prn_printername.upp as the configuration file) if configuring LPRng.
  3. Adjust starting of configured spooler
  4. Call SuSEConfig.