The backlinks buffer didn't look to be displaying properly when you were in the emacs-lisp file because it contains two nodes and your cursor was in the Resources node which has no backlinks. That one had me scratching my head for a while too!
Even after 3 years, this video remains an essential reference for anyone thinking of plunging into org-roam. The decision comes down to weather one wants to go this route at all. Any other competing solution is either not entirely emacs/org-mode or half-baked partial implementations. Most of these partial implementations may have a nice quirk here and there, but not enough to replicate the entire note-taking system into a better model. As for org-roam itself, it still suffers from UI issues as seen here; mostly in keeping up with screen updates, refereshing, and updating. It remains though just as reliable and flexible. It scales better than any other competing solution. Customizing is a matter of slowly tweaking the config and the workflow to fit each other. Tinkering with org-roam is in keeping with tinkering with emacs and org-mode. As a point of reference, I've tried 4 other similar solutions and all of them fell short in some respect. I've even tried a couple outside emacs, but had to give up for lack of good editing features.
I'm taking a course in advanced algorithms at the moment, and using Org-roam for notes. It's absolutely amazing, and opening attached files with one key chord is another huge advantage.
This was concise, clear, and well-presented. You sold me on Org Roam. Thank you for making quality content. I’m now reorganizing my entire knowledge base.
28:18 the context of backlinks is awesome. I'm imagining how this would look if it were popupated with pages from a Wiki. "What links here" but with some amount of context. Excellent.
Thanks a lot!! Org Roam is what got me motivated to learn Emacs, while I was only stuck at Notion. Its been one hell of a ride, and thanks to creaters like you, learning has been satisfying.
Thank you for your videos on Emacs! I started using Emacs years ago and after getting over the initial learning curve I fell in love. but it always seemed like Emacs is not considered a "cool" IDE in main-stream computing and I often wondered if other people were right and maybe it was a dyeing tech with little support. Especially since I do most of my work on a Windows based machines. So happy to see I'm not alone and there are people actively working on new tools for Emacs. I'm really looking forward to watching all your videos and learning new ways to be more productive!!! Again, Thank you for this!!
Saw the other nice appreciation comments and thought I should leave mine here as well. I really like what you're doing and haven't yet found a video of yours that I didn't like. Keep it going ;P P.S. In 30:45 where you "mistake" it for a bug, you were actually on the resources header and that's why it presented info about the header (with id) and not the file you were in
I think the problems that you had with the Emacs Lisp node around 30:56 of you video is because your cursor was down below the Resources node and the display for the back links was the bank links to the Resources node - which was none.
I'm pretty interested in getting started with org-roam as I currently use a monolithic approach with my org file. This was a great introduction but I was wondering if you knew of other videos that show the power of org-roam in action? Conceptually I understand what it does, but it would be great to see it in action with a larger "graph".
The Zettelkasten method was in its modern form developed by Niklas Luhmann, who was a Professor of Sociology laterly at the University of Bielefeld, where I live, in honour of Professor Luhmann we have a tram named after him.
Thanks, David, again for this nice introduction video. Much appreciated! I did know about Roam, but wasn't aware of Org-roam. While I was watching your video, I was asking myself why I really need Roam if Org-mode itself already offers the tags feature. Of course, with Roam I can create a real graph to link information together, but personally I would ask something like "What do I have stored about languages?", would use the agenda feature to search for the tag "language", and the result would be a list of all Org entries with that tag. I am not sure why I would need more. So, if you are still open for suggestions for an upcoming video about Org-roam, maybe you could talk about this?
You raise a good point, for the typical Org Mode use cases, Org Roam's node links probably don't provide a lot of value. I think the real value comes into play when you are able to use the node database to implement other functionality, like displaying a visualization of the knowledge graph or potentially even doing SQL-style queries across all your documents. I'll see if I can come up with some good justifications for Org Roam over plain Org as we go through the series.
@@SystemCrafters Ah ok, that visualization use case sounds interesting and could be a good reason to invest into creating the graph. Looking forward to your next video!
To get the old "immediate" insert you can add the following in your config: ``` (defvar org-roam-capture-immediate-template (append (car org-roam-capture-templates) '(:immediate-finish t))) (defun org-roam-insert-immediate (arg &rest args) (interactive "P") (let ((args (push arg args)) (org-roam-capture-templates (list org-roam-capture-immediate-template))) (apply #'org-roam-node-insert args))) ``` And then bind `org-roam-insert-immediate` to a keybinding.
Great, as always. Makes me keep my attention on Emacs. :) Do you have your approach to manage development and/or personal projects using Org mode? If yes, could you make a video on that matter?
I found some snippets of a config and was able to organize my roam notes in subdirectories. They link with each other with no problems, for me it is a really nice way to organize different topics. David, if this is something you are interested in, let me know. So far I encountered zero problems! I won't try to share the config here because this comment would probably end up deleted lol.
Excuse my ignorance of the terminology, but hopefully you can grasp what I am asking. How did you configure the area where dired, mini buffer, etc. are to remain only as big as it needs to be? Example: at 14:00 the only node is Programming Languages and the area remains only as tall as to display that file. It takes up half of my buffer. Honestly, just knowing what to call that area would help to figure it out myself. It has a lot of functions, so I'm not sure what to call it.
Hey man, your org mode interface is really nice! Can you please point me to a video / your config file which tells how this is defined? I really want to make my org mode interface more "writing" instead of "coding" style.
I would say that aliases are useful when in the Node itself you want to have a descriptive name, like My Reasons To Do Something, and you want to link it in another node like "see [[my reasons]] here" but you can just alter the text were you reference the Node without creating an alias
Heading notes are in my workflow often an intermediate state until a note becomes its own file. During the writing process within a single file, I can already link to any heading like any other note and then later move that note to its own file without any of the old links breaking as long as I keep the ID. For example, recently I wrote a notes for a blog about programming design patterns and within that I had sections for the different design patterns and I used internal links to these heading. Later I created own notes for those design patterns and wanted to have all links point to those files, which was no problem at all.
That's a great idea! I hadn't considered the possibility that you could promote a heading to its own file and keep the links working via the ID. Almost seems like that should be a built-in function from org-roam
i have one user case for using IDs in headings in one masssive org file (see 26:57) : i already have such files that i’ve created over the years for different topics … thanks to this functionality in org-foam v2 i can recycle these documents to populate my ZK
Your presentation screens look amazing - I've been using emacs in TTY mode with urxvt to have the wallpaper background visible - what terminal are you using? or is there a way in emacs GUI mode to set an image background now? What theme as well? The src blocks with the transparent background look really slick.
I like your very down-to-earth way of explaining things. Shows that you don't need to be an expert and know everything to get started. But also quite humble of you to accept that oh well I read up a bit on Zettelkasten but I've used it without it so it's' fine. Most of 'personal knowledge management gurus' just stick out all these new concepts as requirements to just make a few basic notes and that's kinda dumb. It's really important to start from scratch and then organize later as you go
I get a deprecation warning for org-roam-setup. It says I should now call org-roam-db-autosync-enable instead. As always, great content! Just wanted to mention that to anyone here getting a similar warning.
The word "Zettelkasten" is German for "bill box", an open box or closed box with a slit to pile up/insert bills, commonly used for forms in institutions, like an in-house mailbox. ;-)
Thanks for your videos, emacs is such a mess to learn (i.e. configure) I can't use spaces in the minibuffer that is poppig up with C-c n f Anyone knows how to enable (configure) spaces as title names in the new node buffer?
Thank you for your videos on Emacs! I' have a question: i follow all the installation step, but at the end why in my emacs i' haven't the total node counter (and the nodes list) in the bottom left? When i insert a new node emacs show only the node name in my case.
Just a small note: You have a typo on "Zettelkasten", I guess from an english-speakers POV zettle seems more natural, but that word comes from German, meaning something like "a box for paper notes"
It would be awesome if you do a tutorial about how to export the org-roam directory into a website. An extra of awesomeness if the process could be done with some CI in GitHub or something like that.
Hey Maikol, sorry that RUclips kept deleting your comments! It removes comments with links far too aggressively. I will definitely make a video on the topic you suggested, thanks a lot!
org-roam is working for me but I cannot find reference to the variable org-roam--sqlite-available-p variable. might be due to me running a newer version of emacs/org/roam etc.
Great video. As a student, this seems like a great way to offload organization of my notes so I can focus more on actually learning the material, and the backlink system is something I wish I'd had a long time ago. I wonder, though: when you go to create the Emacs Lisp node or the Programming Languages node, you don't seem to have trouble typing the space. When I try to insert a space in the minibuffer, it tries to do completion, so I have to type C-q SPC to get a space. Not the end of the world, but definitely inconvenient. How can I get around this?
@@SystemCrafters Thanks for the reply. I actually found the workaround of rebinding SPC in the `minibuffer-local-completion-map` to `self-insert-command`
Love the channel. I am getting a "Dashboard WK unimpaired Wrap" error every time I load emacs. I can't find any info on this error. I want to use emacs but it is frustrating. Ideas please?
Sorry if this is a duplicate but is the code for this series available somewhere. Can't find it in the emacs-from-scratch repo. Thanks as always for the best emacs content on the web!
On create first node I get a undefined variable org-attach-id-dir which defaults to "data/" relative to org file directory as I understand it which I imagine I wouldn't have being outside of org file. Hmm. Did it from fresh org file and same result. Seems to be in org-attach package which I am surprised doesn't appear in my package list and is not installed. Tried defining that variable. And end up on create node with symlinks to nonexistent targets. hmm? OK. Didn't have the org-roam-db-autosync-mode set up. Fixed that and got a new file pop but not in org-mode and with only the title line and not the rest. Where did I screw up? No capture buffer.
For those who are unfamiliar with a Zealot here is another explanation, how to pronounce it: Zet-tel-kas-ten - like the verb to set - like tel in telefone - like cas in casserole - like ten, the number. (Of course, when you're normally saying the word the syllables get a bit blurry and merge together.) btw: It is often attributed to Niklas Luhmann - a well known sociologist - who practiced (and "invented"(?)) it. (I quoted the invention part, as I would not call it an invention. In my opinion this system feels like naturally grown within years of trying to manage a lot of notes. - But maybe I'm doing him an injustice and I just haven't understood the beauty and specialness of this system yet. 😅🤷♂)
Thanks a lot! If I may add, in org-roam 2.0 "org-roam-setup" is deprecated: ``` org-roam-setup is an alias for ‘org-roam-db-autosync-enable’ in ‘org-roam-compat.el’. This function is obsolete since org-roam 2.0; use ‘org-roam-db-autosync-enable’ instead. (org-roam-setup) Activate ‘org-roam-db-autosync-mode’. ```
One thing that I'm struggling when inserting/creating new nodes, it's when the name of the new node it's similar to another one (e.g new node: Software / old-node: Software Engineering), so when typing the name, I don't have other option than going/inserting the node already created.
Every completion system in Emacs has a way to "exit" with the current text instead of selecting one of the options, that is what you need to type a new note with a similar name.
if its requires a sql db, can you still have it sync everything over to another comp? Like if I want all my notes to be synced between personal and work computers on a Mac via iCloud?
I might have asked about this in another of your Org Roam videos, but ... how does one get Org Roam working. I copied your config from the video on keeping a journal and Spacemacs barfs all over complaining that I don't have a C compiler. My last two days of research see this problem dating back to at least 2019. How is it possible that Emacs needs the existence of a C compiler? Or that something has not been included in one of the Emacs releases since then? How does one get a C compiler for Emacs? I'd love to try this but I can't get past starting my Emacs!
@@copeless1090 No offense taken, and thanks for the reply. I put my comment here because Dave put in the effort to make, not one, not two, but three videos on Org Roam and the damn thing has not been able to be even loaded by many people for three years. I just get a tad frustrated by the tinker toy approach for so many potentially useful things Emacs. It is not a problem I have any hope to see a resolution for, as this community is populated by dyed-in-the-wool software geeks.Hell, I used to be one so I get it. LOL :) Once again, thank you for taking the time to reply. I did get some help on a Discord form, I think it was. The advice was ... "forget it, Org Roam is not ready for prime time." The helpful soul there pointed me to a much simpler journal which is part of Org Mode itself. I did not have any use for the back linking stuff as I already use Obsidian for that function.
Hello! I love your Emacs series! I have a question: is there a simple way to run a bash shell buffer and see its results? I would like to replace postman with simple curl based scripts
Not sure if you did, but a intro to VC package would be nice too, for those like me that just wanna do basic cloud storing org files, magit looks roo cluttered.
Awesome video around getting started with org-roam. I've been trying to figure out how to delete already created nodes, but there's nothing in the org-roam manual around doing this. Is there a way to do this?
@@SystemCrafters Yes, just tried that, but they remain in the org-roam-find-file list and will just create a new file. Guessing this is probably due to referential or integrity in the db.
Had to add this line (eval-when-compile (require 'use-package)) after the last line in your org-roam script init.el file I am using Doom Emacs and I got errors after running doom sync & ./doom doctor
If you don't have `use-package` installed, you'd need to set that up first: github.com/daviwil/emacs-from-scratch/blob/c0266ff684f670ecc5e41615c0282912e6615214/init.el#L24-L36
Emacs has support for SVG so it might be possible. You could look into how this library was developed to see how you might do it: github.com/rougier/svg-lib
apparently roam and obsidian made people forget about TheBrain, and we about org-brain however I love this concept, I think we are a few steps to get to the dream of the federated wikis.
I think some Boomers like Tim Berners Lee would have called that as hyper text markup language building up a potential world wide web, but well that's 30 years old, so let's call the concept Notes, Zettelkasten and Roam=Brain 🙂 Anyway, nice to see HTML used in the way it was supposed to be used (nowadays it's most of the time used to download .exe files that are just called SPA instead of linking useful information), so it had to be reinvented 🙂 And of course, I'll gonna use Org Roam, too. Emacs is the links/lynx browser I always wanted to have for my notes.
Hmm - at 7:29 the warning shown is confusing me as it states "Notes taken in v1 are incompatible with v1, but you can upgrade the to v2…" - How can v1 be incompatible with itself, that must be a typo (I would have expected "…v1 notes is not compatible with v2, please upgrade…)
@@SystemCrafters might be a good oppertunity for me to create a PR and make a (small) contribution ;-) PS Thank you 🙏 for your great passion for Emacs videos I’m really enjoying them, they’re really helpfull (though I have chosen to start with Spacemacs as ‘batteries are included’)
Yep, as of right now the Emacs-org-roam package in Guix is not up to v2, it's 1.2.0 I think. That's why you aren't able to find the variable. Shouldn't take much work for someone to update the package definition to 2.0!
@@SystemCrafters It was updated since writing this comment. BTW, I had the same issue with viewing backlinks in the org-roam buffer. It would not show the other nodes where Emacs Lisp was mentioned. Honestly, I think this is an issue... Last thing, how do you delete/remove a node? I want to remove the Resources nodes we created in the tutorial.
The backlinks are neat but I don't know if I saw a killer feature here that isn't mostly covered by fzf and rg, or find and grep since probably you don't have 500,000 note files that said making your own wiki could be helpful... I'm not sure. Something to think about, can't quite imagine a real usecase yet unless you were maintaining a public wiki and you could publish it via roam. Even then not many of us do that.
I would say it's more integrated with Emacs and that its graphs look really fricking cool. Org roam graph is decent but even more org roam server (not yet in v2, but is actively developed). It really helps visualising your notes
Beware! If you followed Emacs From Scratch from the beginning, you most likely will have to change where orgmode is installed from. You must delete the orgmode archive from gnu elpa and add in the one from nongnu. Otherwise Orgroam won't work!
Thanks for pointing that out! The Org project got rid of its own ELPA repo after I made the EFS series, it's quite unfortunate that the information is out of date now.
I believe they implemented a custom translation layer between Emacs Lisp and sqlite that made communication between them faster. My guess is that they were probably trying to avoid loading a native module with sqlite lib into Emacs so they went the other way instead. Not sure though!
the thing I love about emacs and lisp community is that they assume, right for the git go, that everyone’s an expert in emacs and org mode. So naturally they jump right into the most arcane aspect of the issue without explaining terms , pointing to an introductory video or anything that could be remotely useful to beginners because you know who needs new users in dying communities?
This video is not intended for Emacs beginners. Not every video I make can be targeted to Emacs beginners because I'd spend too much time explaining concepts that many viewers already know. In the description of this video, you'll find a link to the Emacs Essentials playlist, check that out if you're interested in the basics.
When I did the simple install it did not produce the sqlite variable. Why? This is on kubuntu, emacs 28.1, and the emacs-from-scratch config. Is /org-roam-20220908.1625 the proper version that does this? That is the one that got picked up. Unlike my previous woes it did create a capture buffer and all. hmm.. I am suspicious it may be older version as the Warnings buffer stuff mentioned did not pop.
The backlinks buffer didn't look to be displaying properly when you were in the emacs-lisp file because it contains two nodes and your cursor was in the Resources node which has no backlinks. That one had me scratching my head for a while too!
Argh, that explains it, thanks!
Even after 3 years, this video remains an essential reference for anyone thinking of plunging into org-roam. The decision comes down to weather one wants to go this route at all. Any other competing solution is either not entirely emacs/org-mode or half-baked partial implementations. Most of these partial implementations may have a nice quirk here and there, but not enough to replicate the entire note-taking system into a better model.
As for org-roam itself, it still suffers from UI issues as seen here; mostly in keeping up with screen updates, refereshing, and updating. It remains though just as reliable and flexible. It scales better than any other competing solution. Customizing is a matter of slowly tweaking the config and the workflow to fit each other. Tinkering with org-roam is in keeping with tinkering with emacs and org-mode.
As a point of reference, I've tried 4 other similar solutions and all of them fell short in some respect. I've even tried a couple outside emacs, but had to give up for lack of good editing features.
Finally I understand how org-mode works :D
It's my 6th attempt to start using emacs and now it's awesome
lmao, I'm on attempt one of emacs but attempt two of roam
I'm taking a course in advanced algorithms at the moment, and using Org-roam for notes. It's absolutely amazing, and opening attached files with one key chord is another huge advantage.
So now, two years later: did you stick with it?
@@aimpizza6823 I'm also curious to see if he stuck with it.
This was concise, clear, and well-presented. You sold me on Org Roam. Thank you for making quality content. I’m now reorganizing my entire knowledge base.
Thanks Kent!
28:18 the context of backlinks is awesome. I'm imagining how this would look if it were popupated with pages from a Wiki. "What links here" but with some amount of context. Excellent.
Exactly!
I was so impressed when I first saw this package!!!
It's pretty great!
Thanks a lot!! Org Roam is what got me motivated to learn Emacs, while I was only stuck at Notion. Its been one hell of a ride, and thanks to creaters like you, learning has been satisfying.
What do feel now using notion vs emacs?
Thank you for your videos on Emacs! I started using Emacs years ago and after getting over the initial learning curve I fell in love. but it always seemed like Emacs is not considered a "cool" IDE in main-stream computing and I often wondered if other people were right and maybe it was a dyeing tech with little support. Especially since I do most of my work on a Windows based machines. So happy to see I'm not alone and there are people actively working on new tools for Emacs. I'm really looking forward to watching all your videos and learning new ways to be more productive!!! Again, Thank you for this!!
I prefer EMacs because I love being able to configure it as much as I want. I could configure NVim and Vscode too but EMacs is more fun imo
I was waiting for this package to be represented by you! Thank you very much
Saw the other nice appreciation comments and thought I should leave mine here as well. I really like what you're doing and haven't yet found a video of yours that I didn't like. Keep it going ;P
P.S. In 30:45 where you "mistake" it for a bug, you were actually on the resources header and that's why it presented info about the header (with id) and not the file you were in
Thanks a lot, I appreciate it!
Yeah org-roam made note taking a blessed experience.
This video is great! Helped me on stuff that I wasn't finding elsewhere! Thanks!!
This is the most helpful org-roam video out there.
Thank you so much for explaining how org-mode and org-roam work differently!
I started exploring org roam yesterday and you published this video lol
I was very impressed with the usefulness of the auto-completion of the org-roam link!! Thanks!
I think the problems that you had with the Emacs Lisp node around 30:56 of you video is because your cursor was down below the Resources node and the display for the back links was the bank links to the Resources node - which was none.
Very helpful video! Excellent presentation.I already use org-mode to organize my life and now I'm moving my accumulated notes into org-roam.
I'm pretty interested in getting started with org-roam as I currently use a monolithic approach with my org file. This was a great introduction but I was wondering if you knew of other videos that show the power of org-roam in action? Conceptually I understand what it does, but it would be great to see it in action with a larger "graph".
Thank you for this! You have opened up a whole new world for me in emacs :)
I was waiting for this for a while. Thanks!
I actually use it to creative world building. It is great!
That's an awesome use for it! I think it would rival Scrivener for the same purpose.
@@SystemCrafters I actually have separated ROAMS for different projects, each configured by .dir-locals.el. And also my "normal" ROAM.
Thanks!
The Zettelkasten method was in its modern form
developed by Niklas Luhmann, who was a Professor of Sociology
laterly at the University of Bielefeld,
where I live,
in honour of Professor Luhmann
we have a tram named after him.
Nobody lives in Bielefeld though, it doesn’t exist. I thought everyone knew that?
@@yaqubroli1804
If there is no Bielefeld
then there is no Pudding for you
as Dr Oetker is a Bielefeld company.
LOL
Nice! I was waiting for this one, finally v2 is out!
Thanks, David, again for this nice introduction video. Much appreciated! I did know about Roam, but wasn't aware of Org-roam. While I was watching your video, I was asking myself why I really need Roam if Org-mode itself already offers the tags feature. Of course, with Roam I can create a real graph to link information together, but personally I would ask something like "What do I have stored about languages?", would use the agenda feature to search for the tag "language", and the result would be a list of all Org entries with that tag. I am not sure why I would need more. So, if you are still open for suggestions for an upcoming video about Org-roam, maybe you could talk about this?
You raise a good point, for the typical Org Mode use cases, Org Roam's node links probably don't provide a lot of value. I think the real value comes into play when you are able to use the node database to implement other functionality, like displaying a visualization of the knowledge graph or potentially even doing SQL-style queries across all your documents. I'll see if I can come up with some good justifications for Org Roam over plain Org as we go through the series.
@@SystemCrafters Ah ok, that visualization use case sounds interesting and could be a good reason to invest into creating the graph. Looking forward to your next video!
Also, org-roam-ui is now a thing! So you can get graphical insights about your knowledge base using org-roam
Very cool. Adding to my list of 'should look into', but then again - this list could have been managed somehow...
lol, yep, and you'll just end up with more lists :)
To get the old "immediate" insert you can add the following in your config:
```
(defvar org-roam-capture-immediate-template
(append (car org-roam-capture-templates) '(:immediate-finish t)))
(defun org-roam-insert-immediate (arg &rest args)
(interactive "P")
(let ((args (push arg args))
(org-roam-capture-templates (list org-roam-capture-immediate-template)))
(apply #'org-roam-node-insert args)))
```
And then bind `org-roam-insert-immediate` to a keybinding.
Thanks! I figured it would end up being something like this
It's 2024. Are you still using this? Excellent video
God I love your channel David! I haven't touched neovim in a couple of months now
Look forward to the next series of videos.
can't wait for org-roam-server to be updated to v2
Great, as always. Makes me keep my attention on Emacs. :)
Do you have your approach to manage development and/or personal projects using Org mode? If yes, could you make a video on that matter?
I do, but I don't maintain it as well as I would like. I will definitely make a video on it at some point!
I found some snippets of a config and was able to organize my roam notes in subdirectories. They link with each other with no problems, for me it is a really nice way to organize different topics.
David, if this is something you are interested in, let me know. So far I encountered zero problems! I won't try to share the config here because this comment would probably end up deleted lol.
I'm interested. Can you share via an article or something?
Very excellent video buddy, well done.
Thanks for it all.
How can you make tasks/todo items from an org-roam file appear in the Agenda?
Great video. I am having an issue with the auto complete. It only puts in the name of the existing node, but it is not a link?
Fantastic tutorial. Very well done. Thank you!
Hey, thanks for making this. One question how do you display the code without #+BEGIN_SRC and #+END_SRC?
Hi David, at 16:48, how do you manage to see the ID of the linked note in the minibuffer?
Excuse my ignorance of the terminology, but hopefully you can grasp what I am asking.
How did you configure the area where dired, mini buffer, etc. are to remain only as big as it needs to be?
Example: at 14:00 the only node is Programming Languages and the area remains only as tall as to display that file. It takes up half of my buffer.
Honestly, just knowing what to call that area would help to figure it out myself. It has a lot of functions, so I'm not sure what to call it.
Stellar walk through. Thank you!
Hey man, your org mode interface is really nice! Can you please point me to a video / your config file which tells how this is defined? I really want to make my org mode interface more "writing" instead of "coding" style.
I would say that aliases are useful when in the Node itself you want to have a descriptive name, like My Reasons To Do Something, and you want to link it in another node like "see [[my reasons]] here" but you can just alter the text were you reference the Node without creating an alias
Heading notes are in my workflow often an intermediate state until a note becomes its own file. During the writing process within a single file, I can already link to any heading like any other note and then later move that note to its own file without any of the old links breaking as long as I keep the ID.
For example, recently I wrote a notes for a blog about programming design patterns and within that I had sections for the different design patterns and I used internal links to these heading. Later I created own notes for those design patterns and wanted to have all links point to those files, which was no problem at all.
That's a great idea! I hadn't considered the possibility that you could promote a heading to its own file and keep the links working via the ID. Almost seems like that should be a built-in function from org-roam
When you're @ 22:17 and you're very quickly trimming the roam: leading text how are you doing this?
i have one user case for using IDs in headings in one masssive org file (see 26:57) : i already have such files that i’ve created over the years for different topics … thanks to this functionality in org-foam v2 i can recycle these documents to populate my ZK
Your presentation screens look amazing - I've been using emacs in TTY mode with urxvt to have the wallpaper background visible - what terminal are you using? or is there a way in emacs GUI mode to set an image background now?
What theme as well? The src blocks with the transparent background look really slick.
thanks for this video, how can i get within the backlinks the note title only? it shows titles and content, is it possible?
Side question: how do you get org-mode to show text in such a pretty way in your presentation?
I want to know either. Do you use org-beamer?
I like your very down-to-earth way of explaining things. Shows that you don't need to be an expert and know everything to get started. But also quite humble of you to accept that oh well I read up a bit on Zettelkasten but I've used it without it so it's' fine. Most of 'personal knowledge management gurus' just stick out all these new concepts as requirements to just make a few basic notes and that's kinda dumb. It's really important to start from scratch and then organize later as you go
Thanks a lot! I value practicality a lot, so I agree with you!
I get a deprecation warning for org-roam-setup. It says I should now call org-roam-db-autosync-enable instead. As always, great content! Just wanted to mention that to anyone here getting a similar warning.
Thanks! They changed that like a week after I made this video :/
This looks interesting. Thanks for sharing.
This is very cool, looks great.
The word "Zettelkasten" is German for "bill box", an open box or closed box with a slit to pile up/insert bills, commonly used for forms in institutions, like an in-house mailbox. ;-)
Thanks for your videos, emacs is such a mess to learn (i.e. configure)
I can't use spaces in the minibuffer that is poppig up with C-c n f
Anyone knows how to enable (configure) spaces as title names in the new node buffer?
Thank you for your videos on Emacs! I' have a question: i follow all the installation step, but at the end why in my emacs i' haven't the total node counter (and the nodes list) in the bottom left? When i insert a new node emacs show only the node name in my case.
Curious if anyone here has used both this mode of Emacs and the Obsidian app and how they feel the two compare?
Just a small note: You have a typo on "Zettelkasten", I guess from an english-speakers POV zettle seems more natural, but that word comes from German, meaning something like "a box for paper notes"
It would be awesome if you do a tutorial about how to export the org-roam directory into a website. An extra of awesomeness if the process could be done with some CI in GitHub or something like that.
Hey Maikol, sorry that RUclips kept deleting your comments! It removes comments with links far too aggressively. I will definitely make a video on the topic you suggested, thanks a lot!
@@SystemCrafters No problem. Thank you very much for you great Emacs content. Your channel is excellent!
Thank you so much for this!
How did you create a node called "Programming Languages" with the space? Unless you typed C-q before the space?
org-roam is working for me but I cannot find reference to the variable org-roam--sqlite-available-p variable. might be due to me running a newer version of emacs/org/roam etc.
Great video. As a student, this seems like a great way to offload organization of my notes so I can focus more on actually learning the material, and the backlink system is something I wish I'd had a long time ago. I wonder, though: when you go to create the Emacs Lisp node or the Programming Languages node, you don't seem to have trouble typing the space. When I try to insert a space in the minibuffer, it tries to do completion, so I have to type C-q SPC to get a space. Not the end of the world, but definitely inconvenient. How can I get around this?
The difference may be that you're using a different completion interface than I am. Check out my video on the package called Vertico
@@SystemCrafters Thanks for the reply. I actually found the workaround of rebinding SPC in the `minibuffer-local-completion-map` to `self-insert-command`
Love the channel. I am getting a "Dashboard WK unimpaired Wrap" error every time I load emacs. I can't find any info on this error. I want to use emacs but it is frustrating. Ideas please?
Fantastic..!!! Thank You..!!!
Sorry if this is a duplicate but is the code for this series available somewhere. Can't find it in the emacs-from-scratch repo. Thanks as always for the best emacs content on the web!
Thanks! It would be nice to update things that are outdated so as not to mislead anyone. For example, it's about 'org-roam--sqlite-available-p'.
I cannot find a variable called "org-roam-sqlite-available-p". Is this still up to date?
Same problem here!
On create first node I get a undefined variable org-attach-id-dir which defaults to "data/" relative to org file directory as I understand it which I imagine I wouldn't have being outside of org file. Hmm. Did it from fresh org file and same result. Seems to be in org-attach package which I am surprised doesn't appear in my package list and is not installed. Tried defining that variable. And end up on create node with symlinks to nonexistent targets. hmm? OK. Didn't have the org-roam-db-autosync-mode set up. Fixed that and got a new file pop but not in org-mode and with only the title line and not the rest. Where did I screw up? No capture buffer.
Zettelkasten ist german for box of notes.
You say it like
Zettel
For those who are unfamiliar with a Zealot here is another explanation, how to pronounce it: Zet-tel-kas-ten - like the verb to set - like tel in telefone - like cas in casserole - like ten, the number. (Of course, when you're normally saying the word the syllables get a bit blurry and merge together.)
btw: It is often attributed to Niklas Luhmann - a well known sociologist - who practiced (and "invented"(?)) it. (I quoted the invention part, as I would not call it an invention. In my opinion this system feels like naturally grown within years of trying to manage a lot of notes. - But maybe I'm doing him an injustice and I just haven't understood the beauty and specialness of this system yet. 😅🤷♂)
Hi, could you please explain how to install org-roam with "straight.el" please?
Thanks a lot!
If I may add, in org-roam 2.0 "org-roam-setup" is deprecated:
```
org-roam-setup is an alias for ‘org-roam-db-autosync-enable’ in
‘org-roam-compat.el’.
This function is obsolete since org-roam 2.0; use
‘org-roam-db-autosync-enable’ instead.
(org-roam-setup)
Activate ‘org-roam-db-autosync-mode’.
```
One thing that I'm struggling when inserting/creating new nodes, it's when the name of the new node it's similar to another one (e.g new node: Software / old-node: Software Engineering), so when typing the name, I don't have other option than going/inserting the node already created.
Every completion system in Emacs has a way to "exit" with the current text instead of selecting one of the options, that is what you need to type a new note with a similar name.
great tutorial thanks
if its requires a sql db, can you still have it sync everything over to another comp? Like if I want all my notes to be synced between personal and work computers on a Mac via iCloud?
The database can be re-created from the existing files. It just takes a little time.
I might have asked about this in another of your Org Roam videos, but ... how does one get Org Roam working. I copied your config from the video on keeping a journal and Spacemacs barfs all over complaining that I don't have a C compiler. My last two days of research see this problem dating back to at least 2019. How is it possible that Emacs needs the existence of a C compiler? Or that something has not been included in one of the Emacs releases since then? How does one get a C compiler for Emacs? I'd love to try this but I can't get past starting my Emacs!
you'd be better off asking somewhere else I'm afraid :/ (not trying to be rude)
@@copeless1090 No offense taken, and thanks for the reply. I put my comment here because Dave put in the effort to make, not one, not two, but three videos on Org Roam and the damn thing has not been able to be even loaded by many people for three years. I just get a tad frustrated by the tinker toy approach for so many potentially useful things Emacs. It is not a problem I have any hope to see a resolution for, as this community is populated by dyed-in-the-wool software geeks.Hell, I used to be one so I get it. LOL :)
Once again, thank you for taking the time to reply. I did get some help on a Discord form, I think it was. The advice was ... "forget it, Org Roam is not ready for prime time." The helpful soul there pointed me to a much simpler journal which is part of Org Mode itself. I did not have any use for the back linking stuff as I already use Obsidian for that function.
@@mikethelma that's the best reply I've gotten on youtube, holy damn. and you're welcome :)
Thanks David!
Hello! I love your Emacs series! I have a question: is there a simple way to run a bash shell buffer and see its results? I would like to replace postman with simple curl based scripts
you really need to read more about org-mode :)
Not sure if you did, but a intro to VC package would be nice too, for those like me that just wanna do basic cloud storing org files, magit looks roo cluttered.
Yep, I plan to cover it when I make more videos about the in-box Emacs features
Awesome video around getting started with org-roam. I've been trying to figure out how to delete already created nodes, but there's nothing in the org-roam manual around doing this. Is there a way to do this?
Just delete the node or file for the node and the entry should go away. Let me know if that doesn't work!
@@SystemCrafters Yes, just tried that, but they remain in the org-roam-find-file list and will just create a new file. Guessing this is probably due to referential or integrity in the db.
Oooh I've been using Zim for this
Great video.
Had to add this line (eval-when-compile (require 'use-package)) after the last line in your org-roam script init.el file
I am using Doom Emacs and I got errors after running doom sync & ./doom doctor
@System Crafters I'm getting errors that the "use-package" is a void function - therefore I can't configure org-roam - is there any way around this?
Don't worry - finding the org-roam manual useful :)
If you don't have `use-package` installed, you'd need to set that up first: github.com/daviwil/emacs-from-scratch/blob/c0266ff684f670ecc5e41615c0282912e6615214/init.el#L24-L36
Is it possible to add symbols that we created in graphic tools into emacs? For example vectoral arrows
Thanks
Emacs has support for SVG so it might be possible. You could look into how this library was developed to see how you might do it: github.com/rougier/svg-lib
apparently roam and obsidian made people forget about TheBrain, and we about org-brain
however I love this concept, I think we are a few steps to get to the dream of the federated wikis.
I think some Boomers like Tim Berners Lee would have called that as hyper text markup language building up a potential world wide web, but well that's 30 years old, so let's call the concept Notes, Zettelkasten and Roam=Brain 🙂
Anyway, nice to see HTML used in the way it was supposed to be used (nowadays it's most of the time used to download .exe files that are just called SPA instead of linking useful information), so it had to be reinvented 🙂
And of course, I'll gonna use Org Roam, too. Emacs is the links/lynx browser I always wanted to have for my notes.
Hmm - at 7:29 the warning shown is confusing me as it states "Notes taken in v1 are incompatible with v1, but you can upgrade the to v2…" - How can v1 be incompatible with itself, that must be a typo (I would have expected "…v1 notes is not compatible with v2, please upgrade…)
Must be a typo indeed!
@@SystemCrafters might be a good oppertunity for me to create a PR and make a (small) contribution ;-)
PS Thank you 🙏 for your great passion for Emacs videos I’m really enjoying them, they’re really helpfull (though I have chosen to start with Spacemacs as ‘batteries are included’)
Thank you! Spacemacs is a great starting point!
PR submitted :-)
Excellent!
How do you install it through Guix? I installed emacs-org-roam but the variable you mention in the beginning of the video is void when I inspect it.
Yep, as of right now the Emacs-org-roam package in Guix is not up to v2, it's 1.2.0 I think. That's why you aren't able to find the variable. Shouldn't take much work for someone to update the package definition to 2.0!
@@SystemCrafters It was updated since writing this comment. BTW, I had the same issue with viewing backlinks in the org-roam buffer. It would not show the other nodes where Emacs Lisp was mentioned. Honestly, I think this is an issue... Last thing, how do you delete/remove a node? I want to remove the Resources nodes we created in the tutorial.
Hey what are your system and fixed width fonts?
JetBrains Mono and Iosevka Aile
This one is gonna be interesting.
The high friction of org-roam is still there. That's the piece both Obsidian and Roam excel at.
What font are you using in this emacs config?
JetBrains Mono and Iosevka Aile
The backlinks are neat but I don't know if I saw a killer feature here that isn't mostly covered by fzf and rg, or find and grep since probably you don't have 500,000 note files
that said making your own wiki could be helpful... I'm not sure. Something to think about, can't quite imagine a real usecase yet unless you were maintaining a public wiki and you could publish it via roam. Even then not many of us do that.
I would say it's more integrated with Emacs and that its graphs look really fricking cool. Org roam graph is decent but even more org roam server (not yet in v2, but is actively developed). It really helps visualising your notes
Beware! If you followed Emacs From Scratch from the beginning, you most likely will have to change where orgmode is installed from. You must delete the orgmode archive from gnu elpa and add in the one from nongnu. Otherwise Orgroam won't work!
Thanks for pointing that out! The Org project got rid of its own ELPA repo after I made the EFS series, it's quite unfortunate that the information is out of date now.
Hard to imagine why the normal sqlite3 is not sufficient.
I believe they implemented a custom translation layer between Emacs Lisp and sqlite that made communication between them faster. My guess is that they were probably trying to avoid loading a native module with sqlite lib into Emacs so they went the other way instead. Not sure though!
the thing I love about emacs and lisp community is that they assume, right for the git go, that everyone’s an expert in emacs and org mode. So naturally they jump right into the most arcane aspect of the issue without explaining terms , pointing to an introductory video or anything that could be remotely useful to beginners because you know who needs new users in dying communities?
This video is not intended for Emacs beginners. Not every video I make can be targeted to Emacs beginners because I'd spend too much time explaining concepts that many viewers already know.
In the description of this video, you'll find a link to the Emacs Essentials playlist, check that out if you're interested in the basics.
When I did the simple install it did not produce the sqlite variable. Why? This is on kubuntu, emacs 28.1, and the emacs-from-scratch config. Is /org-roam-20220908.1625 the proper version that does this? That is the one that got picked up. Unlike my previous woes it did create a capture buffer and all. hmm.. I am suspicious it may be older version as the Warnings buffer stuff mentioned did not pop.
spelled as "zettelkasten" - e before l
Whoops! I'll have to fix that
Second brain and 12 fingers