Mi línea de modelo está abarrotada. ¿Puedo hacer que muestre imágenes en lugar de nombres de modo?
Podría usar Emoji unicode (como 🐍 para Python o 🐓 para Coq), pero algunas máquinas en las que uso mi configuración de Emacs no tienen las fuentes correctas preinstaladas (idealmente, también me gustaría reutilizar esta técnica en un modo que estoy escribiendo, por lo que no puedo esperar que los usuarios tengan la configuración de fuente correcta).
Intenté agregar una :image
propiedad de visualización al encendedor modeline de un modo menor de juguete, pero no apareció nada en el 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
Clemente
fuente
fuente
Respuestas:
La línea de modo se representa a partir de una lista de segmentos, cada uno de los cuales viene con sus propias reglas especiales. Ver Datos de línea de modo para los detalles. La sección de símbolos contiene una pista crucial para que su código funcione:
Sospecho que nyan-mode lo está haciendo de una manera menos que ideal , así que aquí está mi ejemplo mínimo:
La razón por la que uso una lista de un espacio y una imagen es porque es convencional comenzar un encendedor con un espacio para separarlo de los anteriores.
fuente
emacs -Q
? Funciona muy bien con la línea de modo inteligente habilitada, pero no puedo hacer que funcione cuando comienzo desde un Emacs desnudo.:propertize
del predeterminadomode-line-format
.Buena pregunta.
Puede intentar usar algo como esto como el encendedor:,
(concat " " (propertize " " 'display (create-image img-file)))
dondeimg-file
está el nombre de su archivo de imagen. (El primer carácter espacial es solo para separar este encendedor del anterior).Bueno, acabo de intentarlo, usando este código, pero no funcionó para mí. Puede intentar jugar un poco más con él. No sé si es posible.
El encendedor solo se muestra como un personaje espacial ordinario: la
display
propiedad no parece ser respetada.Si no obtiene una buena respuesta a esta pregunta, considere presentar una solicitud de mejora de Emacs, utilizando
M-x report-emacs-bug
.Una cosa que ciertamente puede hacer es usar uno o dos caracteres Unicode en la cadena de línea de modo. Y puede usar caracteres que son, en efecto, gráficos.
fuente