Moja modelka jest zagracona. Czy mogę ustawić wyświetlanie obrazów zamiast nazw trybów?
Mógłbym użyć Emoji unicode (np. 🐍 dla Pythona lub 🐓 dla Coq), ale niektóre maszyny, na których używam mojej konfiguracji Emacs, nie mają wstępnie zainstalowanych odpowiednich czcionek (idealnie, chciałbym również użyć tej techniki w tryb, który piszę, więc nie mogę oczekiwać, że użytkownicy będą mieli odpowiednią konfigurację czcionek).
Próbowałem dodać :image
właściwość display do zapalniczki modeline w trybie małej zabawki, ale nic nie pojawiło się w modeline:
(define-minor-mode my/test-mode
"Test mode."
:lighter (propertize " 🐓" 'display '(image :type imagemagick
:file "/home/clement/.emacs.d/rooster.png")))
mode-line
images
text-properties
Łaskawy
źródło
źródło
Odpowiedzi:
Linia trybu jest renderowana z listy segmentów, z których każdy ma własne reguły specjalne. Aby uzyskać szczegółowe informacje, zobacz Dane linii trybu . Sekcja symboli zawiera kluczową wskazówkę, aby Twój kod działał:
Podejrzewam, że tryb nyan robi to w mniej niż idealny sposób , więc oto mój minimalny przykład:
Powodem, dla którego używam listy spacji i obrazu jest to, że konwencja polega na zapalaniu z miejscem do oddzielania go od poprzednich.
źródło
emacs -Q
? Działa świetnie z włączoną linią trybu inteligentnego, ale nie mogę sprawić, aby działał, gdy zaczynam od gołego Emacsa.:propertize
wartości domyślnejmode-line-format
.Dobre pytanie.
Możesz spróbować użyć czegoś takiego jako zapalniczki:,
(concat " " (propertize " " 'display (create-image img-file)))
gdzieimg-file
jest nazwa pliku obrazu. (Pierwszym znakiem spacji jest tylko oddzielenie tej zapalniczki od poprzedniej.)Właśnie próbowałem, używając tego kodu, ale to nie działało dla mnie. Możesz spróbować trochę z tym pogrzebać. Nie wiem, czy to możliwe.
Zapalniczka pokazuje się po prostu jako zwykły znak kosmiczny -
display
właściwość nie wydaje się być szanowana.Jeśli nie otrzymasz dobrej odpowiedzi na to pytanie, rozważ złożenie prośby o ulepszenie Emacsa, używając
M-x report-emacs-bug
.Jedną rzeczą, którą na pewno możesz zrobić, to użyć jednego lub dwóch znaków Unicode w ciągu wiersza trybu. I możesz używać znaków, które są w rzeczywistości grafiką.
źródło