> On Jun 6, 2024, at 4:41 PM, Juergen Fenn wrote: > > > > Am 06.06.24 um 17:17 Uhr schrieb Ihor Radchenko: >> Juergen Fenn writes: >> >>> Am 06.06.24 um 08:20 Uhr schrieb Visuwesh: >>>> Thanks for the analysis. Given that Alan says GNUStep cannot handle >>>> non-text clipboard items, I cannot propose anything myself. It would be >>>> nice if a Mac user can write a report and send it to the Emacs >>>> developers. Perhaps Juergen can do it? >>> >>> Of course, I /could/ do this, but given the fact that you have already >>> found out about /some/ internals wouldn't it be better a macOS/NextStep >>> developer would look into this in the first place and hence write the >>> report with some somre insight? >> >> Unfortunately, there are no MacOS developers among Org mode maintainers. >> I personally do not even have access to MacOS for testing. >> >> Since you at least can test things on MacOS, it would be helpful if you >> can create the recipe suitable for Emacs devs to reproduce the >> problem. They may also ask extra information from your MacOS. >> > > I see. Thanks for explaining. So, I will write a bug report that draws > on our discussion and send it to emacs-devel over the weekend. > > My switch from Ventura to Sonoma shortly may make things more > complicated, as I cannot foresee in howmuch the two platforms differ > under the hood, but I'm afraid I cannot postpone the upgrade. A few years ago, I wrote a small package for pasting PNG and PDF data from the Mac clipboard into org documents as attachments, which I still use: https://github.com/jdtsmith/org-mac-image-paste. With the recent work on yank-media I'm hopeful I can retire this package soon. I found I could pull PDF data to file from the clipboard via AppleScript (and display in the emacs-mac build using its image-io backend), but used pngpaste[1] tool for PNG data. When an image is on the clipboard, PNG data are indeed available from the clipboard («class PNGf»), as can be seen via AppleScript. You can use AppleScript to inquire about the state of the clipboard. For example, after taking a screenshot, I see: % osascript -e "clipboard info" «class PNGf», 121849, «class 8BPS», 401974, GIF picture, 21636, «class jp2 », 21831, JPEG picture, 35062, TIFF picture, 369790, «class BMP », 366218, «class TPIC», 285265 On copying an image from a website, I get: % osascript -e "clipboard info" TIFF picture, 91686, URL, 81, «class urln», 6, «class utf8», 81, «class rtfd», 2652, «class weba», 5679, «class HTML», 800, «class 8BPS», 103154, GIF picture, 681, «class jp2 », 5455, JPEG picture, 1059, «class PNGf», 6282, «class BMP », 44298, «class TPIC», 8066, «class ut16», 164, string, 81, Unicode text, 162 For images grabbed from web-pages, you can actually get the URL information if you like and include that in or near the attachment link. Here's after copying a GIF file from the Finder: % osascript -e "clipboard info" «class furl», 41, «class ut16», 24, «class utf8», 11, «class icns», 1137764, Unicode text, 22, string, 11, «class 8BPS», 1295026, GIF picture, 74698, «class jp2 », 110628, JPEG picture, 62209, TIFF picture, 4198020, «class PNGf», 305211, «class BMP », 4194442, «class TPIC», 796024 Notice the file-URL there, which you can get (here using the JXA=javascript flavor of AppleScript, with a UTI for the file-url, which is apparently the more modern way to do it): % osascript -l JavaScript -e 'ObjC.import("AppKit"); $.NSPasteboard.generalPasteboard.stringForType("public.file-url");' file:///Users/xxyz/Desktop/output.gif You can even coerce the clipboard to be in a certain format: % osascript -e "clipboard info" TIFF picture, 35766, URL, 37, «class urln», 7, «class utf8», 37, «class rtfd», 1082, «class weba», 3643, «class HTML», 820, «class 8BPS», 9884, GIF picture, 434, «class jp2 », 4617, JPEG picture, 1268, «class PNGf», 1527, «class BMP », 32538, «class TPIC», 2446, «class ut16», 76, string, 37, Unicode text, 74 % osascript -e "set the clipboard to (the clipboard as JPEG picture)" % osascript -e "clipboard info" JPEG picture, 1268, «class 8BPS», 8622, GIF picture, 687, «class jp2 », 4671, TIFF picture, 27704, «class PNGf», 2508, «class BMP », 24534, «class TPIC», 4372 My knowledge doesn't go any deeper than that but thought I'd share what I know. [1] The code for pngpaste might be informative: https://github.com/jcsalterego/pngpaste/blob/main/pngpaste.m.