Hello
>> What I want is that emacs/orgmode understands the contents of the
clipboard
>> and creates that file for me. For instance, if it detects that the
contents
>> of the clipboard is an image or some sort of non-text format, emacs
would
>> dump the clipboard data to a file, auto-generate a filename,
guessing the
>> data type, and attach that file to my org-file via org-attach-attach.
>
> See Automatic screenshot insertion on Worg:
>
> http://orgmode.org/worg/org-hacks.html#sec-3-8
>
> Best regards,
> Seb
>
Thank you for your suggestion, Seb.
The script "Automatic screenshot insertion" from Worg is based on
"import" from Imagemagick, which operates on X buffers.
I'm actually running Aquamacs in Mac OS X (10.6), so this solution
doesn't work for me.
Nevertheless, it's a good pointer: I was able to cook up an elisp
function that calls an applescript to do the osx-dependent stuff.
I suppose that X11 users could use xclip or xsel instead (did not try
it, though).
Here is the elisp bit:
(defun org-capture-clipboard-as-png ()
"Save the contents of the clipboard as a time stamped unique-named
.png file in the
same directory as the org-buffer and insert a link to this file."
(interactive)
(setq filename
(concat
(make-temp-name
(concat (buffer-file-name)
"_"
(format-time-string "%Y%m%d_%H%M%S_")) ) ".png"))
(call-process "~/.emacs.d/scripts/save_clipboard.applescript" nil nil
nil filename )
(insert (concat "[[" filename "]]"))
;; (org-display-inline-images)
)
and here is the applescript bit ( save_clipboard.applescript )
#!/usr/bin/osascript
on run argv
set fn to item 1 of argv
# Check if Clipboard is empty
set blnIsClipboardEmpty to false
try
set dataClipboard to the clipboard
on error strErrorMessage number intErrorNumber
if (intErrorNumber is -25131) then
set blnIsClipboardEmpty to true
end if
end try
# Try to save clipboard contentsas png
if blnIsClipboardEmpty is false then
set d to the clipboard as «class PNGf»
set fid to open for access fn with write permission
write d to fid
close access fid
end if
end run
Sure, this is far from perfect.
I would like these scripts to
- guess data type that is in clipboard and save the data with the
correct extension
- make the elisp script aware of the file extension
- somehow feed this to org-attach, in order to have all of the
git-attach goodies.
but this is beyond my skills at the moment...
Any hints?