Dear all,

Here are the long overdue meetup notes from the meetup before previous.
(Finally getting back to more stable schedules)

TL;DR: xclip-mode + org-refile bug; org-transclusion bug; org-include-inline;
transcluding code files into Org; MCP tool experiments; various ways
to auto-list backlinks; filetags - predecessor idea for denote; including
logbook records in agenda; repeated timestamps - scheduling a single event
to other day; org-class; links inside links and image previews;
org-capture'ing URLs

- As usual, we started from the latest Emacs news
  https://sachachua.com/blog/2025/08/2025-08-11-emacs-news/
- Jacob S. Gordon shared (and showcased) a bug where org-refile does not 
interact well
  with xclip-mode (https://elpa.gnu.org/packages/xclip.html)
  - xclip-mode fiddles with the kill ring and org-refile internally uses
    the kill ring to carry around the refiled subtree (do not ask me
    why, although it is exactly what karthink did), leading to problems
  - I believe that the bug should be now fixed in
    
https://cgit.git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?id=f974e85c07e80615bd35d58d3ba564b9a8ff0df9

- Nick Anderson reported an issue with org-transclusion
  - when org-indent-mode is active, the indentation is sometimes
    broken in the transcluded text
  - we tried to find the cause interactively, without much success (as
    I remember by now - I am writing this two months after the meetup)
- org-transclusion is a pretty complex package, with many features
  - There is also https://github.com/yibie/org-include-inline
    if one needs something simpler and more reliable
- Morgan asked about including non-Org text into Org files using 
org-transclusion
  - It should be possible with
    
https://nobiot.github.io/org-transclusion/#Transclude-source-file-into-src_002dblock

- We then moved to a bit of a tangent - MCP tools
  - I had some experiments in my scratch buffer and someone noticed :)
  - MCP tools are for LLMs. In my case, it was playing around
    mcp-hub + gptel
    #+begin_src emacs-lisp
      (use-package mcp
        :straight t
        :after gptel
        :custom (mcp-hub-servers
                 `(;; ("filesystem" . (:command "npx" :args ("-y" 
"@modelcontextprotocol/server-filesystem" "/home/lizqwer/MyProject/")))
                   ;; ("fetch" . (:command "uvx" :args ("mcp-server-fetch")))
                   ("anki-mcp-server" . (:command "node" :args 
("/home/yantar92/Dist/anki-mcp-server/build/index.js")))
                   ;; ("qdrant" . (:url "http://localhost:8000/sse";))
                   ;; ("browser-use-mcp-server" . (:url 
"http://localhost:8000/sse";))
                   ;; ("server-puppeterr" . (:command "npx" :args ("-y" 
"@modelcontextprotocol/server-puppeteer")))
                   ;; ("octagon" . (:command "npx" :args ("-y" 
"octagon-deep-research-mcp@latest")))
                   ;; ("google-docs-mcp" . (:command "node" :args 
("/home/yantar92/test/mcp-googledocs-server/dist/server.js")))
                   ;; ("jupyter" . (:command "docker" :args ("run" "-i" "--rm" 
"--network=host" "-e" "ROOM_URL=http://localhost:8888"; "-e" 
"ROOM_TOKEN=MY_TOKEN" "-e" "ROOM_ID=notebook.ipynb" "-e" 
"RUNTIME_URL=http://localhost:8888"; "-e" "RUNTIME_TOKEN=MY_TOKEN" 
"datalayer/jupyter-mcp-server:latest")))
                   ;; ("graphlit" . (
                   ;;                :command "npx"
                   ;;                :args ("-y" "graphlit-mcp-server")
                   ;;                :env (
                   ;;                      :GRAPHLIT_ORGANIZATION_ID 
"your-organization-id"
                   ;;                      :GRAPHLIT_ENVIRONMENT_ID 
"your-environment-id"
                   ;;                      :GRAPHLIT_JWT_SECRET 
"your-jwt-secret")))
             ))
        :config (require 'mcp-hub)
        :hook (after-init . mcp-hub-start-all-server))
      (setq mcp-server-start-time 12000)
      (require 'gptel-integrations)
    #+end_src
  - I tried multiple things with mixed success
  - The latest one was connector to Anki, which did not work very well
  - The tools I tried with some success (but no real use at the end)
    https://github.com/co-browser/browser-use-mcp-server
    https://github.com/a-bonus/google-docs-mcp
    https://github.com/datalayer/jupyter-mcp-server
  - Nick Anderson recommended https://github.com/choplin/jira-cli-mcp

- Going back on topic, we talked about https://github.com/meedstrom/org-node
  and linking between Org entries
  - Nikita first asked about org-node specifically, but we quickly moved
    to more general discussion about different ways to connect between
    headings
  - There is, of course, classic linking with links (especially
    file-independent id: links), but the idea to create links
    automatically (e.g. backlinks) is fairly popular
  - There is, of course, well-known org-roam, with its backlinks
    - someone raised the issue that org-roam is not actively maintained
    - AFAIK, it is maintained (not by original author, but by
      enthusiasts with write accesss to the repo) and is fairly stable
      as for now
  - Some packages implement similar functionality but without using
    databases as in org-roam
    - One recent example is https://github.com/meedstrom/org-mem
      (previously called indexed)
    - Another example is https://github.com/toshism/org-super-links, which is
      closer to vanilla linking
    - Nick Anderson also mentioned https://thanosapollo.org/posts/org-gnosis-01/
  - Nikita then clarified that he is specifically looking for an
    agenda-like list of "related" headings from different files
    - There are different ways how such list can be obtained
      - https://github.com/protesilaos/denote has somewhat similar
        functionality via dynamic blocks
      - there is also less known and fragile filetag support in Org (org-ctag)
      - so, the most relevant is probably org-roam's backlink buffer
- we also talked a bit more about denote design with notes stored in individual 
files
  and file names containing keywords used for searching and ids used for linking
  - this denote's idea with file names is repeating an earlier idea
    from https://github.com/novoid/filetags
- karthink asked about displaying :LOGBOOK: drawer in org-agenda-entry-text-mode
  - I looked into org-agenda.el, and filtering out the drawer is hard-coded 
there
  - An alternative could be https://github.com/alphapapa/org-quick-peek, where
    filtering can be customized
- Morgan shared his problem with regular meetings that are occasionally 
rescheduled
  - such meeting can normally be marked with =<2025-10-06 Mon +1w>=, but
    when moved, say to Tuesday once (and back to Mondays next weeks), one 
cannot simply
    change the timestamp to =<2025-10-07 Tue +1w>=
  - I suggested adding an extra timestamp:
    =<2025-10-06 Mon +1w>= (regular weekly), =<2025-10-07 Tue>= (one off)
    - Unfortunately, there is no way (other than constructing
      diary-style timestamp with direct Elisp) to exclude a single day from
      timestamp with repeater. Maybe it is a feature that should be
      added one day
  - Another common suggestion that many people like is using
    org-clone-subtree-with-timeshift
  - We also have some special case for weekly timestamps excluding
    certain weeks - org-class. It is to be used in diary-style
    timestamps as =<%(org-class ...)>= (see the docstring).
    - This has been a part of Org mode since forever, although not
      mentioned in the manual
  - kikingvegas also chimed in describing some Mac's (if I recall correctly)
    feature to create repeated tasks not using special syntax, but simply by
    human-readable description: "Org diary timestamp for every second
    Wednesday of a month"
    - This is indeed possible. Either using a set of regexp rules to match or
      LLMs (well, I mentioned LLMs first, because it is that hummer
      that makes everything looking like nails nowadays).

- karthink asked about recent discussion about the new customizeable
  link preview system. We had a bug report about previewing
  links inside links like =[[https://orgmode.org][file:./img.png]]=
  (aka clickable icon).
  - the tricky part about such example is that Org markup does not allow links
    inside link descriptions. Kind of. More specifically, the parser does not
    allow links inside description, but other parts of Org mode, in fact, do
    allow them as a special case. That special case was missed in the new 
preview
    system implementation.
  - Another part of that bug report was referring to
    https://blog.tecosaur.com/tmio/2021-04-26-Welcome.html#inline-display-remote
    that claims that links like
    
=[[https://github.com/larsmagne/meme/raw/master/images/Grandma-Finds-The-Internet.jpg]]=
    can also be previewed
    - The truth is that they cannot - org-display-remote-inline-images option 
only
      works for TRAMP links. I myself keep getting confused about this, and 
      even claimed that such feature existed in the email thread.
      - (maybe it should indeed exist)
- karthink asked me about using org-capture to record links/bookmarks
  - some people configure capture templates to put link in title, or
    property drawer, or inside body
  - I myself use a sophisticated method, storing the link and other
    metadata in properties drawer in a way compatible with
    org-bibtex. I even have a very elaborate html parser package that captures
    links, downloads html/media, parses the html, and extracts author/title/etc
    - https://github.com/yantar92/org-capture-ref
  - Note that =C-c C-o= on heading in Org mode will offer a choice of all the 
links
    in title, properties drawer, and also body to open. This is an easy way to 
follow
    the link stored inside heading
  - Similar to what happens with links inside link description, Org parser
    does not recognize links inside property drawer. It is yet another special 
case
    in Org mode code. Parsing links inside property drawer also has drawbacks 
though.

:comments:
[17:55] yantar92 is now the presenter
[17:59] [yantar92 : MODERATOR]: The latest Emacs news: 
https://sachachua.com/blog/2025/08/2025-08-11-emacs-news/
[17:59] [yantar92 : MODERATOR]: Official start in a few minutes
[18:00] [yantar92 : MODERATOR]: Editable notes (including after the meetup): 
https://pad.emacsconf.org/orgmeetup
[18:03] [Jacob S. Gordon : VIEWER]: am I audible?
[18:03] [Jacob S. Gordon : VIEWER]: guess not, let me rejoin
[18:04] Jacob S. Gordon is now the presenter, set by yantar92
[18:25] [karthink : VIEWER]: Why does org-refile touch the kill-ring at all?
[18:29] [yantar92 : MODERATOR]: https://0x0.st/8CxO.patch
[18:32] yantar92 is now the presenter, set by yantar92
[18:39] [Nick Anderson : VIEWER]: I use org-transclusion pretty frequently and 
often using the detach option to create a  copy in whatever buffer i pulled the 
content in.
[18:40] [Nick Anderson : VIEWER]: Sometimes there is some jank, yes.
[18:40] [yantar92 : MODERATOR]: 
https://nobiot.github.io/org-transclusion/#Detach-transclusion-and-copy-source-buffer
[18:40] [Nick Anderson : VIEWER]: I might have modifified my workflow to make 
things wqork for me 
[18:41] [yantar92 : MODERATOR]: https://github.com/yibie/org-include-inline
[18:41] [Nick Anderson : VIEWER]: it does weird stuff with the source buffer 
during a transclusion. Breaks indention or something.
[18:41] [Nick Anderson : VIEWER]: thanks for that, will check it out.
[18:43] [Nick Anderson : VIEWER]: How do i share screen:?
[18:44] [Nick Anderson : VIEWER]: May i 😁
[18:44] Nick Anderson is now the presenter, set by yantar92
[18:47] [Morgan : VIEWER]: If I wanted to include read only patch files in an 
org buffer would transclusion be good for that?
[18:48] [Nick Anderson : VIEWER]: Maybe, depending what you want to include for
[18:48] yantar92 is now the presenter, set by yantar92
[18:48] [Nick Anderson : VIEWER]: for exporting to a doc and sending to someone 
else?
[18:48] [Morgan : VIEWER]: just for local preview in the org buffer
[18:49] [Nick Anderson : VIEWER]: nore sure if it can transclude non-org thouhg
[18:49] [Nick Anderson : VIEWER]: probably can, it can use file soource 
[18:49] [Morgan : VIEWER]: I guess I'm going for something like the latex 
inline preview but for plain text files
[18:50] [Nick Anderson : VIEWER]: You can, i just tried
[18:50] [Nick Anderson : VIEWER]: you just need to have a file path i think
[18:50] [Nick Anderson : VIEWER]: #+transclude: [[file:/tmp/blah.txt][HI]]

[18:50] [Morgan : VIEWER]: oh that's exactly what I want.  Thank you very much 
😊.  I will look into this
[18:52] [Nick Anderson : VIEWER]: thanks
[18:54] [Nick Anderson : VIEWER]: I saw you were playing with some anki mcp 
toools
[18:54] [Nick Anderson : VIEWER]: what other mcp tools are you using
[18:55] [Nikita : VIEWER]: Anyone using org-node? I use it to have a links to 
connected org entries. Wanted to hear opinions regarding it.
[18:55] [Nick Anderson : VIEWER]: google docs mcp ihavent seen that one
[18:56] [Nick Anderson : VIEWER]: I have had good success with jira-cli-mcp in 
recent past.
[18:56] [Nick Anderson : VIEWER]: sorry
[18:56] [karthink : VIEWER]: In case there is no topic of discussion, I have a 
question about org-agenda-entry-text-mode: 

By default it omits the :LOG: drawer of an entry.  i record updates to the 
status of a task  in the :LOG: drawer -- is there some way to show that instead 
of the entry content?
[18:57] [yantar92 : MODERATOR]: 
https://github.com/co-browser/browser-use-mcp-server
[18:57] [yantar92 : MODERATOR]: https://github.com/a-bonus/google-docs-mcp
[18:57] [yantar92 : MODERATOR]: https://github.com/datalayer/jupyter-mcp-server
[18:58] [yantar92 : MODERATOR]: https://github.com/meedstrom/org-node
[18:59] [Nick Anderson : VIEWER]: yep
[18:59] [Nikita : VIEWER]: It is. It helps to connect org entries with each 
other.
[18:59] [Nick Anderson : VIEWER]: It's like org-roam, but no sqlite
[18:59] [Nick Anderson : VIEWER]: Renamed maybe?
[19:00] [Nick Anderson : VIEWER]: no that was another of his
[19:00] [Nick Anderson : VIEWER]: indexed or something
[19:01] [Nick Anderson : VIEWER]: Yeah, org-mem was originally called indexed.
[19:02] [Nick Anderson : VIEWER]: https://github.com/meedstrom/indexed
[19:02] [Nikita : VIEWER]: May be there is a better way to connect org entries 
with each other?
[19:02] [Nick Anderson : VIEWER]: Nikita I use id links almost exclusively what 
do you mean by interconnecting?
[19:03] [Nikita : VIEWER]: I want it to be backlinked and also I want to have 
agenda that shows all connected chain of org entries. That what I am looking 
for.
[19:03] [Nick Anderson : VIEWER]: org-superlinks, 
[19:04] [Nick Anderson : VIEWER]: and org-roam, or org-node, or i think 
org-gnosis there are a handfull
[19:04] [yantar92 : MODERATOR]: https://github.com/toshism/org-super-links
[19:04] [Nick Anderson : VIEWER]: https://thanosapollo.org/posts/org-gnosis-01/
[19:06] [Nick Anderson : VIEWER]: It's another org-roam alike I htink
[19:07] [Nikita : VIEWER]: What will work best if I want to construct an agenda 
view to see all connected org entries from different files?
[19:07] [Nikita : VIEWER]: With links and backlinks
[19:08] [Nikita : VIEWER]: Right!
[19:09] [Nikita : VIEWER]: Okay, thank you for answering.
[19:11] [Nikita : VIEWER]: Will try in my spare time. Thank you!
[19:12] [sam : VIEWER]: org-roam is no longer maintained ?
[19:14] [sam : VIEWER]: I read somewhere, but I dont rememeber where
[19:14] [sam : VIEWER]: the author dropped its maintaince
[19:16] [sam : VIEWER]: I think prot denote is a very good alternative
[19:16] [sam : VIEWER]: not really ?
[19:17] [sam : VIEWER]: I yes
[19:17] [sam : VIEWER]: but for someone who does not have a problem with that
[19:17] [sam : VIEWER]: it is a good alternative
[19:18] [sam : VIEWER]: you can link to any file, not only org
[19:18] [sam : VIEWER]: image, photo ,pdf
[19:19] [yantar92 : MODERATOR]: https://github.com/protesilaos/denote
[19:19] [sam : VIEWER]: using the same links
[19:19] [sam : VIEWER]: note file:
[19:19] [sam : VIEWER]: id: or file:
[19:19] [sam : VIEWER]: but denote their is only denote: links
[19:20] [yantar92 : MODERATOR]: https://github.com/novoid/filetags
[19:21] [sam : VIEWER]: I mean it is a good alternative to org-roam
[19:22] [sam : VIEWER]: specialy from maintaince point of view also
[19:22] [sam : VIEWER]: ande denote has no DB
[19:22] [sam : VIEWER]: yep
[19:22] [sam : VIEWER]: depends on the user taste
[19:23] [sam : VIEWER]: yep
[19:27] [karthink : VIEWER]: Yeah, I figured I would have to advise 
org-agenda-get-some-entry-text.  Alternatively I can make org-add-note not use 
the :LOG: drawer
[19:27] [karthink : VIEWER]: For which there is a customization
[19:28] [karthink : VIEWER]: Ah, org-quick-peek is like org-agenda-follow-mode
[19:29] [karthink : VIEWER]: With org-agenda-follow-indirect set to t
[19:31] [karthink : VIEWER]: No updates from me
[19:34] [Morgan : VIEWER]: that is an issue I have actually with the anchor 
thingy.  I have a usually monday meeting that occasionally get pushed to 
tuesday or wednesday.  but if i change the timestamp to tuesday and keep the 
same +7 then all hell breaks lose
[19:34] [Jacob S. Gordon : VIEWER]: In those cases I just don't reschedule
[19:35] [Morgan : VIEWER]: oh that's smart.  why didn't I think of that
[19:35] [Morgan : VIEWER]: thank you 😊 multi timestamp is the solution
[19:36] [kickingvegas : VIEWER]: fwiw, there's org-clone-subtree-with-timeshift 
which IMHO works better than repeating timestamps
[19:36] [kickingvegas : VIEWER]: for many use cases
[19:38] [karthink : VIEWER]: I had a question about previewing http links to 
images
[19:39] [karthink : VIEWER]: As discussed here: 
https://list.orgmode.org/87h5yjymth.fsf@localhost
[19:40] [karthink : VIEWER]: Did Org ever preview images at http urls with 
org-toggle-inline-images?
[19:41] [Morgan : VIEWER]: a slightly related other issue I have with 
scheduling: what if I know of an irregularity far in advanced.  like my monday 
meeting is on tuesday due to a holiday

like this:
,* meeting
<2025-10-27 Mon ++7d>
<2025-08-26 Tue>


This will still show the meeting on the monday that it's not happening.  For 
one meeting it's just
annoying but if it's like 6 school classes then it could get garbled real fast
[19:43] [Morgan : VIEWER]: is that a recent addition?  I don't remember that 
from when I was in school
[19:45] [karthink : VIEWER]: Also had a question about capturing links.  There 
are a few different ways to do it, depending on the associated data: link in 
the heading, as a LINK property, in the body of the entry.  What is your 
preferred method?
[19:53] [kickingvegas : VIEWER]: gotta run - thanks! 
[20:19] [karthink : VIEWER]: Have to leave now, thanks for the meetup Ihor
[20:19] [zaimon : VIEWER]: Thanks everyone
[20:19] [Jacob S. Gordon : VIEWER]: Thanks for the help Ihor!
[20:19] [cryptk : VIEWER]: thanks
[20:19] [Morgan : VIEWER]: Thanks 😊
:end:

-- 
Ihor Radchenko // yantar92,
Org mode maintainer,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>

Reply via email to