Eu sei que posso configurar um comando de impressão no Mutt via .muttrc
, por exemplo:
set print=ask-yes
set print_command="..."
Mas qual comando de impressão devo usar para uma impressão bonita ?
Bem, a a2ps
produção parece um pouco espartana, mesmo com o -=mail
atalho. Não suporta UTF8 . Existe o paps
que é descrito como ' Conversor UTF-8 para PostScript usando Pango ' e atualmente não inclui suporte para margens, layout de e-mail ou algo parecido.
mp
: bom cabeçalho padrão. Novamente, não há suporte para UTF8. As margens padrão são ridiculamente pequenas - se você especificar margens maiores, o texto do corpo será impresso atrás do rodapé.
enscript
: -G
para cabeçalhos de página sofisticados é realmente sofisticado. Sem suporte UTF8 .
O que você usa no século 21 para imprimir seus e-mails do Mutt?
(Ele deve suportar saída UTF8, DIN A4 como PS e / ou PDF)
print_command
. Portanto, não é suficiente testar os comandos print_commands através do|
comando (pipe) no mutt.Respostas:
Há também Muttprint . Ele faz suporte UTF-8 e sua saída parece decente por padrão. O Muttprint usa o LaTeX e fornece ganchos para personalização.
Como estou imprimindo e-mails de diferentes ambientes, não posso usar uma impressora padrão. Assim, eu o configurei (via
~/.muttrc
) para usar um visualizador de PDF, onde posso selecionar dinamicamente uma impressora:O Mktemp usa
/tmp
, por padrão. Para usar um diretório de cache personalizado:Aliás, você pode definir
print_decode
dentro do muttrc para configurar se o comando print_ é capaz de decodificar MIME, codificações etc. por conta própria. Por padrão, ele é definido comoyes
que é a configuração certa para comandos comomuttprint
,enscript
etc.Com relação às questões UTF-8 de a2ps, enscript e mp, podemos concluir que elas devem ser consideradas obsoletas. De fato, olhando as páginas do projeto, elas não parecem ser mantidas (por exemplo, a última notícia da página mp é de 2002 e menciona uma lista de endereços localizada na Sun).
fonte
/tmp/$USER.ps
é altamente previsível por outros usuários. Usemktemp
criar arquivos temporários! (Veja minha resposta )./tmp/$USER.ps
é bobagem. Eu atualizei minha resposta./tmp/*
é excluído na reinicialização.mktemp
A razão de ser de F.Hauri, é evitar colisões de nomes de arquivos. Pode falhar por outros motivos, no entanto. Alterei o comando para que o muttprint seja executado apenas se o mktemp for bem-sucedido (suspeito que o muttprint tenha como padrão outro nome de arquivo quandof
estiver vazio). Portanto, agora você só acaba com um arquivo temporário restante se evince ou rm falharem. Considero isso improvável - e, se considerarem, considere manter o arquivo problemático uma ajuda para depurar o problema. Claro,/tmp
é limpo automaticamente. Mas$HOME
é vantajoso para documentos confidenciais quando ele é criptografado, mas/tmp
não é.mktemp -p $HOME/.cache/mutt-XXXXXXXXXX
neste caso, masmktemp
é a ferramenta correta.Você também pode considerar usar paps , que lê um arquivo codificado em UTF-8 e gera uma renderização em linguagem PostScript do arquivo. A renderização é feita através da criação de curvas de estrutura de tópicos através do backend do pango ft2.
fonte
Mais segura e utilizando menos papel, crie um
wrapper
:Existe o meu comando de impressão para
.muttrc
:E existe o conteúdo de
"$HOME/bin/print_preview-wrapper.sh"
Isso vai
gv
porque eu gosto, mas você pode executar qualquer outra ferramenta.fonte
read tmpdir < <(mktemp -d /tmp/print_preview-$USER-XXXXXXXX)
uma vantagem sobretmpdir=$(mktemp -d /tmp/print_preview-$USER-XXXXXXXX)
?read host foo foo ip < <(host google.com); echo $ip $host
Aqui está uma receita simples que eu uso em diferentes UNIXes:
onde
••My_printer••
é o nome da impressora.fonte