Forgot to attach the patch in my last mail. Sorry about the double posting.
Viktor Rosenfeld wrote: > Hi, > > Haider Rizvi wrote: > > > Max Mikhanosha <m...@openchat.com> writes: > > > > > Hi All, > > > > > > I've been writing some documentation in OrgMode with screenshots, and > > > as with any screenshot taking, it takes a while to get one just right. > > > > > > A few tiny helper utilities, quickly snowballed into this :-) It may > > > need some cleanup, but IMHO its too awesome not to share it with the > > > list. > > > > > > To try it out, you'll need /usr/bin/scrot which is available as > > > "scrot" package on most distributions. > > > > Cool. Can you make this a bit portable. On Mac OSX, the utility is > > called screencapture, and can be run with the same flags. > > Attached is a very first try at making org-screenshot run on OS X. Many > open issues remain: > > - Clicking in a window will not take a screenshot using `screencapture > -s' but aborts the process altogether and does not create a file. To > capture a window one has to use `screencapture -w'. Another option is > to use `screencapture -i' and toggle between window and selection mode > using the space bar. The problem with this approach is that hitting > the control key will place the screenshot into the clipboard and not > create a file either. > > - Delay does not work because `screencapture -d' has a different > meaning. To delay a screenshot, one has to use `screencapture -T'. > > Cheers, > Viktor > > > Here is a > > piece of code that was published earlier with a sample use. > > > > http://thread.gmane.org/gmane.emacs.orgmode/69221/focus=69272 > > > > ,---- > > | #+BEGIN_SRC emacs-lisp > > | (defun paste-clipboard-to-file (&optional filename temp-dir) > > | "Take a screenshot using the crosshairs and saveit to FILENAME, > > | if it is given or to a temp file in the TEMP-DIR > > | directory. Then add an orgmode style link at point." > > | (interactive) > > | (let* ((temporary-file-directory (or temp-dir "images")) > > | (fname (or filename (make-temp-file "img" nil ".jpg")))) > > | (call-process-shell-command (concat > > | "/usr/sbin/screencapture -s " fname)) > > | (insert "\n[[file:" fname "]]") > > | (org-display-inline-images))) > > | ;; > > | (global-set-key (kbd "C-c p") 'paste-clipboard-to-file) > > | > > | #+END_SRC > > `---- > > > > Regards, > > -- > > Haider > > > >
>From 5938b848f4b9b30b25c903e3487834f9400f6ad9 Mon Sep 17 00:00:00 2001 From: Viktor Rosenfeld <listuse...@gmail.com> Date: Tue, 21 May 2013 19:32:16 +0200 Subject: [PATCH] org-screenshot: Let user configure capture program. * org-screenshot.el (org-screenshot-capture-binary): Configure the binary to capture a screenshot. (org-screenshot-take): Do not use hardcoded `scrot' binary. --- contrib/lisp/org-screenshot.el | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/contrib/lisp/org-screenshot.el b/contrib/lisp/org-screenshot.el index a54cb8f..54c8074 100644 --- a/contrib/lisp/org-screenshot.el +++ b/contrib/lisp/org-screenshot.el @@ -85,6 +85,11 @@ "Options for taking and managing screen-shots" :group 'org-link) +(defcustom org-screenshot-capture-binary "scrot" + "Binary to capture screen contents. Use `scrot' on Linux and `screencapture' on Mac OS X." + :type 'string + :group 'org-screenshot) + (defcustom org-screenshot-image-directory "./images/" "Directory in which screenshot image files will be stored, it be automatically created if it does't already exist." @@ -307,7 +312,7 @@ screenshot is done, any more `C-u' after that increases delay by (or (apply 'start-process (append - (list "scrot" "*scrot*" "scrot" "-s" path) + (list "scrot" "*scrot*" org-screenshot-capture-binary "-s" path) (when (plusp delay) (list "-d" (format "%d" delay))))) (error "Unable to start scrot process"))) -- 1.8.2.3