The echo area is the line at the bottom of Emacs below the mode line:
~ ~
| |
+-----------------------+
|-U:--- mode-line |
+-----------------------+
| M-x echo-area |
+-----------------------+
Now the mode line is highly customizable while the echo area is more rigid (and unused a lot of the time). The question is pretty simple: is it possible to hide the echo area during inactivity and redisplay it once it needs your attention:
~ ~ ~ ~
| | | |
| | +-----------------------+
| | |-U:--- mode-line |
+-----------------------+ +-----------------------+
|-U:--- mode-line | | M-x echo-area |
+-----------------------+ +-----------------------+
Inactive Active
This is similar to the way Google Chrome displays URLs when you hover your mose over a link and the Firefox addon Pentadactyl where the command-line is hidden by default.
You could get a minibuffer-less frame by using this code
that I took and modified from here on SO.
Though it can create minibuffer-less frames, it appears impossible to get rid of minibuffer and make it appear only when needed as you describe with the Google Chrome's status bar example.
Technically, it's not possible to hide the echo area. However, I have an idea might might give the same appearance, under the assumption that you work with Emacs in a full-screen environment. In that case, a tool could resize the emacs window (the "frame" in emacs-speak) so that it would either fill the display or extend beyond the bottom of the display, depending on if the echo area should be visible or not.
Unfortunately, I don't have the time myself to implement this, so I leave it to somebody else to do this and to claim the bounty.
The first challenge is to find a good spot to make the resizing, one such place could be the
post-command-hook
. Other places might beminibuffer-setup-hook
andminibuffer-setup-hook
The second challenge is to decide if the echo area should be visible or not, I think that you can usecurrent-message
to check if a message is being displayed.One thing you could do is split the minibuffer into its own frame, then hide and show it as needed.
You will lose echo area messages, but I gather you already don't care about that.
EDIT: the above was untested, and incomplete. This appears to work here:
This is NOT the answer to what you are asking, it will not give you the mini-buffer, but it will reclaim a bit of screen real estate
And for completeness sake, the hallmark of
luddite-mode
Of course, it is desirable to start out with this:
I will eagerly be awaiting the answer to this question and incorporate it in
luddite-mode
As far as I know it's not possible to hide the echo area, and I would not agree with you that it is unused a lot of time. From buffer switching over M-x commands to minibuffer output, a lot of different stuff goes on in the echo area.
I can understand that on small displays, e.g., on netbooks etc. it is desirable to save screen estate. But I would argue that the echo area is used much more when you edit a file than the address bar of a web browser is used when you look at a web page. It's an integral part of Emacs.