# Any other emacs/org-mode nerds here?

**URL:** <https://forum.johnnydecimal.com/t/any-other-emacs-org-mode-nerds-here/2816>\
**Category:** JDHQ\
**Created:** [October 15, 2025, 2:37pm UTC](https://forum.johnnydecimal.com/t/any-other-emacs-org-mode-nerds-here/2816 "2025-10-15T14:37:18Z")\
**Posts on this page:** 17\
**Page:** 1

<div class="post-metadata">

**Author:** ![petrichor](https://forum.johnnydecimal.com/user_avatar/forum.johnnydecimal.com/petrichor/32/1627_2.png) [@petrichor](https://forum.johnnydecimal.com/u/petrichor)\
**Post date:** [October 15, 2025, 2:37pm UTC](https://forum.johnnydecimal.com/t/any-other-emacs-org-mode-nerds-here/2816/1 "2025-10-15T14:37:18Z")

</div>

I’m setting up my life admin and small business systems in parallel, and since I already use emacs and org-roam for my notes it made sense to use that for a jdex too. So far I have:

1. Converted the markdown JDex files from the templates to org and reorganised them to have a top level `#+title:` and `:ID:` for org-roam to index
2. Pushed each JDex file to be `00index.org` in the appropriate category folder, so I can quickly navigate to that with org-roam and then `find-file` will start in the category by default
3. Started using marginalia annotations to display system, area & category in `org-roam-node-find` completions buffer

What other emacs tips & tricks have you got for me?

---

<div class="post-metadata">

**Author:** ![bbud](https://forum.johnnydecimal.com/letter_avatar_proxy/v4/letter/b/9d8465/32.png) [@bbud](https://forum.johnnydecimal.com/u/bbud)\
**Post date:** [October 16, 2025, 11:39pm UTC](https://forum.johnnydecimal.com/t/any-other-emacs-org-mode-nerds-here/2816/2 "2025-10-16T23:39:44Z")

</div>

M-x say-hello,

I have been using org-mode and org-roam for a while and recently started using JD system.

I am stoked by how convenient its to have an org file that acts as an index and jump to a JD directory from there. I will share my structure a little bit later.

But there is one annyoyance that i have run into … Started to use ‘space’ in the directory names since migrating to JD. When i store the directory path in an org file with full path, the letters group around ‘/’. For now I have worked around this by using a minor mode that visually replaces / with ’ \> '.

This is just fresh in my memory because i worked on it yesterday. But overall feel more in control.

Welcome to the community!

---

<div class="post-metadata">

**Author:** ![bbud](https://forum.johnnydecimal.com/letter_avatar_proxy/v4/letter/b/9d8465/32.png) [@bbud](https://forum.johnnydecimal.com/u/bbud)\
**Post date:** [October 17, 2025, 12:05am UTC](https://forum.johnnydecimal.com/t/any-other-emacs-org-mode-nerds-here/2816/3 "2025-10-17T00:05:32Z")

</div>

A favorite Emacs hack of mine is using the equivalent of `cdj` in Emacs. I have mapped it to `C-c j d`, which asks for AC.ID and opens that directory in dired mode for browsing. Super-useful for directories you visit often.

---

<div class="post-metadata">

**Author:** ![bbud](https://forum.johnnydecimal.com/letter_avatar_proxy/v4/letter/b/9d8465/32.png) [@bbud](https://forum.johnnydecimal.com/u/bbud)\
**Post date:** [October 17, 2025, 5:48am UTC](https://forum.johnnydecimal.com/t/any-other-emacs-org-mode-nerds-here/2816/4 "2025-10-17T05:48:09Z")

</div>

Here I am back again with more details. I will take this opportunity to capture how I have setup JD system using the Emacs org-mode.

## My legacy system before JD

```auto
|------------+----------------------------------------------------------------------------------|
| ~/orgs | legacy has different org files for different aspects e.g. home.org work.org etc, |
| ~/orgsroam | legacy knowledge system |
| ~/orgzly | has orgs file which syncs with mobile |
|------------+----------------------------------------------------------------------------------|

```

## What I did

1. Decided to leave my existing system as is i.e. they will be agnostic of JD system, in case I had to fallback. But JD system will be aware of my existing system if required.

2. Decided to go with one monolithic JDEX i.e. I took all the \*.md file in the flat layout and scrunched into one big `00.00 - JDEX.org`. Each directory level is a heading and sub-directories are sub-headings. Refer: [One jdex file in Emacs org-mode](https://forum.johnnydecimal.com/t/one-jdex-file-in-emacs-org-mode/2787). I placed this outside of JD file system under `~/orgzly/` so that it syncs to my mobile and is available to me on the go on my phone also.

3. I use `~/jdfs` to hold all JD IDed directories and corresponding files

4. I have also moved `10.02 Life Projects and Tasks Management.org` to `~/orgzly/`

### Legacy Orgs

I am slowly migrating my legacy ~/orgs/\*.orgs to 10.02 Project and Tasks [Management.org](http://Management.org) without distrubing my day to day tasks.

### Orgs Roam

I considered using this for JD system with but it already has many titles which start a numbering scheme AB.CD which is unrealted to JD. So I cannot introduce AC.ID numbers here as it will clash with existing reference numbers . I will keep using the orgs roam as a separate system. Ofcourse `00.00 - JDEX.org` will have references to it when required.

## My current system

```auto
|------------+————————————————————————————————————|
| ~/orgs | slowly migrating to JD or 10.02-Projects-and-Tasks.org under ~/orgzly |
| ~/orgsroam | continue to use this knowledge system |
| ~/orgzly | syncs to mobile, contains: 00.00-JDEX.org, 10.02-Project and Tasks.org |
| ~/jdfs | JD file system |
|------------+————————————————————————————————————|

```

## Tricks

A trick if i may call that is to define `my-jdsys-open-dir` elisp function which will ask for AC.ID and open the directory location in dired mode within emacs. And bind this function call to keys  
`C-c j d`. This was inspired by the `cdj` bash function under tools. I use this quite often.

## To consider

Only thing I would do differently is not use spaces in the file and directory names. I have worked around the my annoyance as I mentioned in my previous post.

---

<div class="post-metadata">

**Author:** ![lisa](https://forum.johnnydecimal.com/user_avatar/forum.johnnydecimal.com/lisa/32/1648_2.png) [@lisa](https://forum.johnnydecimal.com/u/lisa)\
**Post date:** [October 23, 2025, 1:19am UTC](https://forum.johnnydecimal.com/t/any-other-emacs-org-mode-nerds-here/2816/5 "2025-10-23T01:19:39Z")

</div>

Would you mind sharing your elisp function? I’d love to use this.

---

<div class="post-metadata">

**Author:** ![bbud](https://forum.johnnydecimal.com/letter_avatar_proxy/v4/letter/b/9d8465/32.png) [@bbud](https://forum.johnnydecimal.com/u/bbud)\
**Post date:** [October 23, 2025, 2:29am UTC](https://forum.johnnydecimal.com/t/any-other-emacs-org-mode-nerds-here/2816/6 "2025-10-23T02:29:21Z")

</div>

Sure, iIhave it as a local package in ~/t/my\_jdsys.el

```auto
;;; my-jdsys.el --- JDFS helpers -*- lexical-binding: t; -*-
;; Simple helpers to jump around ~/jdfs/*/*/ab.cd*
;; (c) you — MIT
;;; Commentary:
;; M-x my-jdsys-open-dir → prompt for ab.cd → open matching directory.

;;; Code:
(defgroup my-jdsys nil
  "JDFS helpers."
  :group 'convenience)

(defcustom my-jdsys-root (expand-file-name "~/jdfs")
  "Root directory for JDFS."
  :type 'directory
  :group 'my-jdsys)

(defcustom my-jdsys-thing-regex "[0-9]+\\.[0-9]+"
  "Regex used to grab a default decimal like ab.cd at point."
  :type 'regexp
  :group 'my-jdsys)

(defun my-jdsys--default-decimal ()
  "Return ab.cd at point if it looks like a decimal, else empty string."
  (save-excursion
    (when (thing-at-point-looking-at my-jdsys-thing-regex)
      (match-string 0))))

;;;###autoload
(defun my-jdsys-open-dir (decimal)
  "Open directory under `~/jdfs/*/*/` matching DECIMAL (e.g., ab.cd)."
  (interactive
   (list (read-string "Enter decimal (ab.cd): " (or (my-jdsys--default-decimal) ""))))
  (let* ((pattern (expand-file-name (format "*/*/%s*" decimal) my-jdsys-root))
         (matches (seq-filter #'file-directory-p (file-expand-wildcards pattern))))
    (cond
     ((null matches)
      (user-error "No directory match for %s (pattern: %s)" decimal pattern))
     ((= (length matches) 1)
      (dired (car matches)))
     (t
      (dired (completing-read "Choose directory: " matches nil t))))))

(provide 'my-jdsys)
;;; my-jdsys.el ends here

```

From the init.el I use-package the like this:

```auto
;; Make sure the folder containing my-jdsys.el is on your load-path:

(use-package my-jdsys
  :load-path "~/t/elisp/"
  :ensure nil
  :commands (my-jdsys-open-dir)
  :init
  ;; Define the prefix map FIRST, so :bind :map has something to attach to.
  (define-prefix-command 'my-jdsys-map)
  (keymap-global-set "C-c j" 'my-jdsys-map)
  :bind
  (:map my-jdsys-map
        ("d" . my-jdsys-open-dir)))

```

Also you can also place the cursor on the AC.ID anywhere in the file while invoking the function and you will have that value populated as default.

---

<div class="post-metadata">

**Author:** ![lisa](https://forum.johnnydecimal.com/user_avatar/forum.johnnydecimal.com/lisa/32/1648_2.png) [@lisa](https://forum.johnnydecimal.com/u/lisa)\
**Post date:** [October 23, 2025, 1:18pm UTC](https://forum.johnnydecimal.com/t/any-other-emacs-org-mode-nerds-here/2816/7 "2025-10-23T13:18:02Z")

</div>

Thank you so much!

---

<div class="post-metadata">

**Author:** ![petrichor](https://forum.johnnydecimal.com/user_avatar/forum.johnnydecimal.com/petrichor/32/1627_2.png) [@petrichor](https://forum.johnnydecimal.com/u/petrichor)\
**Post date:** [October 23, 2025, 1:40pm UTC](https://forum.johnnydecimal.com/t/any-other-emacs-org-mode-nerds-here/2816/8 "2025-10-23T13:40:56Z")

</div>

Oooh, interesting, thanks! I am starting to collect my own bits and pieces here: [jezcope/org-jd: Integration of Johnny.Decimal standard folder layout with org & org-roam - Codeberg.org](https://codeberg.org/jezcope/org-jd)

---

<div class="post-metadata">

**Author:** ![TheMadCodger](https://forum.johnnydecimal.com/letter_avatar_proxy/v4/letter/t/ecccb3/32.png) [@TheMadCodger](https://forum.johnnydecimal.com/u/TheMadCodger)\
**Post date:** [March 24, 2026, 10:43pm UTC](https://forum.johnnydecimal.com/t/any-other-emacs-org-mode-nerds-here/2816/9 "2026-03-24T22:43:31Z")

</div>

Do you happen to have a template of your [jdex.org](http://jdex.org) file so as to not recreate the wheel? Also possibly so @johnnydecimal could add it to the auto configuration tool?

---

<div class="post-metadata">

**Author:** ![bbud](https://forum.johnnydecimal.com/letter_avatar_proxy/v4/letter/b/9d8465/32.png) [@bbud](https://forum.johnnydecimal.com/u/bbud)\
**Post date:** [March 25, 2026, 4:26am UTC](https://forum.johnnydecimal.com/t/any-other-emacs-org-mode-nerds-here/2816/10 "2026-03-25T04:26:06Z")

</div>

I do have it (and could easily find it because of the JD system ) … however I am concerned about sharing that file in this public forum, as it might bypass the purchase requirement and affect Johnny’s business model.  
@johnnydecimal any suggestions on how to securely share a single jdex file with other paid users and not affect your business ?

---

<div class="post-metadata">

**Author:** ![johnnydecimal](https://forum.johnnydecimal.com/user_avatar/forum.johnnydecimal.com/johnnydecimal/32/1759_2.png) [@johnnydecimal](https://forum.johnnydecimal.com/u/johnnydecimal)\
**Post date:** [March 25, 2026, 7:56am UTC](https://forum.johnnydecimal.com/t/any-other-emacs-org-mode-nerds-here/2816/11 "2026-03-25T07:56:13Z")

</div>

I appreciate the consideration, thank you. Perhaps @TheMadCodger would share their email address in a DM and you could send it to them directly?

May I have a copy as well? I’m building the new site now and will make sure it can generate these files. [hello@johnnydecimal.com](mailto:hello@johnnydecimal.com)

---

<div class="post-metadata">

**Author:** ![TheMadCodger](https://forum.johnnydecimal.com/letter_avatar_proxy/v4/letter/t/ecccb3/32.png) [@TheMadCodger](https://forum.johnnydecimal.com/u/TheMadCodger)\
**Post date:** [March 28, 2026, 10:44pm UTC](https://forum.johnnydecimal.com/t/any-other-emacs-org-mode-nerds-here/2816/13 "2026-03-28T22:44:42Z")

</div>

I’m m fine with dm’ing my email, but if @bbud shares it with you @johnnydecimal, I’m fine waiting until you’ve got the official version up in the configurator.

---

<div class="post-metadata">

**Author:** ![johnnydecimal](https://forum.johnnydecimal.com/user_avatar/forum.johnnydecimal.com/johnnydecimal/32/1759_2.png) [@johnnydecimal](https://forum.johnnydecimal.com/u/johnnydecimal)\
**Post date:** [March 29, 2026, 2:50am UTC](https://forum.johnnydecimal.com/t/any-other-emacs-org-mode-nerds-here/2816/15 "2026-03-29T02:50:17Z")

</div>

Gimme a couple of weeks and hopefully I’ll have a fully featured generator up. We’re pretty close.

---

<div class="post-metadata">

**Author:** ![bbud](https://forum.johnnydecimal.com/letter_avatar_proxy/v4/letter/b/9d8465/32.png) [@bbud](https://forum.johnnydecimal.com/u/bbud)\
**Post date:** [March 29, 2026, 12:54pm UTC](https://forum.johnnydecimal.com/t/any-other-emacs-org-mode-nerds-here/2816/16 "2026-03-29T12:54:16Z")

</div>

I have emailed the org file template to Johnny on 25th ish @johnnydecimal pls let me know if you haven’t received it.

---

<div class="post-metadata">

**Author:** ![petrichor](https://forum.johnnydecimal.com/user_avatar/forum.johnnydecimal.com/petrichor/32/1627_2.png) [@petrichor](https://forum.johnnydecimal.com/u/petrichor)\
**Post date:** [March 29, 2026, 3:15pm UTC](https://forum.johnnydecimal.com/t/any-other-emacs-org-mode-nerds-here/2816/17 "2026-03-29T15:15:50Z")

</div>

For completeness: I converted the standard markdown files to org-mode using the wonderful [pandoc](https://pandoc.org/).

---

<div class="post-metadata">

**Author:** ![TheMadCodger](https://forum.johnnydecimal.com/letter_avatar_proxy/v4/letter/t/ecccb3/32.png) [@TheMadCodger](https://forum.johnnydecimal.com/u/TheMadCodger)\
**Post date:** [May 10, 2026, 8:03pm UTC](https://forum.johnnydecimal.com/t/any-other-emacs-org-mode-nerds-here/2816/18 "2026-05-10T20:03:39Z")

</div>

Before I recreate the wheel, what did that look like for you? I just downloaded the Official ™ Johnny Decimal org file which is one large tree from 00­–15, whereas in Obsidian, there’s one markdown file per number. Converting from md to org is simple enough with pandoc, but any suggestions on encorporating that into the org tree?

---

<div class="post-metadata">

**Author:** ![johnnydecimal](https://forum.johnnydecimal.com/user_avatar/forum.johnnydecimal.com/johnnydecimal/32/1759_2.png) [@johnnydecimal](https://forum.johnnydecimal.com/u/johnnydecimal)\
**Post date:** [May 10, 2026, 11:30pm UTC](https://forum.johnnydecimal.com/t/any-other-emacs-org-mode-nerds-here/2816/19 "2026-05-10T23:30:03Z")

</div>

If people want to give me samples of other org layouts I’ll be happy to build them into the downloader. Not being a user myself I had a sample size of 1 and that’s what I replicated.
