Single Mode Line für alle Fenster

9

Ist es möglich, für alle Fenster nur eine Moduszeile (manchmal als "Statusleiste" bezeichnet) zu haben?

Ich möchte, dass in dieser Einzelmoduszeile Informationen zum aktuell ausgewählten Puffer angezeigt werden.

rgtk
quelle
2
Vielleicht könnten Sie das Konzept im angehängten Thread ausleihen und am unteren Rand jedes Frames ein eigenes Fenster erstellen, in dem nur eine benutzerdefinierte Moduszeile angezeigt wird? emacs.stackexchange.com/questions/7697/…
Lawlist
Du meinst doch Fenster, keine Rahmen?
Abo-Abo
Guter Fang. Ja, ich meine Fenster.
Rgtk

Antworten:

8

Ich habe keine Lösung für eine einzelne Modeline, aber hier sind zwei mögliche alternative Lösungen:

1. Rendern Sie die Moduszeile nur im aktiven Fenster:

Wenn Sie Powerline verwenden, können Sie Ihr Mode-Line-Format wie folgt einschließen:

((:eval (when (powerline-selected-window-active) ...)))

Ändern Sie dann das mode-line-inactiveGesicht so, dass es mit Ihrem Hintergrund verschmilzt, aber die Puffer trotzdem trennt mit:

(set-face-attribute 'mode-line-inactive nil
                    :underline t
                    :background (face-background 'default))

Das wird so aussehen:

Geben Sie hier die Bildbeschreibung ein

2. Verwenden Sie die frame-title-format

Sie frame-title-formatbestimmen, was oben in Ihrem Frame angezeigt wird, wenn Sie in einer GUI laufen.

Stellen Sie den frame-title-format' like you would yourModus-line-format` und sie stellen Sie Ihren Modus-line-Format auf etwas blank-ish.

Jordon Biondo
quelle
4

Ich habe dies endlich erreicht, indem ich Emacs gehackt habe. Demo

Den Quellcode erhalten Sie unter https://github.com/amosbird/emacs/tree/onemodeline . Grundsätzlich wird die Kopfzeile des Mini-Fensters verwendet, um die Modeline des aktuellen Puffers zu rendern.

Amos
quelle
Funktioniert das noch mit Emacs 26.1?
Rien333
@ rien333 Es sollte. Aber diese Methode ist in der Tat sehr fragil. Es gibt immer noch fest codierte Logik, die erfordert, dass das Mini-Fenster eine Zeile ist. Ich konnte sie jedoch nicht alle finden.
Amos