Baris mode tunggal untuk semua jendela

9

Apakah mungkin hanya memiliki satu baris mode (kadang-kadang disebut "statusbar") untuk semua jendela?

Saya ingin membuat satu baris mode ini menampilkan informasi tentang buffer yang saat ini dipilih.

rgtk
sumber
2
Mungkin Anda bisa meminjam konsep di utas terlampir dan membuat jendela khusus di bagian bawah setiap bingkai, yang hanya menunjukkan mode-line khusus? emacs.stackexchange.com/questions/7697/…
lawlist
Tentunya maksud Anda windows, bukan bingkai?
abo-abo
Tangkapan yang bagus. Ya, maksud saya windows.
rgtk

Jawaban:

8

Saya tidak punya solusi untuk modeline tunggal, tetapi berikut adalah dua solusi alternatif yang mungkin:

1. Hanya render baris mode di jendela aktif:

Jika Anda menggunakan kabel listrik, Anda dapat membungkus mode-line-format dalam:

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

lalu ubah mode-line-inactivewajah jadi padukan dengan latar belakang Anda tetapi tetap pisahkan buffer dengan:

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

Ini akan terlihat seperti ini:

masukkan deskripsi gambar di sini

2. Gunakan frame-title-format

Anda frame-title-formatmenentukan apa yang ditampilkan di bagian atas bingkai Anda saat menjalankan dalam gui.

Atur frame-title-format' like you would yourmode-line-format` dan mereka mengatur format-mode-line Anda menjadi sesuatu yang kosong.

Jordon Biondo
sumber
4

Saya akhirnya mencapai ini dengan meretas emacs. Demo

Anda bisa mendapatkan kode sumber dari https://github.com/amosbird/emacs/tree/onemodeline . Pada dasarnya ia menggunakan baris header mini-window untuk membuat modeline buffer saat ini.

Amos
sumber
Apakah ini masih berfungsi / bekerja dengan emacs 26.1?
rien333
@ rien333 Seharusnya. Tetapi metode ini memang sangat rapuh. Masih ada logika hardcoded yang mengharuskan jendela mini menjadi satu baris. Namun saya tidak dapat menemukan semuanya.
Amos