👋 Hello there, wonderful beorg users! It has been some time since I last wrote to you all in beorg news. In this newsletter I'll catch you all up on some of the changes in beorg over the past few months.
What's new
Tags
A number of users got in touch to talk to me about tag names. It turns out that beorg was being far too restrictive in what it considered a valid tag name. Emoji's and vast numbers of Unicode characters weren't allowed 🤐. This has been fixed over the past two beorg releases. Hopefully now tag names are flexible enough for everyones use cases. Let me know if I still haven't got this 100% correct.
Syncing
For a long time now, when beorg is syncing, a little message has appeared, and then stayed there, at the top of the screen. This often got in the way of UI you wanted to interact with. Therefore, in beorg 3.22.0, this message has been completely removed, and better use is made of the swoosh that appears underneath the navigation bar.
Calendar
beorg has had the ability to view calendar entries for some time now. However, the UI in beorg was more limited than your calendar app. In the latest update, I've taken advantage of a built-in iOS API, and now you can tap a calendar entry and get a much nicer UI for both viewing and editing the entry. If you miss the more barebones approach of previous beorg releases, you can turn this off on the Settings tab. Just switch off "Use system Calendar UI" underneath the "Calendar and Reminders" heading to revert.
Ignoring files
If you are a big user of Org mode, and Org roam in Emacs, you may have directories filled with thousands of .org files - not all of which you want to sync with beorg. You can now utilise the beorg init.org file and a little Scheme to gain control over what beorg synchronises. Here is a small example that demonstrates how to ignore the file private.org and all files in the folders ignore1 and ignore2.
(define (sync-ignore-file path) (check-prefixes path '("ignore1/" "ignore2/" "private.org")))
Don't forget, you can view the full changelog from within beorg. Just tap, "What's New in beorg" from the Settings tab.
library.org
When talking about customising beorg, I'll often mention the need to create an init.org file. This is a file you can create in beorg, into which you can add some Scheme code. Scheme is a Lisp-based programming language, and you can find lots of tutorials for it with a quick web search.
The init.org file is a standard beorg file that takes advantage of source blocks in which the Scheme is enclosed. Here is a simple example containing the code shown above:
* Sync customisations
#+begin_src scheme
(define (sync-ignore-file path) (check-prefixes path '("ignore1/" "ignore2/" "private.org")))
#+end_src scheme
In the above the Scheme code is housed between the #+begin_src scheme
and #+end_src scheme
. Anything outside of this is ignored when beorg reads and executes the file.
When beorg starts, it reads in some Scheme code bundled with the app. This file contains lots of useful functions, and most of the variables that you can customise.
To access the version of library.org which comes with your copy of beorg:
Go to the Settings tab
Start the REPL (a little command line in which you can test out some Scheme), by tapping the button top right on the screen
Tap the REPL help button, again top right
Choose "View library.org"
If you are looking to customise something in particular the library.org file will give you an idea of whether it's possible.
Thank you!
If you’ve enjoyed this month’s newsletter, why not subscribe and have it delivered straight to your inbox 📨?
If anything you’ve read here sparks any questions or thoughts please post them on the beorg forum. Thanks for reading!