Linha de modo único para todas as janelas

9

É possível ter apenas uma linha de modo (às vezes chamada de "barra de status") para todas as janelas?

Gostaria de fazer com que essa linha de modo único mostre informações sobre o buffer atualmente selecionado.

rgtk
fonte
2
Talvez você possa emprestar o conceito no encadeamento anexado e criar uma janela dedicada na parte inferior de cada quadro, o que mostra apenas uma linha de modo personalizada? emacs.stackexchange.com/questions/7697/…
lawlist
Certamente você quer dizer janelas, não quadros?
abo-abo 25/02
Boa pegada. Sim, quero dizer janelas.
Rgtk

Respostas:

8

Não tenho uma solução para uma única modelo, mas aqui estão duas soluções alternativas possíveis:

1. Renderize apenas a linha de modo na janela ativa:

Se você usa o powerline, pode agrupar o formato da linha de modo em:

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

então mude a mode-line-inactiveface para combinar com o fundo, mas ainda assim separa os buffers com:

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

Isso ficará assim:

insira a descrição da imagem aqui

2. Use o frame-title-format

Seu frame-title-formatdetermina o que é exibido na parte superior do seu quadro ao executar em uma GUI.

Defina o formato frame-title-format' like you would yourda linha de modo e eles definem o formato da linha de modo para algo em branco.

Jordon Biondo
fonte
4

Finalmente consegui isso invadindo o emacs. Demo

Você pode obter o código-fonte em https://github.com/amosbird/emacs/tree/onemodeline . Basicamente, ele usa a linha de cabeçalho da mini-janela para renderizar a modelagem do buffer atual.

Amos
fonte
Isso ainda funciona / funciona com o emacs 26.1?
rien333
@ rien333 Deveria. Mas esse método é realmente muito frágil. Ainda há uma lógica codificada que requer uma mini janela sendo uma linha. No entanto, não consegui encontrá-los todos.
Amos