Ligne monomode pour toutes les fenêtres

9

Est-il possible d'avoir une seule ligne de mode (parfois appelée "barre d'état") pour toutes les fenêtres?

Je voudrais que cette ligne monomode affiche des informations sur le tampon actuellement sélectionné.

rgtk
la source
2
Peut-être pourriez-vous emprunter le concept dans le fil joint et créer une fenêtre dédiée au bas de chaque cadre, qui n'affiche qu'une ligne de mode personnalisée? emacs.stackexchange.com/questions/7697/…
lawlist
Vous voulez sûrement parler de fenêtres, pas de cadres?
abo-abo
Bonne prise. Oui, je veux dire des fenêtres.
rgtk

Réponses:

8

Je n'ai pas de solution pour une seule modeline, mais voici deux solutions alternatives possibles:

1. Rendez uniquement la ligne de mode dans la fenêtre active:

Si vous utilisez Powerline, vous pouvez envelopper votre format de ligne de mode dans:

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

puis changez le mode-line-inactivevisage pour qu'il se mélange avec votre arrière-plan mais sépare toujours les tampons avec:

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

Cela ressemblera à ceci:

entrez la description de l'image ici

2. Utilisez le frame-title-format

Votre frame-title-formatdétermine ce qui est affiché sur le dessus de votre cadre lors de l'exécution dans une interface graphique.

Définissez le frame-title-format' like you would yourformat de ligne de mode et définissez votre format de ligne de mode sur quelque chose de vierge.

Jordon Biondo
la source
4

J'ai finalement réussi cela en piratant emacs. Démo

Vous pouvez obtenir le code source sur https://github.com/amosbird/emacs/tree/onemodeline . Fondamentalement, il utilise la ligne d'en-tête de la mini-fenêtre pour rendre la modélisation actuelle du tampon.

Amos
la source
Est-ce que cela fonctionne / fonctionne toujours avec emacs 26.1?
rien333
@ rien333 Ça devrait. Mais cette méthode est en effet très fragile. Il existe toujours une logique codée en dur qui nécessite une mini-fenêtre sur une seule ligne. Mais je ne pouvais pas tous les trouver.
Amos