Bug 468046

Summary: Misleading Add/Modify dialog in yast2-printer when it initially finds no driver
Product: [openSUSE] openSUSE 11.1 Reporter: Martin Jost <lists>
Component: YaST2Assignee: Johannes Meixner <jsmeix>
Status: RESOLVED FIXED QA Contact: Jiri Srain <jsrain>
Severity: Major    
Priority: P3 - Medium CC: fakepost, freek, gilbert_awad, jsmeix, matti.kukkola
Version: Final   
Target Milestone: ---   
Hardware: All   
OS: openSUSE 11.1   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: screenshot of yast failing at finding the driver
driver slection for printer on 10.3

Description Martin Jost 2009-01-21 18:22:58 UTC
User-Agent:       Mozilla/5.0 (X11; U; Linux i686 (x86_64); de; rv:1.9.0.5) Gecko/2008120121 Firefox/3.0.5

This is a sort of "reopen" of 467172, which was closed without asking. Sorry if there is a better way of doing this. (Please let me know in this case)

Find attached the screenshot with the crucial point:
yast detects the printer, spits out its full name - but then fails to find a driver for it using that name.
The "trick" to just enter "1020" to find a driver nevertheless (as given as reason for the close of 467172) is so counter intuitive that probably not only I failed at that ! (And it also worked in earlier releases of Suse Linux, so for me this is a clear regression)

Reproducible: Always

Steps to Reproduce:
Steps to Reproduce:
1. try to install Kyocera FS-1020D using yast
2. Fails, when yast needs to find the driver

Actual Results:  
Printer not installed


Expected Results:  
Printer should be installed; yast should be able to find the driver using the name yast itself detected as name of the printer.


I *don't* agree with the solution given in closing 467172 ! I consider myself a somewhat experienced Linux user (and Suse user at that), but I didn't came up with the solution given. 

Please bear with my second try of making me understood. 
And please note, that I could just turn away and don't give a damn, because I have a working solution for me anyway...
Comment 1 Martin Jost 2009-01-21 18:25:34 UTC
Created attachment 266614 [details]
screenshot of yast failing at finding the driver
Comment 2 Johannes Meixner 2009-01-22 09:23:34 UTC
Your report in bug #467172 was misleading.
I thought it is about that you report
that there is no longer a driver which
is invalid because actually we provide
the same driver as before.


Regarding this new report:

It is the most often reported issue that
the dialog in attachment #266614 [details]
is misunderstood by the user when
YaST initially didn't find a matching driver.


It seems many users misunderstand the
"No matching driver found"
message in YaST as an ultimate final statement
that there exists no driver for this model
but actually the message means exactly what
it reads, i.e. that YaST did not find a driver
which matches to the directly above shown model string.

In attachment #467172 the upper table shows
in the "Modell" column the value what the printer
hardware itself reports via the USB.

Only this value can be used by YaST to find a matching driver.

When there is another model value used in the printer
description files (PPD files), YaST cannot find a matching
driver and all you can do is to manually search
for a matching driver.

YaST cannot fix such kind of non-matching values.

It could only be fixed by those who make the driver
with its associated PPDs which is here the printer
manufacturer Kyocera and I already explained in
https://bugzilla.novell.com/show_bug.cgi?id=467172#c3
how this mess was caused by Kyocera itself.


The dialog in attachment #467172 was designed together
with our usability experts and implemented accordingly.
For background information you may have a look at
http://en.opensuse.org/YaST/Development/Printer_Enhancement
and compare the final design
http://en.opensuse.org/Image:Printer_mschmidkunz_rc2_addlocalqueue.png
with one of my experimental proposals
http://en.opensuse.org/Image:Printer_jsmeix_add.png
and even before this one I had a [More Drivers] button
in my experimental module so that it looked initially like
--------------------------------------------------------------------------
Assign Driver:
|ACME FunPrinter 1200| [Show matching Drivers] [More Drivers] [Add Driver]
__________________________________________________________
|No matching driver found
|
--------------------------------------------------------------------------

The [More Drivers] functionality was simply to remove the last
word of the model string so that after clicking [More Drivers]
it could look like
--------------------------------------------------------------------------
Assign Driver:
|ACME FunPrinter     | [Show matching Drivers] [More Drivers] [Add Driver]
__________________________________________________________
|No matching driver found
|
--------------------------------------------------------------------------

After one more clicking [More Drivers]
it could look like
--------------------------------------------------------------------------
Assign Driver:
|ACME                | [Show matching Drivers] [More Drivers] [Add Driver]
__________________________________________________________
|ACME Fancy Printer 1000
|ACME Funny Printer 2000
--------------------------------------------------------------------------

