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."