* feature request: easy embedding of images @ 2023-02-19 0:22 Alexis Gallagher 2023-02-20 19:20 ` Russell Adams ` (3 more replies) 0 siblings, 4 replies; 11+ messages in thread From: Alexis Gallagher @ 2023-02-19 0:22 UTC (permalink / raw) To: emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 1472 bytes --] Hello, my fellow org-mode lovers, This is a feature request — or failing that, a request for advice on a settings configuration which could produce this functionality now. I wish org-mode had the ability to attach images to notes, display them inline, and have that work well. By “work well” I mean a few specific things: • the image is automatically resized to maintain aspect ratio and fit horizontally with a civilized margin, so that I can resize my emacs window without the image disappearing or swamping the other content. • you can still scroll the window one line height unit at a time, without the entire image being scrolled as if it were one giant line, breaking scrolling, as seems to happen on my emacs (version 28.x on Linux) • drag and drop, so I can add the image by dragging it in, for instance from a screenshot tool or from an image on a web page. • sensible defaults for storing the images bundled with notes and keeping the two associated, so that I don't subsequently live in fear of ever moving my org files Why is this valuable, to me at least? I use org to take notes all day, during meetings, on reading matter, in the development of my own thoughts. Embedding images would let me collect every kind of resource I can't reproduce by typing or copy and pasting text — photos of slides during presentations, photos of whiteboard, key snippets from websites, handwritten notes and equations, etc.. Alexis [-- Attachment #2: Type: text/html, Size: 2774 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: feature request: easy embedding of images 2023-02-19 0:22 feature request: easy embedding of images Alexis Gallagher @ 2023-02-20 19:20 ` Russell Adams 2023-02-20 21:24 ` Jude DaShiell 2023-02-20 19:28 ` Daniel Fleischer ` (2 subsequent siblings) 3 siblings, 1 reply; 11+ messages in thread From: Russell Adams @ 2023-02-20 19:20 UTC (permalink / raw) To: emacs-orgmode On Sat, Feb 18, 2023 at 04:22:33PM -0800, Alexis Gallagher wrote: > Hello, my fellow org-mode lovers, > > This is a feature request — or failing that, a request for advice on > a settings configuration which could produce this functionality now. Have you looked at org-attach-screenshot? https://github.com/dfeich/org-screenshot It uses org-attach and calls out to take a screenshot. I do the same with some local function's I wrote a while ago. It works very well for me. I run M-x my/org-screenshot, and after 3 seconds it will use Imagemagick's "import" command to allow me to select a region to screenshot and saves it to a filename I prepared. I do this daily, many times each day. > I wish org-mode had the ability to attach images to notes, display > them inline, and have that work well. By “work well” I mean a few > specific things: > > • the image is automatically resized to maintain aspect ratio and > • fit horizontally with a civilized margin, so that I can resize > • my emacs window without the image disappearing or swamping the > • other content. This is Emacs, not Org. Perhaps someone knows how to adjust that. > • you can still scroll the window one line height unit at a time, > • without the entire image being scrolled as if it were one giant > • line, breaking scrolling, as seems to happen on my emacs > • (version 28.x on Linux) Mine jumps too, but again that's Emacs, not Org. > • drag and drop, so I can add the image by dragging it in, for > • instance from a screenshot tool or from an image on a web page. I can't answer that. Drag and drop functions depend on your platform. Does anything else in Emacs use drag and drop? > • sensible defaults for storing the images bundled with notes and > • keeping the two associated, so that I don't subsequently live in > • fear of ever moving my org files I do save all of mine to the same directory as my org file in .org/Filename.org.screenshotYYYYMMDDHHMMSS.png. It means I can easily know what files below to my org document. > Why is this valuable, to me at least? I use org to take notes all > day, during meetings, on reading matter, in the development of my > own thoughts. Embedding images would let me collect every kind of > resource I can't reproduce by typing or copy and pasting text — > photos of slides during presentations, photos of whiteboard, key > snippets from websites, handwritten notes and equations, etc.. Of course it's valuable, and already implemented. I think you're asking more about refining how you use it. ------------------------------------------------------------------ Russell Adams RLAdams@AdamsInfoServ.com https://www.adamsinfoserv.com/ ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: feature request: easy embedding of images 2023-02-20 19:20 ` Russell Adams @ 2023-02-20 21:24 ` Jude DaShiell 2023-02-21 12:21 ` Daniel Fleischer 0 siblings, 1 reply; 11+ messages in thread From: Jude DaShiell @ 2023-02-20 21:24 UTC (permalink / raw) To: Russell Adams, emacs-orgmode To help accessibility it would be useful when an image was dragged into org-mode if the user got prompted for an image description that gets associated with the image in org-mode. Some images are art work and those should get alt="" tags if a user fails to provide a description but only after asking if this image is art work or something that needs a description. If a description is provided that should go between the quotes in the alt="" tag. Jude <jdashiel at panix dot com> "There are four boxes to be used in defense of liberty: soap, ballot, jury, and ammo. Please use in that order." -Ed Howdershelt (Author, 1940) . On Mon, 20 Feb 2023, Russell Adams wrote: > On Sat, Feb 18, 2023 at 04:22:33PM -0800, Alexis Gallagher wrote: > > Hello, my fellow org-mode lovers, > > > > This is a feature request ? or failing that, a request for advice on > > a settings configuration which could produce this functionality now. > > Have you looked at org-attach-screenshot? > > https://github.com/dfeich/org-screenshot > > It uses org-attach and calls out to take a screenshot. > > I do the same with some local function's I wrote a while ago. It works > very well for me. I run M-x my/org-screenshot, and after 3 seconds it > will use Imagemagick's "import" command to allow me to select a region > to screenshot and saves it to a filename I prepared. > > I do this daily, many times each day. > > > I wish org-mode had the ability to attach images to notes, display > > them inline, and have that work well. By ?work well? I mean a few > > specific things: > > > > ? the image is automatically resized to maintain aspect ratio and > > ? fit horizontally with a civilized margin, so that I can resize > > ? my emacs window without the image disappearing or swamping the > > ? other content. > > This is Emacs, not Org. Perhaps someone knows how to adjust that. > > > ? you can still scroll the window one line height unit at a time, > > ? without the entire image being scrolled as if it were one giant > > ? line, breaking scrolling, as seems to happen on my emacs > > ? (version 28.x on Linux) > > Mine jumps too, but again that's Emacs, not Org. > > > ? drag and drop, so I can add the image by dragging it in, for > > ? instance from a screenshot tool or from an image on a web page. > > I can't answer that. Drag and drop functions depend on your > platform. Does anything else in Emacs use drag and drop? > > > ? sensible defaults for storing the images bundled with notes and > > ? keeping the two associated, so that I don't subsequently live in > > ? fear of ever moving my org files > > I do save all of mine to the same directory as my org file in > .org/Filename.org.screenshotYYYYMMDDHHMMSS.png. It means I can easily > know what files below to my org document. > > > Why is this valuable, to me at least? I use org to take notes all > > day, during meetings, on reading matter, in the development of my > > own thoughts. Embedding images would let me collect every kind of > > resource I can't reproduce by typing or copy and pasting text ? > > photos of slides during presentations, photos of whiteboard, key > > snippets from websites, handwritten notes and equations, etc.. > > Of course it's valuable, and already implemented. I think you're > asking more about refining how you use it. > > ------------------------------------------------------------------ > Russell Adams RLAdams@AdamsInfoServ.com > https://www.adamsinfoserv.com/ > > ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: feature request: easy embedding of images 2023-02-20 21:24 ` Jude DaShiell @ 2023-02-21 12:21 ` Daniel Fleischer 0 siblings, 0 replies; 11+ messages in thread From: Daniel Fleischer @ 2023-02-21 12:21 UTC (permalink / raw) To: Jude DaShiell; +Cc: Russell Adams, emacs-orgmode Jude DaShiell [2023-02-20 Mon 16:24] wrote: > To help accessibility it would be useful when an image was dragged into > org-mode if the user got prompted for an image description that gets > associated with the image in org-mode. Some images are art work and those > should get alt="" tags if a user fails to provide a description but only > after asking if this image is art work or something that needs a > description. If a description is provided that should go between the > quotes in the alt="" tag. In org-download you can specify html attributes for the attached image, see link https://github.com/abo-abo/org-download/blob/master/org-download.el#L178-L184 It's not a prompt, it's a template and you can fill the alt description. -- Daniel Fleischer ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: feature request: easy embedding of images 2023-02-19 0:22 feature request: easy embedding of images Alexis Gallagher 2023-02-20 19:20 ` Russell Adams @ 2023-02-20 19:28 ` Daniel Fleischer 2023-03-23 14:34 ` [RFC] Limit inline image width by default (was: feature request: easy embedding of images) Ihor Radchenko 2023-03-24 12:49 ` feature request: easy embedding of images Ihor Radchenko 3 siblings, 0 replies; 11+ messages in thread From: Daniel Fleischer @ 2023-02-20 19:28 UTC (permalink / raw) To: Alexis Gallagher; +Cc: emacs-orgmode Alexis Gallagher [2023-02-18 Sat 16:22] wrote: > This is a feature request — or failing that, a request for advice on a settings configuration which could produce this > functionality now. Russell mentioned a package and pointed to the image issues related to Emacs, not Org. I want to suggest the package https://github.com/abo-abo/org-download which I use all time, for dragging and dropping images and for taking screeshots. -- Daniel Fleischer ^ permalink raw reply [flat|nested] 11+ messages in thread
* [RFC] Limit inline image width by default (was: feature request: easy embedding of images) 2023-02-19 0:22 feature request: easy embedding of images Alexis Gallagher 2023-02-20 19:20 ` Russell Adams 2023-02-20 19:28 ` Daniel Fleischer @ 2023-03-23 14:34 ` Ihor Radchenko 2023-03-23 14:57 ` Ruijie Yu via General discussions about Org-mode. ` (3 more replies) 2023-03-24 12:49 ` feature request: easy embedding of images Ihor Radchenko 3 siblings, 4 replies; 11+ messages in thread From: Ihor Radchenko @ 2023-03-23 14:34 UTC (permalink / raw) To: Alexis Gallagher; +Cc: emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 459 bytes --] Alexis Gallagher <alexisgallagher@gmail.com> writes: > • the image is automatically resized to maintain aspect ratio and fit horizontally with a civilized margin, so that I can resize my emacs window without the image disappearing or swamping the other content. We cannot automatically resize images in Elisp. At least, I know no good way to do it reliably. But we can try to improve the defaults for wide images. See the tentative patch. [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0001-lisp-org.el-Allow-limiting-inline-image-width.patch --] [-- Type: text/x-patch, Size: 5745 bytes --] From 180e322c2c79ea88d87f908299a5c0e69c47a7b2 Mon Sep 17 00:00:00 2001 Message-Id: <180e322c2c79ea88d87f908299a5c0e69c47a7b2.1679581960.git.yantar92@posteo.net> From: Ihor Radchenko <yantar92@posteo.net> Date: Thu, 23 Mar 2023 15:31:33 +0100 Subject: [PATCH] lisp/org.el: Allow limiting inline image width * lisp/org.el (org-image-max-width): New custom variable controlling max inline image width. (org--create-inline-image): Use the new variable. * doc/org-manual.org (Images): * etc/ORG-NEWS (New customization ~org-image-max-width~ limiting the displayed inline image width): Document the new variable. --- doc/org-manual.org | 20 +++++++++++++++++--- etc/ORG-NEWS | 15 +++++++++++++++ lisp/org.el | 29 ++++++++++++++++++++++++++++- 3 files changed, 60 insertions(+), 4 deletions(-) diff --git a/doc/org-manual.org b/doc/org-manual.org index 37fd3df14..3d729bdf6 100644 --- a/doc/org-manual.org +++ b/doc/org-manual.org @@ -11495,14 +11495,19 @@ ** Images #+vindex: org-image-actual-width + #+vindex: org-image-max-width #+cindex: @samp{ORG-IMAGE-ACTUAL-WIDTH}, property By default, Org mode displays inline images according to their - actual width. You can customize the displayed image width using + actual width, but no wider than ~fill-column~ characters. + + You can customize the displayed image width using ~org-image-actual-width~ variable (globally) or =ORG-IMAGE-ACTUAL-WIDTH= property (subtree-level)[fn:: The width can be customized in Emacs >= 24.1, built with imagemagick support.]. Their value can be the following: - (default) Non-nil, use the actual width of images when inlining them. + It the actual width is too wide, limit it according to + ~org-image-max-width~. - When set to a number, use imagemagick (when available) to set the image's width to this value. - When set to a number in a list, try to get the width from any @@ -11512,8 +11517,17 @@ ** Images #+end_example and fall back on that number if none is found. - When set to nil, try to get the width from an =#+ATTR.*= keyword - and fall back on the original width if none is found. - + and fall back on the original width or ~org-image-max-width~ if + none is found. + + ~org-image-max-width~ limits the maximum displayed image width, but + only when the image width is not set explicitly. Possible maximum + width can be set to: + - (default) ~fill-column~, limit width to ~fill-column~ number of + characters. + - ~window~, limit width to current window width. + - integer number, limit width that specified number of pixels. + - nil, do not limit the width. #+vindex: org-cycle-inline-images-display Inline images can also be displayed when cycling the folding state. diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS index 4d45e6507..2611cc570 100644 --- a/etc/ORG-NEWS +++ b/etc/ORG-NEWS @@ -24,6 +24,21 @@ consider [[https://gitlab.com/jackkamm/ob-python-mode-mode][ob-python-mode-mode] has been ported to. ** New and changed options +*** New customization ~org-image-max-width~ limiting the displayed inline image width + +New custom variable ~org-image-max-width~ limits the maximum inline +image width, but only when the inline image width is not explicitly +set via ~org-image-actual-width~, =ORG-IMAGE-ACTUAL-WIDTH= property, +or =#+ATTR*= keyword. + +By default, when ~org-image-actual-width~ is set to t, +~org-image-max-width~ takes effect. Its default value is set to +~fill-column~, limiting the image previews to ~fill-column~ number of +characters. + +To fall back to previous defaults, where the inline image width is not +constrained, set ~org-image-max-width~ to nil. + *** New ~org-cite-natbib-export-bibliography~ option defining fallback bibliography style ~natbib~ citation export processor now uses diff --git a/lisp/org.el b/lisp/org.el index 20e6ea6d9..43d659536 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -15096,6 +15096,24 @@ (defcustom org-image-actual-width t (list :tag "Use #+ATTR* or a number of pixels" (integer)) (const :tag "Use #+ATTR* or don't resize" nil))) +(defcustom org-image-max-width 'fill-column + "When non-nil, limit the displayed image width. +This setting only takes effect when `org-image-actual-width' is set to +t or when #+ATTR* is set to t. + +Possible values: +- `fill-column' :: limit width to `fill-column' +- `window' :: limit width to window width +- number :: limit width to number in pixels +- nil :: do not limit image width" + :group 'org-appearance + :package-version '(Org . "9.7") + :type '(choice + (const :tag "Do not limit image width" nil) + (const :tag "Limit to `fill-column'" fill-column) + (const :tag "Limit to window width" window) + (integer :tag "Limit to a number of pixels"))) + (defcustom org-agenda-inhibit-startup nil "Inhibit startup when preparing agenda buffers. When this variable is t, the initialization of the Org agenda @@ -16229,7 +16247,16 @@ (defun org--create-inline-image (file width) width 'imagemagick) remote? - :width width :scale 1)))) + :width width + :max-width + (pcase org-image-max-width + (`fill-column (pixel-fill-width fill-column)) + (`window (window-width nil t)) + ((pred integerp) org-image-max-width) + (`nil nil) + (_ (error "Unsupported value of `org-image-max-width': %S" + org-image-max-width))) + :scale 1)))) (defun org-display-inline-images (&optional include-linked refresh beg end) "Display inline images. -- 2.39.1 [-- Attachment #3: Type: text/plain, Size: 224 bytes --] -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92> ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [RFC] Limit inline image width by default (was: feature request: easy embedding of images) 2023-03-23 14:34 ` [RFC] Limit inline image width by default (was: feature request: easy embedding of images) Ihor Radchenko @ 2023-03-23 14:57 ` Ruijie Yu via General discussions about Org-mode. 2023-03-23 15:25 ` Christopher M. Miles ` (2 subsequent siblings) 3 siblings, 0 replies; 11+ messages in thread From: Ruijie Yu via General discussions about Org-mode. @ 2023-03-23 14:57 UTC (permalink / raw) To: Ihor Radchenko; +Cc: Alexis Gallagher, emacs-orgmode Small nit, in case you are about to install it. > + It the actual width is too wide, limit it according to > + ~org-image-max-width~. "It" -> "If". -- Best, RY ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [RFC] Limit inline image width by default (was: feature request: easy embedding of images) 2023-03-23 14:34 ` [RFC] Limit inline image width by default (was: feature request: easy embedding of images) Ihor Radchenko 2023-03-23 14:57 ` Ruijie Yu via General discussions about Org-mode. @ 2023-03-23 15:25 ` Christopher M. Miles 2023-04-05 12:48 ` Rudolf Adamkovič 2023-04-09 9:00 ` Ihor Radchenko 3 siblings, 0 replies; 11+ messages in thread From: Christopher M. Miles @ 2023-03-23 15:25 UTC (permalink / raw) To: Ihor Radchenko; +Cc: Alexis Gallagher, emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 348 bytes --] This is an acceptable solution for large width image. I propose this RFC too. -- [ stardiviner ] I try to make every word tell the meaning that I want to express without misunderstanding. Blog: https://stardiviner.github.io/ IRC(libera.chat, freenode): stardiviner, Matrix: stardiviner GPG: F09F650D7D674819892591401B5DF1C95AE89AC3 [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 487 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [RFC] Limit inline image width by default (was: feature request: easy embedding of images) 2023-03-23 14:34 ` [RFC] Limit inline image width by default (was: feature request: easy embedding of images) Ihor Radchenko 2023-03-23 14:57 ` Ruijie Yu via General discussions about Org-mode. 2023-03-23 15:25 ` Christopher M. Miles @ 2023-04-05 12:48 ` Rudolf Adamkovič 2023-04-09 9:00 ` Ihor Radchenko 3 siblings, 0 replies; 11+ messages in thread From: Rudolf Adamkovič @ 2023-04-05 12:48 UTC (permalink / raw) To: Ihor Radchenko, Alexis Gallagher; +Cc: emacs-orgmode Ihor Radchenko <yantar92@posteo.net> writes: > See the tentative patch. This looks fantastic! +1 for using the Fill Column by default. Rudy -- "The introduction of suitable abstractions is our only mental aid to organize and master complexity." -- Edsger Wybe Dijkstra, 1930-2002 Rudolf Adamkovič <salutis@me.com> [he/him] Studenohorská 25 84103 Bratislava Slovakia ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [RFC] Limit inline image width by default (was: feature request: easy embedding of images) 2023-03-23 14:34 ` [RFC] Limit inline image width by default (was: feature request: easy embedding of images) Ihor Radchenko ` (2 preceding siblings ...) 2023-04-05 12:48 ` Rudolf Adamkovič @ 2023-04-09 9:00 ` Ihor Radchenko 3 siblings, 0 replies; 11+ messages in thread From: Ihor Radchenko @ 2023-04-09 9:00 UTC (permalink / raw) To: Alexis Gallagher; +Cc: emacs-orgmode Ihor Radchenko <yantar92@posteo.net> writes: > But we can try to improve the defaults for wide images. > > See the tentative patch. > > From 180e322c2c79ea88d87f908299a5c0e69c47a7b2 Mon Sep 17 00:00:00 2001 > Message-Id: <180e322c2c79ea88d87f908299a5c0e69c47a7b2.1679581960.git.yantar92@posteo.net> > From: Ihor Radchenko <yantar92@posteo.net> > Date: Thu, 23 Mar 2023 15:31:33 +0100 > Subject: [PATCH] lisp/org.el: Allow limiting inline image width Applied, onto main. Fixing the spotted typo and replacing `pixel-fill-width' with `frame-char-width' that is available in Emacs 26. https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?id=ddd8281e6 -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92> ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: feature request: easy embedding of images 2023-02-19 0:22 feature request: easy embedding of images Alexis Gallagher ` (2 preceding siblings ...) 2023-03-23 14:34 ` [RFC] Limit inline image width by default (was: feature request: easy embedding of images) Ihor Radchenko @ 2023-03-24 12:49 ` Ihor Radchenko 3 siblings, 0 replies; 11+ messages in thread From: Ihor Radchenko @ 2023-03-24 12:49 UTC (permalink / raw) To: Alexis Gallagher; +Cc: emacs-orgmode Alexis Gallagher <alexisgallagher@gmail.com> writes: > • you can still scroll the window one line height unit at a time, without the entire image being scrolled as if it were one giant line, breaking scrolling, as seems to happen on my emacs (version 28.x on Linux) Emacs will actually scroll partially when the image is taller than window height. But not otherwise. Changing this is not trivial. See https://debbugs.gnu.org/cgi/bugreport.cgi?bug=62048#17 -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92> ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2023-04-09 8:58 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-02-19 0:22 feature request: easy embedding of images Alexis Gallagher 2023-02-20 19:20 ` Russell Adams 2023-02-20 21:24 ` Jude DaShiell 2023-02-21 12:21 ` Daniel Fleischer 2023-02-20 19:28 ` Daniel Fleischer 2023-03-23 14:34 ` [RFC] Limit inline image width by default (was: feature request: easy embedding of images) Ihor Radchenko 2023-03-23 14:57 ` Ruijie Yu via General discussions about Org-mode. 2023-03-23 15:25 ` Christopher M. Miles 2023-04-05 12:48 ` Rudolf Adamkovič 2023-04-09 9:00 ` Ihor Radchenko 2023-03-24 12:49 ` feature request: easy embedding of images Ihor Radchenko
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).