A couple weeks ago at the dist meeting we discussed improving how
printers are configured on openSUSE. Specifically we discussed the
following use cases as something we would want to achieve for 10.3, and
we'd like to open up the discussion on implementation:
1) Detecting a local USB printer when plugged into the machine and
prompting the user to configure it or automatically selecting a driver
and configuring the printer
We have a lot of the detection code, both usb and hal cups backends can
detect the usb printer. Hal being a general hardware detection layer
actually sends a message when its plugged in and GNOME uses this to pop
up a dialog to configure the printer via a hal backend for cups.
However the hal backend is not a standard upstream cups backend and its
very difficult to convert a cups hal:// uri to a usb:// one - but not
entirely impossible, there is some code in /usr/bin/add-unknown-printer
(part of the gnome-volume-manager) to do some of this. Yast also does
not support the hal backend currently. The usb cups backend is the
standard upstream cups backend but it does no polling so we'd need to
poll somehow (gnome-volume-manager and kmediamanager are possiblities).
For true zero config printer, we'd need to build up a database of
printer ids and driver mappings and include that in the distro. We also
need to make this configurable so that you have the possibility of not
doing zeroconfig printing on servers.
2) Not needing root to configure a printer
Couple of thoughts here, for a hal based solution we might be able to
leverage PolicyKit and unify our hardware access permissions system with
an upstream default. We could also alter resmgr for this or use sudo.
We need to make sure this is configurable though, because it needs to be
turned off for servres.
3) Detecting when a printer is connected/disconnected and offering
visual feedback via a notification area icon, or some other ui feedback
An easy thing to do here would be to patch cups to send out dbus signals
and both GNOME and KDE could put up tray icons or whatever. HAL could
also be used to detect disconnects reconnects
4) Ability to remove printers from cups (even shared printers) when
they're unplugged to prevent jobs from accumulating in the queue or being default
If we can get to zeroconfig printing we could optionally just remove a
printer from cups when its unplugged. A little more unclear how useful
it would be.
If someone wants to throw up some info as an openSUSE project
http://en.opensuse.org/Projects that would be great.
I suspect items 1) and 2) are really the keys, if they work then 3) or 4) should be pretty
straightforward.
-JP
--
JP Rosevear