From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bernt Hansen Subject: Re: Help with binding new key to change task state Date: Mon, 16 Feb 2009 10:33:45 -0500 Message-ID: <87mycm9z1i.fsf@gollum.intra.norang.ca> References: <57AC2FA1761300418C7AB8F3EA493C9702822185@HQ-EXCH-5.corp.brocade.com> <87zlgn9jqg.fsf@gollum.intra.norang.ca> <57AC2FA1761300418C7AB8F3EA493C97028221AE@HQ-EXCH-5.corp.brocade.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LZ5Tm-0007W9-2h for emacs-orgmode@gnu.org; Mon, 16 Feb 2009 10:33:54 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LZ5Tj-0007Ul-Be for emacs-orgmode@gnu.org; Mon, 16 Feb 2009 10:33:53 -0500 Received: from [199.232.76.173] (port=47461 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LZ5Tj-0007Ue-2H for emacs-orgmode@gnu.org; Mon, 16 Feb 2009 10:33:51 -0500 Received: from mho-02-bos.mailhop.org ([63.208.196.179]:64319) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1LZ5Ti-000530-OT for emacs-orgmode@gnu.org; Mon, 16 Feb 2009 10:33:50 -0500 In-Reply-To: <57AC2FA1761300418C7AB8F3EA493C97028221AE@HQ-EXCH-5.corp.brocade.com> (Varnit Suri's message of "Sun\, 15 Feb 2009 21\:09\:18 -0800") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Varnit Suri Cc: emacs-orgmode@gnu.org You could do something like this: (pick your favourite key) (global-set-key (kbd "") (lambda () (interactive) (org-todo 3))) For me my DONE state is the 3rd state. Find the prefix for the state you want (C-3 C-c C-t goes directly to DONE for me) and provide that value as the argument for org-todo. Then just C-f6 (or whatever key you like) and you're DONE. :) HTH, -Bernt "Varnit Suri" writes: > Thanks for your reply. The first trick worked fine. > > For the second problem though, I 'd not like to cycle through the > states. That's coz each time I change the state, I have to log it. > > So I am trying to define a single key that lets me jump straight to the > DONE state (from any other state). C-c C-t C-c works okay coz the last > 'c' chooses the DONE state from the menu. > > Any ideas how I can define a simpler key for this? Thanks. > > V. > > > -----Original Message----- > From: Bernt Hansen [mailto:bernt@norang.ca] > Sent: Sunday, February 15, 2009 6:52 PM > To: Varnit Suri > Cc: emacs-orgmode@gnu.org > Subject: Re: Help with binding new key to change task state > > "Varnit Suri" writes: > >> The org manual talks about using C-u C-c C-t to change the state of a >> task. This command nicely throws up a list of several intermediate >> states to choose from. In addition, I have logging turned on, so each >> time I do this, I can log a note about the state change. >> >> I am merely trying to bind this to a simpler set of keys. I know C-c > C-t >> is bound to org-todo, but can't figure out what C-u C-c C-t binds to >> (describe-key stops at C-u). Or then, maybe I don't know Emacs/Org > well >> enough yet. Any suggestions? > > C-c C-t and C-u C-c C-t both bind to the same function. The C-u just > provides a prefix value of 4 to the function so it can behave > differently (displaying the menu of todo choices) > > You probably want to set > > (setq org-use-fast-todo-selection t) > > so that C-c C-t shows the menu by default. > >> >> The second thing I am trying to do is have a shortcut to take a task >> from TODO to DONE without going through the above process. > > If you have your todo states defined in sequences you can use S-left > arrow and S-right arrow to cycle between the states quickly. > > I use the following TODO settings: > > (setq org-todo-keywords '((sequence "TODO(t)" "STARTED(s!)" "|" > "DONE(d!/!)") > (sequence "WAITING(w@/!)" "SOMEDAY(s)" "|" > "CANCELLED(c@/!)") > (sequence "QUOTATION(q!)" "QUOTED(Q!)" "|" > "APPROVED(A@)" "EXPIRED(E@)" "REJECTED(R@)") > (sequence "OPENPO(O!)" "|" "CLOSEDPO(C@)") > (sequence "|" "NOTE(n)" "PHONE(T)"))) > > so if I have a task > > * TODO Do something > > then S-right arrow moves to STARTED and a second time moves to DONE > > HTH, > Bernt