Though Mandrake includes many improvements over previous distributions,
one user interface concern is still there: lack of stderr-like feedback
for X users.

Let me give some examples.

When a user under X runs a program from a broken window-manager menu
(still happens), the window-manager outputs an error message onto his
stderr, which is currently silently redirected by /etc/X11/xdm/Xsession to
the user's ~/.xsession-errors. Newbies don't know that, so they just see
that they click and nothing seems to happen.

When the user clicks on a terminal-based program in his file manager, the
program outputs a message on stderr/stdout. The file manager could offer a
"open in a terminal window" option, but not all do this. Same
problem. User wonders if something is broken, since nothing appears.

Suppose the user uses a floppy which happens to have bad sectors (am I
cursed ? This often happens to me, though I seldom use floppies). The
kernel will complain via syslog, which redirects to several places
(currently /dev/tty12 for example, but only if the user has chosen a
rather high security level). Again, the user has no clue why he cannot
retrieve his file.


Suggestion: bring xconsole back, with a suitable syslog/Xsession
configuration.
 
Currently /etc/X11/xdm/Xsetup_0 opens a console only if kdmdesktop isn't
available, which actually may be considered a bit illogical, unless you
considered that xconsole is good only for those who prefer old xdm instead
of kdm/gdm ?

Please do not include winbug-software-style read-then-click-to-close
dialog! xconsole is better: you can scroll back later and copy/paste, two
very important things that make those winbug-style dialogs lack.


A line like
kern.*          /dev/console
in /etc/syslog.conf, and a modification to /etc/X11/xdm/Xsession like
this should do the trick:

--- Xsession    Fri May 26 20:38:20 2000
+++ Xsession_modified   Fri May 26 20:51:36 2000
@@ -4,7 +4,7 @@
 
 # redirect errors to a file in user's home directory if we can
 
-for errfile in "$HOME/.xsession-errors" "${TMPDIR-/tmp}/xses-$USER" "/tmp/xses-$USER"
+for errfile in /dev/console "$HOME/.xsession-errors" "${TMPDIR-/tmp}/xses-$USER" 
+"/tmp/xses-$USER"
 do
     if ( cp /dev/null "$errfile" 2> /dev/null )
     then

Actually the best would be to log both into /dev/console for instant view,
and ~/.xsession-errors for reference log.

I've tried things like exec 2>&1 | tee "$errfile" >/dev/console 
but it didn't work and I couln't figure out an elegant solution.

(We could use 
mkfifo /tmp/somefifo
tee </tmp/somefifo "$errfile" >/dev/console
exec > /tmp/somefifo 2>&1
but this is ugly, there must be a better solution.)

What is your opinion ?


Also, a last thing: since I sometime switch to console mode, especially to
do things as root, or cd burning, I dislike that logging to /dev/console
clutters the text screen. Could a subtle /dev/(tty*|console) line do the
following trick ?
-syslog goes to xconsole if present
-syslog goes to /dev/tty11
/but/ syslog doesn't clutter other ttys.
I couldn't figure out how to do this...


--
Stéphane Gourichon - Laboratoire d'Informatique de Paris 6 - Équipe AnimatLab
"Bonjour, je suis un virus de signature de mail. Copiez moi dans votre
fichier signature pour que je me propage désormais avec vos mails. Merci."

Reply via email to