The last fallback (when nothing matches to the first word
which is usually the manufacturer name) is to show
the full list of all available drivers.
I.e. in any case clicking [More Drivers] several times
results eventually a list of drivers.

I re-assign the issue to our usability expert
because it is no bug in YaST (it is implemented
according to the current design) but a usability issue
if the current design provides good usability.
Comment 3 Johannes Meixner 2009-01-22 09:28:52 UTC
Typos in the above comment:
"attachment #467172" should be "attachment #266614 [details]".
Comment 4 Johannes Meixner 2009-01-22 09:41:34 UTC
For duplicate reports see
bug #467172
bug #467457
bug #462070
bug #446186
https://bugzilla.novell.com/show_bug.cgi?id=446432#c11
Comment 5 Johannes Meixner 2009-01-22 11:02:54 UTC
Martin,
what the Add dialog must tell the user
is not that it shows an ultimate final result because
what it shows is actually only a best-guess proposal.

I.e. the message of the Add dialog should be:
"Here a best-guess proposal how to set up your printer.
 Check if the currently pre-selected values make sense
 and feel free to play around and modify the settings
 to what you know what works best for your printer
 or to what you at least hope is the best here."

If YaST could determine an ultimate final result,
I would not show any dialog at all where
the user can adjust the settings.

If YaST could determine an ultimate final result,
I would simply set up the queue full automated
without any user-interaction at all.

Printer setup means to solve a many-to-many assignment:
Several possible working connections for the same device
and many possible drivers for the same model.
Comment 6 Martin Jost 2009-01-24 10:29:40 UTC
I just rechecked with 10.3 - where from my recollection this worked as I would expect.
Here yast doesn't try to guess, but simply displays a list of *all* drivers and let me pick. (I will attach a screen shot)
So it is quite clear, that I have to pick the driver.

The problem with 11.1. has IHMO two causes:
- yast diplays the very specific name of the printer, but then tells it couldn't find a driver. I interpreted this as a final failure notification which stopped me from searching myself. ("It knows the exact name, but couldn't find the driver with this info")
- in addition yast doesn't show a list of the drivers

My suggestion is:
- If yast can find a matching driver it can/should use this; maybe offer to search the full list for better alternatives.
- If it can't find a driver, it shouldn't say "No driver found" but instead simply offer the whole range of drivers and let the user pick. (As 10.3 does in the first place.)
- Maybe a sort of lookup table from "full name" to "driver name" could be added (used as second resource), which could be filled by entries from the HCL wiki. I would surely add to this list.

Feel free to close this bug, refering to one of the others. Maybe add the bug to the most annoying ones, so it is found on searching before reporting. I considered this a specific bug for Kyocera FS1020D ("Hey, why isn't the driver there any more - it worked on 10.3 !") I didn't consider this a general problem and didn't search for the bug using keywords for a wider match.

If I look at the problem, I see here a kind of behaviour, I so much hate on windows from time to time: The system tries to be smarter than the user, hides what is really going on and finally throws in the towel, when it gets stuck spitting out a misleading error message. Automatisms are fine, when they work all the time, but they are an invention from hell, if they fail and hide what is really going on and what to do about it.
Comment 7 Martin Jost 2009-01-24 10:36:51 UTC
Created attachment 267449 [details]
driver slection for printer on 10.3

Here is the list yast on 10.3 presents.
The selection is done manually, yast just shows all the drivers with nothing selected
Comment 8 Johannes Meixner 2009-01-27 09:00:57 UTC
What I did at some time during my "experimental printer module" was:

When initially no driver description string matches
to the autodetected model string, it shows the
"No matching driver found"
stuff to make the user aware that there is no
driver which matches exactly.

It is a very important information to make the user aware
that he may have to try out this or that driver which
may oe may not work for his model.
I like to disrupt the user here to make him really aware
that in this case he is on his own to find a driver
by trial and error and that he may have give up
when no driver works (yes, there are unsupported
printer models out there).
I like to disrupt the user and send him the
"No matching driver found" information
because without this information in the user's mind
it did in the past result much too often a wrong driver assigned
and this caused bug reports about broken drivers or broken
printer setup when it was actually only the result of
a too optimistic [OK]...[OK]...[OK] clicking.

But in my "experimental printer module" there was
the [More Drivers] button and when cklicking it once,
it removed automatically word by word from the
autodetected model string until the list of matching
drivers was no longer empty (up to the full list
of all available drivers) so that one single click
on [More Drivers] results a non-epmpty list of drivers
in any case.

I suggest the following re-design of this part of the dialog:

