organ-mode quickstart
installation
using nix
if you are using nix, you can grab lem with all the latest features with:nix run github:mahmoodsh36/lem#lem-webviewusing qlot
the repo at https://github.com/mahmoodsh36/lem is a fork that hasorgan-mode and cltpt pre-installed for use. i will be keeping the repo in sync with the upstream master branch as much as possible.
to install lem from this branch you can just install it like you would install lem from the upstream master branch. after cloning this repo, you may follow the instructions at https://lem-project.github.io/installation/webview/ to install.
theoretically, once you install the dependencies listed in the linked page, you only have to build:
# install CL dependencies
qlot install
# build the webview client
make webview
# launch the lem binary
./lemconfiguring files for roam/agenda
out of the box, only syntax highlighting and single-buffer workflows will be working. to get cross-file workflows (such asorgan-agenda and organ-roam) and make organ-mode aware of your notes, we may use the following minimal configuration:
(setf organ:*organ-files*
'((:path ("/home/<user>/notes1/"
"/home/<user>/notes2/")
:glob "*.org"
:format "org-mode")))using organ-roam/organ-agenda
after having configured*organ-files* we may now use be able to use things like roam-find and agenda-mode-open. roam-find will give us a list of entries from our notes (files, headers, blocks) that we may be able to navigate to.
if we set
*organ-files* to point to the files we have in the tests dir of the cltpt codebase like:
(setf organ:*organ-files*
`((:path "cltpt/tests/"
:glob "*.org"
:format "org-mode")))roam-find (or the keybinding C-c r r), we may get a prompt like the following which allows us to navigate to different nodes in the files (make sure you have *automatic-tab-completion* enabled for auto-completion).
we may also be able to use
agenda-mode-open which is bound to C-c r a and is also aware of our org files. this will give us a popup similar to the following:
some of the keys you recognize from org-agenda such as
C-c C-t to change the task state already work in the agenda buffer and in organ-mode buffers too.
before starting the agenda, when hitting
C-c r, you get a list of options throguh the transient interface that you can modify such as the date display range:
using organ-capture
to use the "capture" functionality we may define some capture templates. the default ones are:(defvar *organ-capture-templates*
'((:key #\d
:name "default"
:dir "notes/"
:if-new "#+title:
#+date: %(organ/utils:format-timestamp)"
:entry "
* TODO %organ/capture::cursor"
:filename "todos.org")
(:key #\n
:name "new note"
:dir "notes/"
:if-new "#+title:
#+date: %(organ/utils:format-timestamp)
#+filetags: :note:
#+identifier: %(organ/capture:unique-timestamp \"notes/\")"
:filename "%(organ/capture:unique-timestamp \"notes/\").org")))C-c r n d will then open a new file with initial contents (if its the first time) and a header with a TODO entry. and C-c r n n will open a new file with pre-inserted contents each time, using the current unix timestamp. these files default to the relative directory "notes/". you may modify this variable to point to a choice directory of your own and modify the templates to your linking.
interactive navigation and modification operations
the documentation Has a more extensive list of the navigation/modification keybindings. the goal is to implement most (or all) of the keybindings that org-mode has and keep them the same. many keybindings that org has such asC-c C-n or C-c C-p for finding the next/previous header (respectively) are already supported. context-sensitive operations are also supportive and the transient popup should keep them dimmed out or highlighted according to the current context in the buffer.
an example screenshot with some context-sensitive keybindings enabled and others dimmed out:
conversion to latex/html
conversion to latex and html is already possible using the export dispatch.conversion to webapp
the publish dispatch is also available via the public organ-keymap which is available throughC-c r. the keybinding for publishing to a webapp is C-c r c p.