emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: "Michaël Cadilhac" <michael@cadilhac.name>
To: Leo Gaspard <orgmode@leo.gaspard.io>
Cc: Org-Mode mailing list <emacs-orgmode@gnu.org>
Subject: Re: org-clock: Custom shortcuts for C-u C-c C-x C-i
Date: Fri, 30 Aug 2019 12:38:51 -0500	[thread overview]
Message-ID: <CADt3fpPfgBpuboDCh4=-pYosSo0JHFfbGkGh-yaMFe4X345DBQ@mail.gmail.com> (raw)
In-Reply-To: <CADt3fpOvxTtnq-zLq8Hf4-zSFGrrzDO6-2yRF4JSp9TtLAM2vg@mail.gmail.com>


[-- Attachment #1.1: Type: text/plain, Size: 838 bytes --]

By the way, I've been using this for quite some time, and I find it quite
useful.  It may be worth considering it for inclusion—see attached patch.
Opinions?



On Thu, 14 Feb 2019 at 06:32, Michaël Cadilhac <michael@cadilhac.name>
wrote:

> Hi Leo;
>
> On Wed, 13 Feb 2019 at 17:46, Leo Gaspard <orgmode@leo.gaspard.io> wrote:
> > Michaël Cadilhac <michael@cadilhac.name> writes:
> > > This is not possible out of the box; can you say a bit more about how
> > > you expect to indicate which tasks are to be always present?
> >
> > I would be thinking of something like defining a list of key -> link to
> > a task (that may be generated with org-id's task ID, [[*foobar]] links
> > or whatever) in my `init.el`.
>
> Alright, can you give this patch a spin and see if that's what you want?
>
> Cheers;
> M.
>

[-- Attachment #1.2: Type: text/html, Size: 1344 bytes --]

[-- Attachment #2: 0001-org-clock-let-user-provide-a-list-of-default-clock-i.patch --]
[-- Type: text/x-patch, Size: 1991 bytes --]

From aef6f6d3ab5999953ff83f5cc9b7c0ad26c5cd2f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C3=ABl=20Cadilhac?= <michael@cadilhac.name>
Date: Fri, 30 Aug 2019 12:28:58 -0500
Subject: [PATCH] org-clock: let user provide a list of default clock-in tasks.

* lisp/org-clock.el (org-clock-default-tasks): New variable.
(org-clock-select-task): Implement it.
---
 lisp/org-clock.el | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/lisp/org-clock.el b/lisp/org-clock.el
index 9e64645cb..b8523e3e1 100644
--- a/lisp/org-clock.el
+++ b/lisp/org-clock.el
@@ -168,6 +168,18 @@ which case all digits and capital letters are used up by the
   :group 'org-clock
   :type 'integer)
 
+(defcustom org-clock-default-tasks nil
+  "Default tasks that always appear in the clock-in dialog.
+This should be a list of pairs (KEY . ID), where KEY is the key
+used to select the task, and ID is the unique identifier of the
+task."
+  :group 'org-clock
+  :version "26.2"
+  :package-version '(Org . "9.3")
+  :type '(repeat (cons :tag "Key and ID"
+		       (character :tag "Access key")
+		       (string    :tag "Task ID"))))
+
 (defcustom org-clock-goto-may-find-recent-task t
   "Non-nil means `org-clock-goto' can go to recent task if no active clock."
   :group 'org-clock
@@ -626,6 +638,15 @@ there is no recent clock to choose from."
 		       (+ i (- ?A 10))) m))
 	    (if (fboundp 'int-to-char) (setf (car s) (int-to-char (car s))))
 	    (push s sel-list)))
+	(let (has-elt m)
+	  (dolist (charid org-clock-default-tasks)
+	    ;; Only add tasks that actually exist
+	    (when (setq m (org-id-find (cdr charid) 'marker))
+	      (unless has-elt
+		(setq has-elt t)
+		(insert (org-add-props "Default Tasks\n" nil 'face 'bold)))
+	      (setq s (org-clock-insert-selection-line (car charid) m))
+	      (push s sel-list))))
 	(run-hooks 'org-clock-before-select-task-hook)
 	(goto-char (point-min))
 	;; Set min-height relatively to circumvent a possible but in
-- 
2.23.0


      reply	other threads:[~2019-08-30 17:39 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-11 16:29 org-clock: Custom shortcuts for C-u C-c C-x C-i Leo Gaspard
2019-02-13 13:23 ` Michaël Cadilhac
2019-02-13 17:46   ` Leo Gaspard
2019-02-14 12:32     ` Michaël Cadilhac
2019-08-30 17:38       ` Michaël Cadilhac [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CADt3fpPfgBpuboDCh4=-pYosSo0JHFfbGkGh-yaMFe4X345DBQ@mail.gmail.com' \
    --to=michael@cadilhac.name \
    --cc=emacs-orgmode@gnu.org \
    --cc=orgmode@leo.gaspard.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).