----------------------------------------------------------------------
Assign Driver:
[Search] |ACME FunPrinter 1200|            [More Drivers] [Add Driver]
__________________________________________________________
|No matching driver found
|
----------------------------------------------------------------------

The header is again "Assign Driver", compare
https://bugzilla.novell.com/show_bug.cgi?id=446186#c14
because this section of the dialog is first of all about
to assign a driver to an already selected connection.

The verbose [Show matching Drivers] button, compare
https://bugzilla.novell.com/show_bug.cgi?id=446432#c15
is now a simple [Search] button to make it obvious
for the user that he can search here.
The [Search] button is leftmost to have it immediately
visible directly followed by the model input field
and this is separated from the more advanced
functionality which is provided by the [More Drivers]
and [Add Driver] buttons which are aligned rightmost.
Comment 9 Johannes Meixner 2009-01-27 09:25:59 UTC
Regarding the last part in comment #6:
yast2-printer does neither "hides what is really going on"
because it shows that "No matching driver found"
nor does it "throws in the towel" because it lets
you search and assign any driver you like.
There is no automatism at all running here
which hinders you to assign any driver.

But what yast2-printer currently fails to do
is to make itself understood by all users.

This is the current bug and it is a bug in the
user interface design and therefore the usability experts
must work on it and tell me what the right design is
so that the users do understand "what is really going on
and what to do about it".
Comment 10 Johannes Meixner 2009-01-29 11:36:08 UTC
In comment #7 attachment #267449 [details])
is no "driver slection for printer".

It is a manufacturer and model selection.

For well supported printers (in particular PostScript+PCL printers)
there exist several drivers which work well and it is up to the user
to assign the one which works best according to his individual needs
see the help text in YaST in openSUSE 11.1:
--------------------------------------------------------------
It is possible to have several different print queues for
the same printer device.
Usually several print queues are needed when several different
printer drivers should be used for the same printer device.
For example a second queue with a monochrome-only driver
to enforce black-only printout on a color device
or a PostScript queue and a queue with a PCL driver
for a PostScript+PCL printer because printing via
the PCL driver is usally faster (but with less quality).
--------------------------------------------------------------

Actually YaST before openSUSE 11.1 (i.e. up to openSUSE 11.0)
did hide the driver selection from the user
and selected one of the matching drivers automatically
without any user notification which actual driver
it did select - except the user intentionally clicks
"[PPD Datei wählen]" which lets him select the actual driver.
Therefore YaST before openSUSE 11.1 "hides what is really going on".

In contrast YaST in openSUSE 11.1 does no longer hide
the actual driver selection from the user so that
it does no longer "hide what is really going on".
Have a look at
http://en.opensuse.org/YaST/Development/Printer_Enhancement
----------------------------------------------------------------
Basic Design Ideas:
...
The driver is visible auto-selected. There is no longer a hidden
automatism which results whatever driver it thinks is best.
The new design makes it much more obvious to the user
if there is more than one driver available and which one
is actually auto-selected.

The driver is automatically visible auto-selected so that
there is no single click more needed by the user.
The crucial point is that there is visible feeback from
the automatism to keep the user informed what is happening. 
----------------------------------------------------------------
Comment 11 Johannes Meixner 2009-02-03 07:16:20 UTC
*** Bug 471243 has been marked as a duplicate of this bug. ***
Comment 12 Johannes Meixner 2009-02-12 10:26:17 UTC
*** Bug 474869 has been marked as a duplicate of this bug. ***
Comment 13 Matti Kukkola 2009-02-12 20:17:59 UTC
Is anyone get to Canon MP610 PIXMA drivers working? I can't install Canon own drivers for openSUSE 11.1 and ppd-file what I downloaded from the net is not working.
Comment 14 Johannes Meixner 2009-02-13 08:56:36 UTC
This bug is about the "Misleading Add/Modify dialog
in yast2-printer when it initially finds no driver".

This bug is not about Canon MP610 PIXMA drivers!
The Suse/Novell Bugzila is only a bug tracking system
but not a help forum where you can ask help questions.

You may file a separated new bug report if you have
troubles with a particular driver which we provide
with openSUSE 11.1 (i.e. no third-party drivers)
and when you think it is a bug in the driver.
In this case provide exact information which printer model
and which driver you use (e.g. provide a YaST screenshot
of the Add/Modify dialog how you set it up on your
particular system).
Comment 15 Matti Kukkola 2009-02-13 12:58:32 UTC
Hello!

Sorry because of my comment. My bug report was marked as solved and I had added this bug as duplicate bug. I know this is error from admin, but what I have to do?

