Bitbar is a macos application that can add custom menu bar buttons.
I’m recently learning managing projects with org-mode. And we all know that org-agenda is great.
So I write a bitbar plugin, agenda to display some of my agenda in menu bar.
- It can display your chosen org-agenda-custom-commands in menu bar.
- Support customize color for priority.
- Support different color for filter.
- Make item with links clickable(only support http/https url).
Like this.
User need to specify the command to export the agenda-view to txt file.
I’m using emacs –batch feature to generate the txt file silently. There may
better way for doing this, like org-batch-agenda (check out here). But when my
emacs configuration piles up, there’s lots of initializing message which makes
it hard to extract the agenda-view data. So I just use the org-agenda-write
command to write agenda-view to disk.
emacs --batch -l ~/.emacs.d/init.el --eval "(run-hooks 'emacs-startup-hook)" \
--eval '(progn (org-agenda nil "r") (org-agenda-write "~/agendas/work/todos.txt") (spacemacs/kill-emacs))'Note: for spacemacs user, you need to add (run-hooks 'emacs-startup-hook) to
let emacs read your dotspacemacs/user-config (issue#4504).
For using this plugin. You need to specify agenda_directory agenda_file_name.
# Change to your todo directory path
agenda_directory = "#{Dir.home}/agendas/work/"
agenda_name = 'todos.txt'And also the agenda custom command key, you may in your configuration file, you
can find your setting using (describe-variable 'org-agenda-custom-commands).
# the agenda custome command which brings the agenda view that you want to export
agenda_custome_command = 'B'The problem of using --batch is to really kill emacs.
# function to REALLY kill emacs
# for spacemacs user use (spacemacs/kill-emacs)
# kill_emacs_function = '(spacemacs/kill-emacs)'
kill_emacs_function = '(let (kill-emacs-hook) (kill-emacs))'You can also change colors of filter line and lines with priority.
# Change priority color here
tag_color = 'orange'
# Customise label color-code here (these colors are optimised for a dark theme menubar)
labels = {
'[#A]' => 'red',
'[#B]' => 'yellow',
'[#C]' => 'violet'
}If you use pacakges that will change filters’ format in agenda view, you need to
specify tag_indicator .
tag_indicator = 'Headlines with TAGS match: 'Current version don’t support agenda-view when you add, say you add the below
code in the chosen org-agenda-custom-commands.
(agenda ((org-agenda-ndays 7)))