Я знаю, что могу настроить команду печати в Mutt через .muttrc
, например:
set print=ask-yes
set print_command="..."
Но какую команду печати я должен использовать для довольно печати?
Ну, a2ps
вывод кажется немного спартанским, даже с -=mail
ярлыком. Он не поддерживает UTF8 . Существует paps
описание, которое называется « конвертер UTF-8 в PostScript с использованием Pango » и в настоящее время не включает поддержку полей, макета электронной почты или чего-то в этом роде.
mp
: хороший заголовок по умолчанию. Опять нет поддержки UTF8. Поля по умолчанию смехотворно малы - если указать более широкие поля, основной текст печатается за нижним колонтитулом.
enscript
: -G
для модных заголовков страниц действительно модно. Нет поддержки UTF8 .
Что вы используете в 21-м веке для печати ваших писем от Матта?
(Он должен поддерживать UTF8, вывод DIN A4 в формате PS и / или PDF)
print_command
. Таким образом, недостаточно протестировать команды print_comm с помощью команды|
(pipe) в Mutt.Ответы:
Также есть Muttprint . Это делает поддержку UTF-8 и его выход выглядит прилично по умолчанию. Muttprint использует LaTeX и предоставляет хуки для настройки.
Поскольку я печатаю почту из разных сред, я не могу использовать принтер по умолчанию. Таким образом, я настроил (через
~/.muttrc
) использование средства просмотра PDF, где я могу динамически выбирать принтер:Mktemp использует
/tmp
по умолчанию. Для использования пользовательского каталога кэша:Кстати, вы можете установить
print_decode
внутри muttrc конфигурацию, если print_command способен самостоятельно декодировать MIME, кодировки и т. Д. По умолчанию установлено,yes
что это правильная настройка для таких команд, какmuttprint
,enscript
т. Д.Относительно UTF-8 проблем a2ps, enscript и mp можно просто сделать вывод, что их следует считать устаревшими. Действительно, если смотреть на страницы проекта, они, похоже, не поддерживаются (например, последняя новость на странице mp относится к 2002 году и упоминает список рассылки, расположенный в Sun).
источник
/tmp/$USER.ps
это очень предсказуемо для других пользователей. Используйтеmktemp
создание временных файлов! (См. Мой ответ )./tmp/$USER.ps
это глупо. Я обновил свой ответ./tmp/*
удаляется при перезагрузке.mktemp
смысл существования - избегать конфликтов имен файлов. Это может потерпеть неудачу по другим причинам, хотя. Я изменил команду так, чтобы muttprint выполнялся только в том случае, если mktemp был успешным (я подозреваю, что muttprint по умолчанию будет использовать другое имя файла, когдаf
оно пустое). Таким образом, теперь у вас останется только временный файл, если evince или rm потерпят неудачу. Я считаю это маловероятным - и если они это сделают, я считаю, что проблемный файл сохранил помощь для отладки проблемы. Конечно,/tmp
автоматически убирается. Но$HOME
это выгодно для чувствительных документов, когда они зашифрованы, но/tmp
это не так.mktemp -p $HOME/.cache/mutt-XXXXXXXXXX
в этом случае, ноmktemp
это правильный инструмент.Вы также можете использовать paps , который читает файл в кодировке UTF-8 и генерирует файл в формате PostScript. Рендеринг выполняется путем создания контурных кривых через бэкэнд pango ft2.
источник
Более безопасный и используя меньше бумаги, создайте
wrapper
:Есть моя команда печати для
.muttrc
:И есть содержание
"$HOME/bin/print_preview-wrapper.sh"
Это будет
gv
потому что мне это нравится, но вы можете запустить любой другой инструмент.источник
read tmpdir < <(mktemp -d /tmp/print_preview-$USER-XXXXXXXX)
преимущество передtmpdir=$(mktemp -d /tmp/print_preview-$USER-XXXXXXXX)
?read host foo foo ip < <(host google.com); echo $ip $host
Вот простой рецепт, который я использую в разных UNIX:
где
••My_printer••
имя принтера.источник