Regards Matti
Comment 16 Gilbert Awad 2009-02-18 19:17:56 UTC
Hello Johannes and Martin,

I would like to confirm this bug, as it left me unable to print anything from my canon Pixma MP760 for over two weeks after installing openSUSE 11.1 (until I found a "workaround" in the forums and on this bug list).

Indeed, as has been Martin's experience, it's not that the drivers aren't actually available for 11.1 on the DVD or the repos, but that YaST's response to the mismatch between printer and driver names ("No matching driver found") left me convinced that the drivers needed for my printer had been pulled from the distribution, and that I was to obtain them some other way. After all, my printer had pretty much worked "out of the box" in 11.0, with YaST not uttering so much as a peep.

Also, I have to admit that I do not find the reasoning of "confronting the user" the least helpful in such a case. If I want to feel confronted by my OS I'll run Vista! A more clear message in a dialogue offering to seach for near matches would have been far more helpful. Much more than getting "dumped" with, essentially, a "Can't find it, too bad, your on your own!".

You wrote that you used '"No matching driver found" stuff to make the user aware that there is no driver which matches exactly.'  But it is not clear wheather the match is supposed to be *exact* or *at all* (not even a near match). 

It was only by reading the forums that I discovered that adding "PIXMA" before "MP760" to the name of the printer would let YaST find the appropriate drivers.

And btw, I don't have any option to "search for more drivers" in YaST's printer configuration tool.  Just a button to let me browse to where I think they might be. (Or did I misunderstand that part of your reply...is this only on the maybe to do list?)

Anyway, thanks for all the hard work, though. SUSE remains my disto of choice thanks to the thousands who put the energy into this outstanding community project!

Gilbert
Comment 17 Johannes Meixner 2009-02-19 10:01:25 UTC
The [More drivers] button was present in my
experimental YaST printer module, see
http://en.opensuse.org/YaST/Development/Printer_Enhancement

Unfortunately the [More drivers] button was removed
for the YaST printer module in openSUSE 11.1.

I would like to re-add the [More drivers] button
for the YaST printer module in openSUSE 11.2.
Comment 18 Martin Schmidkunz 2009-02-19 13:39:31 UTC
OK, feel free to add the [More drivers] button :-)
Comment 19 Johannes Meixner 2009-02-19 13:44:12 UTC
Then it is now my bug.
Comment 20 Gilbert Awad 2009-02-19 15:53:57 UTC
Hey, I'll second that, especially if it will allow/perfom a search for drivers appropriate for printers with similar model numbers, then for all those from the vendor. By the way, from what I've been reading this issue is affecting a lot of people with various kinds of models and makes of printer. Most are told to configure their printers using the CUPS http utility—which seems to work just fine—but is a little ironic as the driver they need is actually sitting right there "in the next room" so to speak. It's kind of like running into a family member who's recently decided he'll absolutely refuse to respond to anyone if they call him anything but "David" (like "Dave" for example), but you don't know that...you might start to wonder what the heck is wrong with the guy ;^)
Comment 21 Freek de Kruijf 2009-02-23 23:31:02 UTC
I am having this problem as well with a Canon PIXMA iP4300 printer.
However I went into the dialog to find a driver in a file.
First this dialog showed me the /tmp directory instead of the /usr/share/cups/model/ directory, which I consider to be a bug.
Second I arrived in directory /usr/share/cups/model/gutenprint/ and selected one of the two iP4300 ppd.gz files. However clicking OK did not configure/install this driver. In fact nothing happened.
I solved the problem by adding PIXMA to the model name "canon ip4300" which yast found. After that I got more than two drivers to select from.
Comment 22 Johannes Meixner 2009-02-24 09:57:39 UTC
Why don't you read the help text regarding the "Add Driver"
dialog before you post what you consider to be a bug?
-------------------------------------------------------------------
When a PPD file is not located in the /usr/share/cups/model/
directory, it is not available to set up a printer
configuration with it.
Therefore you can specify the full path of a PPD file
which is located elsewhere on your system to get it
installed in the /usr/share/cups/model/ directory.
-------------------------------------------------------------------

