The content of the
mode-line are stored in the variable
Emacs also supports a header line whose content is steered by the variable
In principle you can use
(setq header-line-format mode-line-format)
(setq-default mode-line-format nil)
to make the format of the
header-line be equal to that of your current mode line and remove the
Edit: If you want to use this setting permanently put
(setq-default header-line-format mode-line-format)
in your init file (thanks to nispio for that suggestion).
Since you also want the
minibuffer to appear at the top, I will re-link @Malabarba's answer to the questionHow to display the content of minibuffer in the middle of the emacs frame? which can be adapted to show the minibuffer at the top. Also, consider @phils answer to the question Is it possible to move the emacs minibuffer to the top of the screen? on the "old"
emacs tag on stackoverflow.
As far as I know, there is no way to directly put the minibuffer at the top. The only approach (which is also used by the above answers) is to use a second frame.