* Screenshot of agenda: agenda is not shown in time
@ 2016-04-13 20:42 Karl Voit
2016-04-13 23:42 ` Adam Porter
[not found] ` <t8n3ucxtc8.ln2@news.c0t0d0s0.de>
0 siblings, 2 replies; 4+ messages in thread
From: Karl Voit @ 2016-04-13 20:42 UTC (permalink / raw)
To: emacs-orgmode
Hi!
I'd like to get a screenshot (PNG) of an agenda of mine by following
snippet:
(defun my-export-month-agenda-to-png-via-screenshot()
(interactive)
(org-agenda nil "n") ; generates agenda "n" (one month without todos)
(if (my-buffer-exists "*Org Agenda*")
(switch-to-buffer "*Org Agenda*")
(org-agenda-list)
)
(message "Waiting for Screenshot ...")
(sleep-for 1)
(message "Say cheese ...")
(setq myoutput
(shell-command-to-string "/usr/bin/import -window root /home/vk/share/agenda.png"))
(message (concat "Screenshot done (" myoutput ")"))
)
The code works somewhat: the corresponding agenda is generated, a
screenshot (via imagemagick) is created. But: on the screenshot, I
see the buffer from where I invoked
my-export-month-agenda-to-png-via-screenshot in the first place and
in the minibuffer I can read "Say cheese ...".
Therefore it seems to be the case that basically the function
changes to the newly created Agenda buffer *after* the screenshot
and probably after the end of the function.
As you can see, I tried to change to the agenda buffer «manually»
via switch-to-buffer with no change of the result. I even tried to
get the result I am wishing for by adding a one-second sleep phase
which should cancel out any buffer-switch-performance-delay.
Can you help me, what is going on here?
--
mail|git|SVN|photos|postings|SMS|phonecalls|RSS|CSV|XML to Org-mode:
> get Memacs from https://github.com/novoid/Memacs <
https://github.com/novoid/extract_pdf_annotations_to_orgmode + more on github
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Screenshot of agenda: agenda is not shown in time
2016-04-13 20:42 Screenshot of agenda: agenda is not shown in time Karl Voit
@ 2016-04-13 23:42 ` Adam Porter
[not found] ` <t8n3ucxtc8.ln2@news.c0t0d0s0.de>
1 sibling, 0 replies; 4+ messages in thread
From: Adam Porter @ 2016-04-13 23:42 UTC (permalink / raw)
To: emacs-orgmode
Hi Karl,
This seems strange to me too. I tested your code and found that the
screenshot always showed the pre-agenda state of the frame, showing the lisp
window at the top and the helm-M-x window at the bottom, the way it looked
when I hit RET to run the command.
However, I tried stepping through the function with edebug, and then it
worked properly: the screenshot was taken after the agenda displayed, and it
showed the agenda in the screenshot.
I don't know much about Emacs internals, but I'm guessing that something's
preventing the frame from being repainted until the function finishes.
Maybe you could use a separate function to take the screenshot and call it
with a timer?
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Screenshot of agenda: agenda is not shown in time
[not found] ` <t8n3ucxtc8.ln2@news.c0t0d0s0.de>
@ 2016-04-15 15:39 ` Karl Voit
[not found] ` <25g7ucxfpb.ln2@news.c0t0d0s0.de>
0 siblings, 1 reply; 4+ messages in thread
From: Karl Voit @ 2016-04-15 15:39 UTC (permalink / raw)
To: emacs-orgmode
* Michael Welle <mwe012008@gmx.net> wrote:
> Hello,
Hi Michael!
> Karl Voit <devnull@Karl-Voit.at> writes:
>
>> I'd like to get a screenshot (PNG) of an agenda of mine by following
>> snippet:
[...]
>> (sleep-for 1)
> waits without updating the display. Mayby that is the problem? Try
> sit-for.
You seem to have found the root cause. What works at my side:
(defun my-export-month-agenda-to-png-via-screenshot()
(interactive)
(org-agenda nil "n") ; generates agenda "n" (one month without todos)
(if (my-buffer-exists "*Org Agenda*")
(switch-to-buffer "*Org Agenda*")
(org-agenda-list)
)
(message "Waiting for Screenshot ...")
(sit-for 1)
(message "Say cheese ...")
(setq myoutput
(shell-command-to-string "/usr/bin/import -window root /home/vk/agenda.png"))
(message (concat "Screenshot done (" myoutput ")"))
)
HTH
--
mail|git|SVN|photos|postings|SMS|phonecalls|RSS|CSV|XML to Org-mode:
> get Memacs from https://github.com/novoid/Memacs <
https://github.com/novoid/extract_pdf_annotations_to_orgmode + more on github
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Screenshot of agenda: agenda is not shown in time
[not found] ` <25g7ucxfpb.ln2@news.c0t0d0s0.de>
@ 2016-04-16 11:53 ` Karl Voit
0 siblings, 0 replies; 4+ messages in thread
From: Karl Voit @ 2016-04-16 11:53 UTC (permalink / raw)
To: emacs-orgmode
* Michael Welle <mwe012008@gmx.net> wrote:
> Hello,
Hi Michael!
> great. May I ask what you are building? Are the screen dumps just for
> documentation purpose or are you up to something interesting ;)?
The purpose of this screenshot is to get a quick possibility to
check my next four weeks (only appointments, no todos) on my Android
phone.
Since I am not able to define this PNG as my lock-screen background
(my original plan), I created a lock-screen link to the image. To
get to the agenda from lock-screen requires a slide of the
lock-screen link, enter my security pattern, and then my image
viewer shows me the agenda.
This is a reasonable workaround since MobileOrg still does not work
with my local Android calendar for some reason.
--
mail|git|SVN|photos|postings|SMS|phonecalls|RSS|CSV|XML to Org-mode:
> get Memacs from https://github.com/novoid/Memacs <
https://github.com/novoid/extract_pdf_annotations_to_orgmode + more on github
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2016-04-16 11:53 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-04-13 20:42 Screenshot of agenda: agenda is not shown in time Karl Voit
2016-04-13 23:42 ` Adam Porter
[not found] ` <t8n3ucxtc8.ln2@news.c0t0d0s0.de>
2016-04-15 15:39 ` Karl Voit
[not found] ` <25g7ucxfpb.ln2@news.c0t0d0s0.de>
2016-04-16 11:53 ` Karl Voit
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).