~bzg/emacsfr

2 2

org-capture lancé directement avec une touche de modèle

Details
Message ID
<3E5B54AE-7EC9-46A9-8CFE-50F91EED122C@traduction-libre.org>
DKIM signature
pass
Download raw message
Bonjour,

J'ai une touche "l" associée à un modèle donné dans mes modèles de capture.

;; choses faites dans la journée, très courtes, à mettre à jour au fur et à mesure
("l" "* accompli dans la journée, au fur et à mesure" entry (file+datetree "")
"* DONE [%<%H:%M>] %?   :log:" :prepend nil :unnarrowed t)


Quand je fais ça :

	(org-capture nil 'l)

avec eval-expression dans le minitampon, ça me dit

 "No capture template referred to by \"l\" keys"


Quand je fais la même chose dans le tampon *Scratch*, idem.

Emacs ne ment jamais, donc c'est moi qui beugue. Pourquoi/Comment ?


Je viens de trouver cet article qui utilise org-protocol avec emacsclient :

https://sleeplessbeastie.eu/2016/04/22/how-to-use-org-capture-from-system-tray/

et avec la nouvelle doc pour org-protocol :

https://orgmode.org/manual/The-capture-protocol.html

emacsclient "org-protocol://capture?template=l"

j'arrive à ce que je veux.

Mais j'aimerais bien savoir pourquoi ça ne va pas avec ma première solution.


En gros, à partir de macOS, j'ai une petite application en AppleScript que je lance avec Spotlight et qui me lance org-capture. Comme Spotlight n'est pas interactif (je ne peux pas ajouter de paramètre à l'application qui se lance) j'ai décidé de créer des mini-apps qui appellent le modèle voulu dans org-capture.

Par ex:

===
use AppleScript version "2.4" -- Yosemite (10.10) or later
use scripting additions

set myEmacs to "/Users/suzume/Documents/Repositories/emacs/nextstep/Emacs.app"
set myEmacsclient to "/Users/suzume/Documents/Repositories/emacs/nextstep/Emacs.app/Contents/MacOS/bin/emacsclient"
set myCaptureCommand to myEmacsclient & " -e \"(org-capture nil 'l)\" -n"
set myOrgProtocolCommand to myEmacsclient & " \"org-protocol://capture?template=l\""


try
	do shell script myOrgProtocolCommand
on error
	display alert "error"
end try
===

l'idée c'est donc d'avoir un truc non interactif directement dans l'application.


-- 
Jean-Christophe Helary @brandelune
https://traductaire-libre.org
https://mac4translators.blogspot.com
https://sr.ht/~brandelune/omegat-as-a-book/
Details
Message ID
<87o7tbrw37.fsf@alekos.net>
In-Reply-To
<3E5B54AE-7EC9-46A9-8CFE-50F91EED122C@traduction-libre.org> (view parent)
DKIM signature
missing
Download raw message
Bonjour,

> Quand je fais ça :
>
> 	(org-capture nil 'l)
>
> avec eval-expression dans le minitampon, ça me dit
>
>  "No capture template referred to by \"l\" keys"

Ce me semble une petite erreur de syntaxe. Je doute que ce l puisse être un
symbole dans ce contexte. Est-ce que `(org-capture nil "l")' produit le
même souci ?

La doc de la fonction `org-capture’ renvoie pour l’argument “clés
[keys]” à la doc de la variable `org-capture-templates’, laquelle
utilise des guillemets.

      keys         The keys that will select the template, as a string,
                   characters only, for example “a” for a template
                   to be selected with a single key, or “bt” for
                   selection with two keys. When using several
                   keys, keys using the same prefix key must be
                   together in the list and preceded by a
                   2-element entry explaining the prefix key, for
                   example

                   (“b” “Templates for marking stuff to buy”)

En espérant que ce ne soit rien de plus complexe...
v
Details
Message ID
<DD146C96-483A-46E4-9033-E2EAA9818D52@traduction-libre.org>
In-Reply-To
<87o7tbrw37.fsf@alekos.net> (view parent)
DKIM signature
pass
Download raw message

> On Nov 13, 2022, at 19:03, <v@alekos.net> <v@alekos.net> wrote:
> 
> Bonjour,
> 
>> Quand je fais ça :
>> 
>> 	(org-capture nil 'l)
>> 
>> avec eval-expression dans le minitampon, ça me dit
>> 
>> "No capture template referred to by \"l\" keys"
> 
> Ce me semble une petite erreur de syntaxe. Je doute que ce l puisse être un
> symbole dans ce contexte. Est-ce que `(org-capture nil "l")' produit le
> même souci ?

Aaah, oui, 'l est un symbole et pas un string...

Effectivement, ça marche.

Merci infiniment !

Et moi qui a passé la journée à goupiller un truc avec org-protocol en remplacement...

D'un autre côté org-protocol semble permettre des choses que org-capture n'autorise pas.

https://mac4translators.blogspot.com/2022/11/new-capture-app-with-org-protocol-this.html

> La doc de la fonction `org-capture’ renvoie pour l’argument “clés
> [keys]” à la doc de la variable `org-capture-templates’, laquelle
> utilise des guillemets.

Oui, mais ça n'est pas transparent comme explication :

"ELisp programs can set KEYS to a string associated with a template
in org-capture-templates.  In this case, interactive selection
will be bypassed."

Mais j'ai effectivement zappé le "string".

Jean-Christophe 


> 
>      keys         The keys that will select the template, as a string,
>                   characters only, for example “a” for a template
>                   to be selected with a single key, or “bt” for
>                   selection with two keys. When using several
>                   keys, keys using the same prefix key must be
>                   together in the list and preceded by a
>                   2-element entry explaining the prefix key, for
>                   example
> 
>                   (“b” “Templates for marking stuff to buy”)
> 
> En espérant que ce ne soit rien de plus complexe...
> v

-- 
Jean-Christophe Helary @brandelune
https://traductaire-libre.org
https://mac4translators.blogspot.com
https://sr.ht/~brandelune/omegat-as-a-book/
Reply to thread Export thread (mbox)