Minha modelo está desordenada. Posso exibir imagens em vez de nomes de modo?
Eu poderia usar Emoji unicode (como 🐍 para Python ou 🐓 para Coq), mas algumas máquinas nas quais eu uso minha configuração do Emacs não têm as fontes corretas pré-instaladas (idealmente, eu também gostaria de reutilizar essa técnica em um modo que estou escrevendo, por isso não posso esperar que os usuários tenham a configuração de fonte correta).
Tentei adicionar uma :image
propriedade display ao model isqueiro de um modo menor de brinquedo, mas nada apareceu na 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
fonte
fonte
Respostas:
A linha de modo é renderizada a partir de uma lista de segmentos, cada um dos quais vem com suas próprias regras especiais. Consulte Dados da linha de modo para obter detalhes. A seção de símbolos contém uma dica crucial para fazer seu código funcionar:
Eu suspeito que o modo nyan está fazendo isso de maneira menos do que ideal , então aqui está o meu exemplo mínimo:
A razão pela qual eu uso uma lista de um espaço e uma imagem é porque é conveniente iniciar um isqueiro com um espaço para separá-lo dos anteriores.
fonte
emacs -Q
? Funciona muito bem com a linha de modo inteligente ativada, mas não posso fazê-lo funcionar quando começo de um Emacs simples.:propertize
do padrãomode-line-format
.Boa pergunta.
Você pode tentar usar algo como o isqueiro:,
(concat " " (propertize " " 'display (create-image img-file)))
ondeimg-file
está o nome do seu arquivo de imagem. (O primeiro caractere de espaço é apenas para separar esse isqueiro do anterior.)Bem, eu apenas tentei usar esse código, mas não funcionou para mim. Você pode tentar brincar um pouco mais com isso. Não sei se é possível.
O isqueiro apenas aparece como um caractere de espaço comum - a
display
propriedade não parece ser respeitada.Se você não obtiver uma boa resposta para essa pergunta, considere arquivar uma solicitação de aprimoramento do Emacs usando
M-x report-emacs-bug
.Uma coisa que você certamente pode fazer é usar um ou dois caracteres Unicode na string de linha de modo. E você pode usar caracteres que são, de fato, gráficos.
fonte