Re: [RFC] Limit inline image width by default (was: feature request: easy embedding of images)

2023-04-09 Thread Ihor Radchenko
Ihor Radchenko  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.yanta...@posteo.net>
> From: Ihor Radchenko 
> 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 .
Support Org development at ,
or support my work at 



Re: [RFC] Limit inline image width by default (was: feature request: easy embedding of images)

2023-04-05 Thread Rudolf Adamkovič
Ihor Radchenko  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č  [he/him]
Studenohorská 25
84103 Bratislava
Slovakia



Re: feature request: easy embedding of images

2023-03-24 Thread Ihor Radchenko
Alexis Gallagher  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 .
Support Org development at ,
or support my work at 



Re: [RFC] Limit inline image width by default (was: feature request: easy embedding of images)

2023-03-23 Thread Christopher M. Miles

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


signature.asc
Description: PGP signature


Re: [RFC] Limit inline image width by default (was: feature request: easy embedding of images)

2023-03-23 Thread General discussions about Org-mode.


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



[RFC] Limit inline image width by default (was: feature request: easy embedding of images)

2023-03-23 Thread Ihor Radchenko
Alexis Gallagher  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.

>From 180e322c2c79ea88d87f908299a5c0e69c47a7b2 Mon Sep 17 00:00:00 2001
Message-Id: <180e322c2c79ea88d87f908299a5c0e69c47a7b2.1679581960.git.yanta...@posteo.net>
From: Ihor Radchenko 
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")

Re: feature request: easy embedding of images

2023-02-21 Thread Daniel Fleischer
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



Re: feature request: easy embedding of images

2023-02-20 Thread Jude DaShiell
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  "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.screenshotMMDDHHMMSS.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 Adamsrlad...@adamsinfoserv.com
> https://www.adamsinfoserv.com/
>
>



Re: feature request: easy embedding of images

2023-02-20 Thread Daniel Fleischer
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



Re: feature request: easy embedding of images

2023-02-20 Thread Russell Adams
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.screenshotMMDDHHMMSS.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 Adamsrlad...@adamsinfoserv.com
https://www.adamsinfoserv.com/



feature request: easy embedding of images

2023-02-20 Thread Alexis Gallagher
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