To try to add a PPD file from /usr/share/cups/model/
to /usr/share/cups/model/ is therefore useless and
starting the file browser in /usr/share/cups/model/
would be the most wrong starting point at all.
Comment 23 Freek de Kruijf 2009-02-24 20:25:58 UTC
Why don't you provide proper information on the window where I have been trying to find the proper driver/PDD file.
Well this is answering you with the same tone I percieve your answer to me in Comment #22. I will continue with a more neutral tone.
1. I would propose as an enhancement of this configuration module to search the PPD files for the names that apparently come back from the attached printer. In my case "Canon iP4300". To find the proper driver, I have to add "PIXMA" between Canon and iP4300. Also some text to explain what should be done to find a driver would be appropiate.
2. When clicking on "Add driver" it should be stated that this driver will be added to the list of drivers in /usr/share/cups/model/, it is not to be used to find the proper driver. Hiding that behind a Help button is in my view not the proper way.
3. It is unclear that one can add the same physical printer several times to configure different queues with different characteristics (plain paper or photopaper; single sided or double sided etc.).
4. When adding a printqueue, on the next dialog one can set the name of the queue. The textbox is named "Set name". It would be more clear if this is "Set queue name".
5. Having set the queue name, or rather left the name as it was, and continuing, it is not possible, I have not found how, to change the name of the queue. One has to delete the queue and configure a new queue. Is there a special reason why this name can't be changed anymore.
Comment 24 Johannes Meixner 2009-02-25 08:58:22 UTC
Regarding

1.
"search the PPD files for the names" is what you can already
do in the "Add printer" dialog by entering whatever you like
as driver search string (the one which is preset by the
autodetected model string) and click "Show matching drivers".
This is too often not understood by the users that they
can enter there whatever they like, compare
https://bugzilla.novell.com/show_bug.cgi?id=446186#c9
https://bugzilla.novell.com/show_bug.cgi?id=446432#c11
(see comment #4)

2.
"Add driver" just means to add a driver and not to find
an already available driver. For the latter, see item 1.

3.
This is already described in the help text.
There is no space on the dialog for descriptive texts.
The available space on a dialog is very limited.
See what I wrote in the "Squashed Content" section at
http://en.opensuse.org/YaST/Development/Printer_Enhancement
Furthermore the usability experts do not like longer texts
directly on the dialog - i.e. the dialog should be
self-explanatory only by its graphical design
(using the right widgets at the right place and so on)
without the need of verbose textual descriptions, compare
https://bugzilla.novell.com/show_bug.cgi?id=446432#c12

4.
Our usability experts decided that the word "queue" is a
too technical term which confuses our users so that
I must avoid this word whenever possible on the dialogs.
Usually "printer" is now used instead of "queue" which
replaces the right technical term by a meaningless word
because "printer" does not transport valuable information
to the user, he knows already that the stuff is about a "printer".
I think that "not transport valuable information to the user"
is the root cause why many users seem to like it because they think
they understand what is going on but actually they do not understand
anything, they just have the easygoing feeling of an innocent.
At least for me this is a miserable failure to tell the user
the right valuable information what the stuff actually is about.
Therefore I am still using "queue" in the help texts (see item 3.)
so that I do not leave the user totally uninformed about
how the underlying system works.
Compare the screenshots of my experimental module at
http://en.opensuse.org/YaST/Development/Printer_Enhancement

5.
See bug #462735.


Please do not use this bug report which is only about
"Misleading Add/Modify dialog in yast2-printer
 when it initially finds no driver"
as a general discussion forum about usability.
For usability discussions we have the mailing list
  opensuse-ux@opensuse.org
see http://en.opensuse.org/Communicate/Mailinglists
Comment 25 Johannes Meixner 2009-02-25 15:48:00 UTC
Fixed for next openSUSE version (11.2) and
submitted to head/factory/stable/whatever-it-is-called
-----------------------------------------------------------------
- Added a "More Drivers" functionality to basicadd.ycp and
  basicmodify.ycp (see Novell/Suse Bugzilla bnc#468046).
- Fixed the test whether there is a valid driver and a valid
  connection before a queue is set up in printer_proposal.ycp.
- 2.18.6
-----------------------------------------------------------------
Comment 27 Johannes Meixner 2009-09-29 12:44:18 UTC
Currently up-to-date yast2-printer-2.18.x packages
even for openSUSE 11.1 are available from
http://download.opensuse.org/repositories/YaST:/Head/openSUSE_11.1
for 32-bit Intel compatible (i586) and 64-bit AMD (x86_64).

Do not use FACTORY if your system is openSUSE 11.1
Use the matching packages for your particular system.

The packages are
* only for testing
* without any guarantee or warranty
* without any support
As an extreme example, this means that if your complete computer
center crashes because of these packages, it is only your problem.

On the other hand this does not mean that those packages are
known to be terrible broken but they are not thoroughly
tested so that any unexpected issue can happen.

The version number 2.18.x is higher than the version
of the original package in openSUSE 11.1
so that you may have to remove an installed
yast2-printer-2.18.x manually using (as root)

rpm -e --nodeps yast2-printer

before you could re-install the original package
for openSUSE 11.1.