Subject: 23.1; Mode line is not ergonomic and not easily customizable

From: Eli Zaretskii <[email-masked]>
Date: Fri, 30 Oct 2009 17:09:52 +0200

Please make the mode-line display more ergonomic and more easily
customizable.

I frequently find myself in a situation where the information that's
important to me is pushed beyond the right edge of the mode line, and
is thus invisible.  Annoyingly, a large part of the real estate of the
mode line is taken by information that is much less important, like
the percentage of the file before the window start and the list of
minor modes in effect.  The latter, for example, is quite static in
any given buffer, so once you saw it for the first time, there's no
need to continue showing it in such a central place.  However, even in
a C buffer, the mode shown is "C/l Abbrev", which is quite long.  And
when I read mail, I see something like "RMAIL XXXX/YYYY answered,
deleted"; when replying to mail it's "Mail Fly Abbrev Fill", etc.
These are very long strings that I don't need to see all the time,
because they almost never change.  But they steal too much precious
space.

By contrast, dynamic information such as the current time, the system
load, the battery condition, the mail indicator, the current function
(when in which-func-mode), etc. -- these are banished off the edge of
the mode line, and cannot be consulted.  This effectively makes these
features unavailable, unless one is willing to make her frames
unreasonably wide or even full-screen.

I consider this a bad misfeature.  What's more, modifying what's in
the mode line is not an easy task (unless I'm missing something): it
boils down to reading bindings.el and manually setting various parts
of standard-mode-line-* variables to remove or rearrange what is
shown.

In GNU Emacs 23.1.1 (i386-mingw-nt5.1.2600)
 of 2009-07-31 on HOME-C4E4A596F7
Windowing system distributor `Microsoft Corp.', version 5.1.2600
configured using `configure --with-gcc (3.4)'

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: ENU
  value of $XMODIFIERS: nil
  locale-coding-system: cp1255
  default-enable-multibyte-characters: t

Major mode: RMAIL

Minor modes in effect:
  shell-dirtrack-mode: t
  desktop-save-mode: t
  show-paren-mode: t
  display-time-mode: t
  tooltip-mode: t
  tool-bar-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  global-auto-composition-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  temp-buffer-resize-mode: t
  line-number-mode: t

Recent input:
<C-down> <left> . <down> <left> <left> , SPC u n l 
e s s SPC o n e SPC i s SPC w i l l i n g SPC t o SPC 
m a k e SPC h e r SPC f r a m e s SPC u n r e a s o 
n a b l y SPC w i d e SPC o r e SPC <backspace> <backspace> 
SPC e v e n SPC f u l l - s c r e e n M-q <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<right> <C-home> C-c C-s <help-echo> <help-echo> <help-echo> 
<help-echo> <switch-frame> <help-echo> <help-echo> 
<help-echo> M-1 g <up> <up> <return> d n d SPC SPC 
d SPC SPC d C-x C-s M-n <help-echo> <help-echo> <help-echo> 
<help-echo> <switch-frame> <switch-frame> <switch-frame> 
<switch-frame> <switch-frame> <help-echo> <switch-frame> 
<switch-frame> <switch-frame> <switch-frame> <help-echo> 
<help-echo> <help-echo> <help-echo> <switch-frame> 
<switch-frame> <switch-frame> <help-echo> <switch-frame> 
<help-echo> <switch-frame> M-1 g <up> <return> n d 
d d t SPC t SPC d SPC d SPC SPC d d SPC SPC d d SPC 
SPC M-z M-z SPC SPC SPC SPC SPC SPC SPC <M-home> C-r 
s o u r c e f <M-end> <next> <next> <prior> <next> 
<next> <next> <next> <next> <next> <M-home> C-x C-x 
M-n M-p <M-end> d C-z C-z C-z C-z C-z C-z C-z C-z C-z 
C-x l C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z 
C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z 
C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z 
C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z 
C-z C-z C-z C-z n d d d d p M-x r e p o r t - e m a 
<tab> <return>

Recent messages:
Getting mail from d:/usr/eli/data/mail.new...
Counting new messages...done (16)
Saving file d:/usr/eli/rmail/INBOX...
Wrote d:/usr/eli/rmail/INBOX
Computing summary lines...done
16 new messages read
call-interactively: End of buffer [2 times]
Mark saved where search started
Page has 89 lines (9 + 80)
No following nondeleted message