Want to take your software engineering career to the next level? Join the mailing list for career tips & advice Click here


Drag and drop images to Emacs org-mode

Subscribe to updates I use org-download

Statistics on org-download

Number of watchers on Github 206
Number of open issues 9
Average time to close an issue about 2 months
Main language Emacs Lisp
Average time to merge a PR about 21 hours
Open pull requests 2+
Closed pull requests 7+
Last commit over 2 years ago
Repo Created over 6 years ago
Repo Last Updated over 2 years ago
Size 68 KB
Organization / Authorabo-abo
Page Updated
Do you use org-download? Leave a review!
View open issues (9)
View org-download activity
View on github
Fresh, new opensource launches 🚀🚀🚀
Software engineers: It's time to get promoted. Starting NOW! Subscribe to my mailing list and I will equip you with tools, tips and actionable advice to grow in your career.
Evaluating org-download for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)

This extension facilitates moving images from point A to point B.

Point A (the source) can be:

  1. An image inside your browser that you can drag to Emacs.
  2. An image on your file system that you can drag to Emacs.
  3. A local or remote image address in kill-ring. Use the org-download-yank command for this. Remember that you can use 0 w in dired to get an address.
  4. A screenshot taken using gnome-screenshot, scrot, gm, xclip (on Linux), screencapture (on OS X) or , imagemagick/convert (on Windows). Use the org-download-screenshot command for this. Customize the backend with org-download-screenshot-method.

Point B (the target) is an Emacs org-mode buffer where the inline link will be inserted. Several customization options will determine where exactly on the file system the file will be stored.

They are: org-download-method:

  1. 'attach => use org-mode attachment machinery
  2. 'directory => construct the directory in two stages:

    1. first part of the folder name is:

      • either . (current folder)
      • or org-download-image-dir (if it's not nil).

      org-download-image-dir becomes buffer-local when set, so each file can customize this value, e.g with:

          -*- mode: Org; org-download-image-dir: "~/Pictures/foo"; -*-

      To set it for all files at once, use this:

          (setq-default org-download-image-dir "~/Pictures/foo")
    2. second part is:

      • org-download-heading-lvl is nil => ""
      • org-download-heading-lvl is n => the name of current heading with level n.

      Level count starts with 0, i.e. * is 0, ** is 1, *** is 2 etc. org-download-heading-lvl becomes buffer-local when set, so each file can customize this value, e.g with:

          -*- mode: Org; org-download-heading-lvl: nil; -*-

org-download-timestamp: optionally add a timestamp to the file name.

Customize org-download-backend to choose between url-retrieve (the default) or wget or curl.

org-download open issues Ask a question     (View All Issues)
  • almost 4 years org-download on a remote file via tramp/ssh.. a solution?
  • about 4 years handling non-image files and urls
  • about 5 years dnd does not work in OS X
org-download open pull requests (View All Pulls)
  • org-download-rename-at-point: redisplay images after renaming
  • Add org-download-image-html-title. If set add a "title" attribute.
org-download list of languages used
Other projects in Emacs Lisp