emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] How to attach data in clipboard directly?


From: Carlos Russo
Subject: Re: [O] How to attach data in clipboard directly?
Date: Sat, 25 Jun 2011 11:06:35 +0100
User-agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.17) Gecko/20110414 Lightning/1.0b2 Thunderbird/3.1.10

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?






reply via email to

[Prev in Thread] Current Thread [Next in Thread]