* org-remember-AFTER-finalize-hook , anyone?
@ 2010-01-30 16:54 Stefano Zacchiroli
2010-01-30 18:23 ` Ryan Thompson
0 siblings, 1 reply; 5+ messages in thread
From: Stefano Zacchiroli @ 2010-01-30 16:54 UTC (permalink / raw)
To: emacs-orgmode
Short summary: I'd like to have a org-remember-after-finalize-hook which
is invoked *after* remember-finalize in function org-remember-finalize.
Does it exist and I've missed it or there is a work-around for its lack?
In more detail, my use case is that I invoke remember from mutt (more on
this when I've solved this last remaining issue) to store org notes
which have backlink to the originating mail. To that end, I use
org-protocol with emacsclient, invoking the following pseudo command:
emacsclient -t 'org-protocol:/remember:/m/mutt:$mid/mail/$note_body'
It works fine. However, after having hit C-c C-c , only the org-mode
*window* goes away, whereas the whole emacsclient instance stays around,
usually with the scratch buffer. Given that I've invoked it only to
execute org-protocol, it would be nice for the whole emacsclient
instance to go away at the end.
Having the requested hook I can hack a command which close the whole
frame.
Additionally I wonder: isn't this a bug in org-protocol? Can't it just
use the whole frame and make it go away at the end?
TIA,
Cheers.
--
Stefano Zacchiroli -o- PhD in Computer Science \ PostDoc @ Univ. Paris 7
zack@{upsilon.cc,pps.jussieu.fr,debian.org} -<>- http://upsilon.cc/zack/
Dietro un grande uomo c'è ..| . |. Et ne m'en veux pas si je te tutoie
sempre uno zaino ...........| ..: |.... Je dis tu à tous ceux que j'aime
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: org-remember-AFTER-finalize-hook , anyone?
2010-01-30 16:54 org-remember-AFTER-finalize-hook , anyone? Stefano Zacchiroli
@ 2010-01-30 18:23 ` Ryan Thompson
2010-01-30 23:45 ` Stefano Zacchiroli
0 siblings, 1 reply; 5+ messages in thread
From: Ryan Thompson @ 2010-01-30 18:23 UTC (permalink / raw)
To: Stefano Zacchiroli; +Cc: emacs-orgmode
[-- Attachment #1.1: Type: text/plain, Size: 1972 bytes --]
Ooh, I solved this problem before, but then I accidentally deleted all my
files. I have a backup, but I haven't gotten around to restoring everything
yet. I'll get back to you later.
-Ryan
On Sat, Jan 30, 2010 at 8:54 AM, Stefano Zacchiroli <zack@upsilon.cc> wrote:
> Short summary: I'd like to have a org-remember-after-finalize-hook which
> is invoked *after* remember-finalize in function org-remember-finalize.
> Does it exist and I've missed it or there is a work-around for its lack?
>
> In more detail, my use case is that I invoke remember from mutt (more on
> this when I've solved this last remaining issue) to store org notes
> which have backlink to the originating mail. To that end, I use
> org-protocol with emacsclient, invoking the following pseudo command:
>
> emacsclient -t 'org-protocol:/remember:/m/mutt:$mid/mail/$note_body'
>
> It works fine. However, after having hit C-c C-c , only the org-mode
> *window* goes away, whereas the whole emacsclient instance stays around,
> usually with the scratch buffer. Given that I've invoked it only to
> execute org-protocol, it would be nice for the whole emacsclient
> instance to go away at the end.
>
> Having the requested hook I can hack a command which close the whole
> frame.
>
> Additionally I wonder: isn't this a bug in org-protocol? Can't it just
> use the whole frame and make it go away at the end?
>
> TIA,
> Cheers.
>
> --
> Stefano Zacchiroli -o- PhD in Computer Science \ PostDoc @ Univ. Paris 7
> zack@{upsilon.cc,pps.jussieu.fr,debian.org} -<>- http://upsilon.cc/zack/
> Dietro un grande uomo c'è ..| . |. Et ne m'en veux pas si je te tutoie
> sempre uno zaino ...........| ..: |.... Je dis tu à tous ceux que j'aime
>
>
> _______________________________________________
> Emacs-orgmode mailing list
> Please use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>
[-- Attachment #1.2: Type: text/html, Size: 2622 bytes --]
[-- Attachment #2: Type: text/plain, Size: 201 bytes --]
_______________________________________________
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: org-remember-AFTER-finalize-hook , anyone?
2010-01-30 18:23 ` Ryan Thompson
@ 2010-01-30 23:45 ` Stefano Zacchiroli
2010-03-28 21:12 ` Ryan Thompson
0 siblings, 1 reply; 5+ messages in thread
From: Stefano Zacchiroli @ 2010-01-30 23:45 UTC (permalink / raw)
To: emacs-orgmode
On Sat, Jan 30, 2010 at 10:23:20AM -0800, Ryan Thompson wrote:
> Ooh, I solved this problem before, but then I accidentally deleted all my
> files. I have a backup, but I haven't gotten around to restoring everything
> yet. I'll get back to you later.
In the meantime, I've implemented a workaround, based on the following
idea:
(add-hook 'org-remember-mode-hook 'delete-other-windows)
(defadvice org-remember-finalize (after delete-frame-at-end activate)
"Delete frame at remember finalization"
(delete-frame))
(defadvice org-remember-kill (after delete-frame-at-end activate)
"Delete frame at remember abort"
(delete-frame))
It works properly, but it assumes that org-remember is invoked only
externally via org-protocol (i.e. if I invoke org-remember by hand I
risk my frame).
So I've conceived the following horror to constraint the effect to
org-protocol invocation (yes, with a serious race condition involved):
(add-hook 'org-remember-mode-hook 'delete-other-windows)
(setq my-org-protocol-flag nil)
(defadvice org-remember-finalize (after delete-frame-at-end activate)
"Delete frame at remember finalization"
(progn
(if my-org-protocol-flag (delete-frame))
(setq my-org-protocol-flag nil)))
(defadvice org-remember-kill (after delete-frame-at-end activate)
"Delete frame at remember abort"
(progn
(if my-org-protocol-flag (delete-frame))
(setq my-org-protocol-flag nil)))
(defadvice org-protocol-remember (before set-org-protocol-flag activate)
(setq my-org-protocol-flag t))
Any suggestions on how to achieve the same result in a more proper way
will be appreciated ...
Cheers.
--
Stefano Zacchiroli -o- PhD in Computer Science \ PostDoc @ Univ. Paris 7
zack@{upsilon.cc,pps.jussieu.fr,debian.org} -<>- http://upsilon.cc/zack/
Dietro un grande uomo c'è ..| . |. Et ne m'en veux pas si je te tutoie
sempre uno zaino ...........| ..: |.... Je dis tu à tous ceux que j'aime
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: org-remember-AFTER-finalize-hook , anyone?
2010-01-30 23:45 ` Stefano Zacchiroli
@ 2010-03-28 21:12 ` Ryan Thompson
2010-03-28 21:13 ` Ryan Thompson
0 siblings, 1 reply; 5+ messages in thread
From: Ryan Thompson @ 2010-03-28 21:12 UTC (permalink / raw)
To: Stefano Zacchiroli; +Cc: emacs-orgmode
Ok, I finally recreated my setup. There's some bug in emacs daemon
where if no X frame currently exist and you use emacsclient -e
'(some-function-that-creates-a-frame)', then the frame that is created
will immediately be deleted when the command terminates. (Note: this
is only a problem with an emacs that wasn't started originally with an
X frame, i.e. either emacs -nw or emacs --daemon) To fix this, the key
is to use emacsclient -c to create a new frame, and then use -e to
eval some code that creates the frame you actually want, and then
deletes the first frame. Here's my script:
#!/bin/sh
exec emacsclient -c -e '
(let ((sacframe (selected-frame))) ; the frame create by the -c
options is the "sacrificial frame"
(make-frame-invisible sacframe t)
(remember-other-frame)
(delete-frame sacframe t))
'
Put that in a script in your $PATH somewhere and add a keybinding
using e.g. xbindkeys. Personally, I use Windows Key + R.
On Sat, Jan 30, 2010 at 4:45 PM, Stefano Zacchiroli <zack@upsilon.cc> wrote:
> On Sat, Jan 30, 2010 at 10:23:20AM -0800, Ryan Thompson wrote:
>> Ooh, I solved this problem before, but then I accidentally deleted all my
>> files. I have a backup, but I haven't gotten around to restoring everything
>> yet. I'll get back to you later.
>
> In the meantime, I've implemented a workaround, based on the following
> idea:
>
> (add-hook 'org-remember-mode-hook 'delete-other-windows)
> (defadvice org-remember-finalize (after delete-frame-at-end activate)
> "Delete frame at remember finalization"
> (delete-frame))
> (defadvice org-remember-kill (after delete-frame-at-end activate)
> "Delete frame at remember abort"
> (delete-frame))
>
> It works properly, but it assumes that org-remember is invoked only
> externally via org-protocol (i.e. if I invoke org-remember by hand I
> risk my frame).
>
> So I've conceived the following horror to constraint the effect to
> org-protocol invocation (yes, with a serious race condition involved):
>
> (add-hook 'org-remember-mode-hook 'delete-other-windows)
> (setq my-org-protocol-flag nil)
> (defadvice org-remember-finalize (after delete-frame-at-end activate)
> "Delete frame at remember finalization"
> (progn
> (if my-org-protocol-flag (delete-frame))
> (setq my-org-protocol-flag nil)))
> (defadvice org-remember-kill (after delete-frame-at-end activate)
> "Delete frame at remember abort"
> (progn
> (if my-org-protocol-flag (delete-frame))
> (setq my-org-protocol-flag nil)))
> (defadvice org-protocol-remember (before set-org-protocol-flag activate)
> (setq my-org-protocol-flag t))
>
> Any suggestions on how to achieve the same result in a more proper way
> will be appreciated ...
>
> Cheers.
>
> --
> Stefano Zacchiroli -o- PhD in Computer Science \ PostDoc @ Univ. Paris 7
> zack@{upsilon.cc,pps.jussieu.fr,debian.org} -<>- http://upsilon.cc/zack/
> Dietro un grande uomo c'è ..| . |. Et ne m'en veux pas si je te tutoie
> sempre uno zaino ...........| ..: |.... Je dis tu à tous ceux que j'aime
>
>
> _______________________________________________
> Emacs-orgmode mailing list
> Please use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: org-remember-AFTER-finalize-hook , anyone?
2010-03-28 21:12 ` Ryan Thompson
@ 2010-03-28 21:13 ` Ryan Thompson
0 siblings, 0 replies; 5+ messages in thread
From: Ryan Thompson @ 2010-03-28 21:13 UTC (permalink / raw)
To: Stefano Zacchiroli; +Cc: emacs-orgmode
Oh, I guess you're using org-protocol, so your're going to have to do
something a little different. But I hope my post gives you the idea of
how to do it.
On Sun, Mar 28, 2010 at 2:12 PM, Ryan Thompson <rct@thompsonclan.org> wrote:
> Ok, I finally recreated my setup. There's some bug in emacs daemon
> where if no X frame currently exist and you use emacsclient -e
> '(some-function-that-creates-a-frame)', then the frame that is created
> will immediately be deleted when the command terminates. (Note: this
> is only a problem with an emacs that wasn't started originally with an
> X frame, i.e. either emacs -nw or emacs --daemon) To fix this, the key
> is to use emacsclient -c to create a new frame, and then use -e to
> eval some code that creates the frame you actually want, and then
> deletes the first frame. Here's my script:
>
> #!/bin/sh
>
> exec emacsclient -c -e '
> (let ((sacframe (selected-frame))) ; the frame create by the -c
> options is the "sacrificial frame"
> (make-frame-invisible sacframe t)
> (remember-other-frame)
> (delete-frame sacframe t))
> '
>
> Put that in a script in your $PATH somewhere and add a keybinding
> using e.g. xbindkeys. Personally, I use Windows Key + R.
>
>
> On Sat, Jan 30, 2010 at 4:45 PM, Stefano Zacchiroli <zack@upsilon.cc> wrote:
>> On Sat, Jan 30, 2010 at 10:23:20AM -0800, Ryan Thompson wrote:
>>> Ooh, I solved this problem before, but then I accidentally deleted all my
>>> files. I have a backup, but I haven't gotten around to restoring everything
>>> yet. I'll get back to you later.
>>
>> In the meantime, I've implemented a workaround, based on the following
>> idea:
>>
>> (add-hook 'org-remember-mode-hook 'delete-other-windows)
>> (defadvice org-remember-finalize (after delete-frame-at-end activate)
>> "Delete frame at remember finalization"
>> (delete-frame))
>> (defadvice org-remember-kill (after delete-frame-at-end activate)
>> "Delete frame at remember abort"
>> (delete-frame))
>>
>> It works properly, but it assumes that org-remember is invoked only
>> externally via org-protocol (i.e. if I invoke org-remember by hand I
>> risk my frame).
>>
>> So I've conceived the following horror to constraint the effect to
>> org-protocol invocation (yes, with a serious race condition involved):
>>
>> (add-hook 'org-remember-mode-hook 'delete-other-windows)
>> (setq my-org-protocol-flag nil)
>> (defadvice org-remember-finalize (after delete-frame-at-end activate)
>> "Delete frame at remember finalization"
>> (progn
>> (if my-org-protocol-flag (delete-frame))
>> (setq my-org-protocol-flag nil)))
>> (defadvice org-remember-kill (after delete-frame-at-end activate)
>> "Delete frame at remember abort"
>> (progn
>> (if my-org-protocol-flag (delete-frame))
>> (setq my-org-protocol-flag nil)))
>> (defadvice org-protocol-remember (before set-org-protocol-flag activate)
>> (setq my-org-protocol-flag t))
>>
>> Any suggestions on how to achieve the same result in a more proper way
>> will be appreciated ...
>>
>> Cheers.
>>
>> --
>> Stefano Zacchiroli -o- PhD in Computer Science \ PostDoc @ Univ. Paris 7
>> zack@{upsilon.cc,pps.jussieu.fr,debian.org} -<>- http://upsilon.cc/zack/
>> Dietro un grande uomo c'è ..| . |. Et ne m'en veux pas si je te tutoie
>> sempre uno zaino ...........| ..: |.... Je dis tu à tous ceux que j'aime
>>
>>
>> _______________________________________________
>> Emacs-orgmode mailing list
>> Please use `Reply All' to send replies to the list.
>> Emacs-orgmode@gnu.org
>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2010-03-28 21:13 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-01-30 16:54 org-remember-AFTER-finalize-hook , anyone? Stefano Zacchiroli
2010-01-30 18:23 ` Ryan Thompson
2010-01-30 23:45 ` Stefano Zacchiroli
2010-03-28 21:12 ` Ryan Thompson
2010-03-28 21:13 ` Ryan Thompson
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).