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 do plan on recognising and supporting drawers in a future release. I'll take a look at how Orgzly presents these to the user as part of planning how I intend this to work. Support the PROPERTIES drawer will enable a number of additional features so I am keen to do this relatively soon.


3 people like this

I have started work on support for drawers, including special recognition of PROPERTIES and LOGBOOK drawers. Such drawers will be hidden by default when exporting files/items and in notifications. You'll certainly be able to search for items with specific properties - for example "t shopping r shop supermarket" will find times tagged with "Shopping" and where a property "SHOP" is set to "Supermarket" (note search will be case insensitive).


This is likely to be released at the end of July/beginning of August.


3 people like this

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

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
Many thanks! Looking forward to full drawers support and much more! Thanks and good luck!

1 person likes this

One feature for drawers that would be particularly nice for me would be logging repeated tasks into the :LOGGING: drawer as right now I do have the option logdrawer set in my orgmode files but when I mark repeating tasks off as done in beorg, it puts it outside of the logging drawer which also seems to lead to all sorts of other problems when working directly with orgmode. That said, this is less of a needed feature as a simple fix would just be to not log it into a drawer - but I do find this feature quite useful especially with tasks that use the "habit" style.


1 person likes this

Thanks for the clarification on this request. I guess there are a number of things to implement:


1. Getting beorg to parse drawers and then update/read the property drawer programatically

2. In the outliner there should be a way of expanding/collapsing drawers

3. When HTML is rendered (for use when showing notes in the item editor and for document export) drawers should be hidden as it doesn't make sense to show them here


1 person likes this
What is the status of drawer visibility cycling? I still see property drawers, and there's no obvious way to hide them.

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?



This is something I need to revisit at some point. So unfortunately no progress on this.

Login or Signup to post a comment