Ajouter des pièces jointes depuis le presse papier

Parfois il est pratique de juste copier une image, et de la coller dans ses mails, comme pour faire un screenshot rapide.

On peut rajouter cette fonctionnalité à emacs, en utilisant le programme xclip sous linux.

La fonction mail-add-attachment-clipboard peut être rajoutée à la section :config de (use-package mu4e), elle est interactive et prend comme paramètre un nom de fichier qui sera attaché à l’e-mail en tant que pièce jointe. Le mimetype sera deviné en fonction de ce nom.

(defun mail-add-attachment-clipboard (filename)
    (interactive "sNom du fichier: ")
    (let* ((tmpdir (make-temp-file "mu4e-attachment-" 1))
           (tmpfile (file-name-concat tmpdir filename))
           (mime (mm-default-file-encoding filename))
           (command (concat
                     "xclip -o -selection clipboard -t "
                     mime
                     " > "
                     (shell-quote-argument tmpfile))))
      (if (shell-command command)
          (mail-add-attachment tmpfile))))