Start a new topic

Drawers support

Drawers are a standard feature of org mode described in the manual https://orgmode.org/manual/Drawers.html They look like: ** This is a headline Still outside the drawer :DRAWERNAME: This is inside the drawer. :END: After the drawer. They can be folded or unfolded with the usual visibility cycling. On Android orgzly they are supported, and I use them there to hide code that is emacs dependent. Presently beorg simply ignore them. Drawers are also used for PROPERTIES, which are also ignored by beorg. It would be nice to add them at least in visibility cycling to ensure compatibility with beorg and orgzly.

2 people like this idea

I’d like to add in to this about drawers if I may. When marking repeating tasks as done, could we specify a drawer to contain these completions? Emacs has `log-to-drawer` that I use on my computer and it works very well for all the habits I keep track of, but I always end up manually shuffling the text around after a completion ticked in beorg.

In beorg this is called org-log-into-drawer - setting that to something other than #f will log state changes and clock/timer entries. Note that clock/timer entries default to LOGBOOK so even if #f they get put into a drawer.


1 person likes this

Matthew, I'm a little confused about your reply to Stephen Walsh. To me it suggests that we can log state changes into a drawer by setting org-log-into-drawer to #t. I also use org-mode to track habits, and I log todo state changes into LOGBOOK. I'd like to replicate this functionality in Beorg. In my init.org file, I have  (defvar org-log-into-drawer #t), but this doesn't alter the way Beorg logs todo state changes. Am I missing something here? I'm not too technically proficient, but I believe I can follow instructions relatively well. If it's relevant, I've purchased all extensions except the ones for Encryption and Properties. Any help would be greatly appreciated. 

Matthew, I'm a little confused about your reply your response to Stephen Walsh. To me it suggests that we can log state changes into a drawer by setting org-log-into-drawer to #t. I also use org-modes to track habits, and I log todo state changes into LOGBOOK. I'd like to replicate this functionality in Beorg. In my init.org file, I have (defvar org-log-into-drawer #t), but this doesn't alter the way Beorg logs todo state changes. Am I missing something here? I'm not too technically proficient, but I believe I can follow instructions relatively well. If it's relevant, I've purchased all extensions except the ones for Encryption and Properties. Any help would be greatly appreciated. 

Currently beorg only logs state changes for repeating entries. I hope to look at adding support for logging all state changes at some point in the near future.

Thank you for your reply, Matthew. I was imprecise in my original post. My aim is to log repeating tasks in Beorg into the same LOGBOOK drawer Emacs uses. TODO state changes logged in Beorg are currently logged directly beneath TODO headings. I assumed I could use  (defvar org-log-into-drawer #t)--similar to the way I use 'log-to-drawer' in Emacs-- but that doesn't achieve the desired functionality. I find myself in the same position as Stephen Walsh; I have to move 'text around after a completion ticked in Beorg.' If the functionality I'm seeking isn't available in Beorg, that's okay, but if it is, could you point me in the direction of a solution? And sorry for hijacking this thread. 

In your init.org you should be able to do (for example):


(set! org-log-into-drawer "LOGBOOK")


or similar. The default for this is #f which tells beorg not to log entries into a drawer.


Check out https://www.beorg.app/manual/library-org/ for the default org file beorg loads which sets up the variables you can modify.

I just tried to create an `init.org` file and just added the following content:

```

* Drawer

#+begin_src scheme

(toast "init loaded" "logbook")

(set! org-log-into-drawer "LOGBOOK")

#+end_src

```


I don't see the toast at the startup of beorg (even if I close it and reopen it).

And apparently the option to log into the drawer does not appear to work.


I am missing something?

The init.org file is read before the UI is fully up and running - so a toast in the init.org won't do anything at that point.


The org-log-into-drawer variable in beorg only works with state changes for repeating items and clock/timer entries in. For which events are you not seeing it work for? Hopefully at some point in the future I will extend support to all state changes.

Matthew, I haven't touched this in awhile, but I'm still having trouble with logging to the LOGBOOK based on the recommendation above. I'm not sure what I'm missing. In my init.org file (which lives in the root of my Dropbox sync directory I have the below:


```

#+begin_src scheme

(set! org-log-into-drawer "LOGBOOK")

(set! org-clock-into-drawer "LOGBOOK")

#+end_src

```


For the below task, you can see that marking as done, logs NOT to the LOGBOOK, but between PROPERTIES and LOGBOOK. As far as I can tell this is a repeating task as you have stated needs to be the case.


What should be different in my setup here?


** TODO Evening brush :HEALTH:

SCHEDULED: <2021-01-14 Thu 19:00 ++1d>

:PROPERTIES:

:STYLE: habit

:END:

- State "DONE" from "TODO" [2021-01-12 Tue 10:49]

:LOGBOOK:

- State "DONE" from "NEXT" [2021-01-12 Tue 10:49]

- State "DONE" from "NEXT" [2021-01-10 Sun 08:37]

- State "DONE" from "NEXT" [2021-01-09 Sat 08:37]

- State "DONE" from "NEXT" [2021-01-06 Wed 20:26]

:END:


I thought I had replied earlier today, so forgive me if this shows up as a duplicate. I have the below in my init.org


#+begin_src scheme
(set! org-log-into-drawer "LOGBOOK")
(set! org-clock-into-drawer "LOGBOOK")
#+end_src

 

When I mark this item as done in beorg, this is what happens.


 

** NEXT Evening brush :HEALTH:
SCHEDULED: <2021-01-12 Tue 19:00 ++1d>
:PROPERTIES:
:STYLE: habit
:REPEAT_TO_STATE: NEXT
:END:
- State "DONE" from "NEXT" [2021-01-11 Mon 18:53]
:LOGBOOK:
- State "DONE" from "NEXT" [2021-01-10 Sun 08:37]
- State "DONE" from "NEXT" [2021-01-09 Sat 08:37]
- State "DONE" from "NEXT" [2021-01-06 Wed 20:26]
:END:


As far as I can tell, this is a repeating item, but it's not logging to the LOGBOOK as expected.


What should change here to make this work?



Thank you posting this information. I will try and look at this over the next few days and get back to you with either finding a bug or the correct configuration.

Earlier in this thread you said:


> Currently beorg only logs state changes for repeating entries. I hope to look at adding support for logging all state changes at some point in the near future.


Is this still true? I have been trying to get my 'DONE' state changes to go into the LOGBOOK drawer for non-repeating entries but it doesn't seem to be working. My init.org is:

 

This file is loaded by beorg (the iOS org-mode app)

#+begin_src scheme
  (set! org-log-into-drawer "LOGBOOK")
  (set! org-log-done #t)
#+end_src

 

I've confirmed that `org-log-into-drawer` is indeed set to "LOGBOOK".  It doesn't seem to matter whether `org-log-done` is set to #t or #f.


For reference, my emacs config has these settings:

 

  (setq org-todo-keywords
        '((sequence "TODO(t)" "BLOCKED(b!/!)" "|" "CANCELED(c!/!)" "DONE(d!/!)")))
  (setq org-log-reschedule 'time)
  (setq org-log-redeadline 'time)
  (setq org-log-into-drawer t)
  (setq org-log-done nil) ; don't add CLOSED line because we're logging in the logbook

 

Thank you for the reminder about this feature request - "near future" has long gone! I will look to include some functionality similar to this in the next update (I've just added the code for this so this is much more definite than last time!)


1 person likes this
Fantastic, thanks for being so responsive!
Login or Signup to post a comment