5 Org Roam Hacks for Better Productivity in Emacs

  Рет қаралды 31,360

System Crafters

System Crafters

Күн бұрын

Пікірлер: 58
@eddas5175
@eddas5175 3 жыл бұрын
I'm slowly writing a book as a hobby, nothing fancy. Being able to link characters with places, languages and culture is a godsend. Templates make it even better. I truly believe that Emacs, with a proper config, is the best text editor/manager for writing prose. Recently I started dabbling with abbreviations too. Everyday learning new stuff, this is awesome!
@SystemCrafters
@SystemCrafters 3 жыл бұрын
For this purpose, I think Emacs has far more power than a proprietary tool like Scrivener. I'd definitely like to try writing a book with Org Roam in the future.
@SystemCrafters
@SystemCrafters 3 жыл бұрын
Also, keep me posted on what you learn while writing a book with Emacs :)
@SystemCrafters
@SystemCrafters 3 жыл бұрын
Sounds like you've been really successful putting together your config from those sources, that's awesome!
@eddas5175
@eddas5175 3 жыл бұрын
@@SystemCrafters so far so good! Next thing is to properly learn latex haha. But yeah, roam and org insert link are game changers. Edit: looks like KZbin deleted my post :(
@codeluggage
@codeluggage 3 жыл бұрын
Best video on org-roam I've seen to date! Thank you for making elisp so approachable and understandable, David.
@cloudartisean
@cloudartisean 3 жыл бұрын
This is fantastic. I watched your other Org-Roam videos last week, and got into writing org-roam because I've heard so much about it. You really helped break it down into understandable chunks. Literally today I was thinking, "I'm going to have to find a way/write some elisp in my init config to let me have the Org-Roam TODOs show up in the agenda view". During my lunch break, I noticed you released this new video, and lo and behold, the second hack in the video was LITERALLY what I wanted to do. Super helpful channel and amazing hacks. One thing though, when I attempted to add the files with defun my/org-roam-refresh-agenda-list, it is having an issue with my/org-roam-list-notes-by-tag. Specifically, it looks like the mapcar function has the wrong number of arguments. Im trying to hunt down the issue here but I am not an elisp expert (yet!). I thought maybe there was a typo and it should be mapcar #'org-roam-node-FIND, not files, but that did not solve the error. Any help would be appreciated
@SystemCrafters
@SystemCrafters 3 жыл бұрын
I'm glad the videos were helpful, thanks a lot! There are two possibilities here, one is that the earlier reference to my/org-roam-list-notes-by-tag had a bug in it! If you copied that function from earlier in the show notes, look at the one in the "Final configuration" section and copy that instead. I just pushed a change to the show notes to fix this issue. The other possibility is that you need to make sure to use the "lexical-binding: t" comment at the top of your init.el file, take a look at the notes I left in the "Final configuration" slide about that. Let me know if that helps!
@cloudartisean
@cloudartisean 3 жыл бұрын
@@SystemCrafters That did it. I think I had some issues with formatting/parens from my init.el config after watching the other roam video and making modifications to it. I copied over your final configuration and added back in my tweaks to it, and it seems to be working now. Thank you
@SystemCrafters
@SystemCrafters 3 жыл бұрын
Excellent, I'm glad that helped!
@ayams02
@ayams02 3 жыл бұрын
Your videos really helps me with Emacs a lot! Thank you very much David. I do wonder how can I setup Emacs for presenting like you do?
@abarocio80
@abarocio80 3 жыл бұрын
Great tips, David! Thank you for all this work, you are saving me a lot of research!
@SystemCrafters
@SystemCrafters 3 жыл бұрын
And thanks for fighting with the KZbin comment system to get this comment through :)
@claudiodalicandro2341
@claudiodalicandro2341 Жыл бұрын
Hey David, just wanted to say your channel is awesome, all the videos are super engaging! Quick heads-up, the code that moves completed todos into the daily journal breaks the repeated tasks, preventing them from resetting to TODO. If I can sort it out (given my limited elisp skills), I'll shoot you a PR, thank you so much for your amazing work!
@xorlop
@xorlop 3 жыл бұрын
One method I found to get the dailies to show in the org-agenda is to just change the default Dailies template to include a "Agenda" filetag and use that :)
@tonicebrian
@tonicebrian 3 жыл бұрын
Hi David, congrats on your channel. Thanks to you I'm switching full time to Emacs and I'm loving it. Also a big fan of org-roam and the Zettelkasten method. Let me add a question/suggestion for another video like this one. Following the Build a Second Brain overall philosophy (put everything into Projects, Areas, Resources or Archives, aka PARA) I'd like to have collection of notes that are specific to projects (meeting notes, how to setup system X, who is responsible for Y, ...) but those notes aren't useful the moment the project is over and I'd like to archive them so they don't pollute the DB or general org-roam searches. So, how would you: - Automatically "group" notes belonging to a project (have them in a folder, autotag them when capturing, etc.) so they can have a common lifespan? - Restrict searches with minimal keystrokes to a specific project? Looking here for the path of least resistance and I don't know if it would be a different workflow, the combination of different Emacs packages or just hacking some Lisp code. Thanks for your effort.
@alexandrumatei5599
@alexandrumatei5599 Жыл бұрын
David, amazing work 🙏Thank you for this presentation! 🙏
@camrouxbg
@camrouxbg 3 жыл бұрын
I literally was looking for a way to do hack #2 today! I don't know nearly enough about elisp to make it myself yet, but then this video came along and solved my problem for me :) Thanks Dave!
@SystemCrafters
@SystemCrafters 3 жыл бұрын
Nice!
@rmrvubl8648
@rmrvubl8648 3 жыл бұрын
Great Video. Could you cover how to setup org-roam-protocol?
@SystemCrafters
@SystemCrafters 3 жыл бұрын
I will certainly cover it in the future!
@sheebeedeebee2571
@sheebeedeebee2571 3 жыл бұрын
Thank you for this! These videos are a Godsend for people like me just getting started. I've been using org-mode for a year, but only recently after watching your videos did I start to venture into really configuring things for myself. I wanted to ask: I'm currently using Doom Emacs and I used your functions for building org-agenda with roam notes and placed them in =config.el=. Everything works except (my/org-roam-refresh-agenda-list) doesn't seem to pull in my roam notes on the session starting, so I have to M-x it manually. Does anyone know why?
@DavidConnerCodeaholic
@DavidConnerCodeaholic 3 жыл бұрын
This is a fantastic video on org-roam workflow. Thanks 🙏
@eddas5175
@eddas5175 3 жыл бұрын
30 min of more roam goodness? Count me in :)
@JohnEastman0
@JohnEastman0 3 жыл бұрын
Very nice system David. Thanks! One thing to look out for is duplicates in the list of nodes returned by my/org-roam-list-notes-by-tag. This can happen when you have org headings which have their own ID property. In my case, I add IDs to all of my TODO items and calendar events (headings with timestamps). The result is duplicate items showing up in my Agenda (at least with my setup). Adding 'delete-dups' solves the issue. So, something like: (defun my/org-roam-list-notes-by-tag (tag-name) (delete-dups (mapcar #'org-roam-node-file (seq-filter (my/org-roam-filter-by-tag tag-name) (org-roam-node-list)))))
@whateverplaygames4499
@whateverplaygames4499 2 жыл бұрын
Wouldn't it be better to exclude the `project' tag from inheritence? (add-to-list 'org-tags-exclude-from-inheritance "project")
@vitusschafftlein1282
@vitusschafftlein1282 2 жыл бұрын
Thank yor for this awesome series! Do you know of any update on getting dailies in your agenda view, see 08:33? This would be a great feature!
@AlvarMaciel
@AlvarMaciel 3 жыл бұрын
Love your Roam series!!
@erikalmaraz1554
@erikalmaraz1554 3 жыл бұрын
I am having weird behavior with this, I have the emacs config setup from "emacs-from-scratch" and when implementing this,`my/org-roam-capture-task`, after running on a project node, seems to delete the node from org-roam database, the file still exists, however, "C-c n f" nor "C-c n p" show the file. This only appears to happen after trying to capture a task to an existing project node. Any help would be great. Also, I have -*- lexical-binding: t; -*- for my config as well.
@videosathish
@videosathish 2 жыл бұрын
Great tips! I am going to integrate all of these into my workflow. I have one question. Is it possible to prompt for a custom template in node-insert-immediate? Not everything is we want to capture is going to fit one default template. So I thought it'll be a very useful addition.
@NormanWalsh
@NormanWalsh 3 жыл бұрын
I'd never thought of mixing my agenda links into my roam files. I've been keeping todos in a separate, static set of files. But I think moving them into roam might be an improvement. I crafted a few roam files with agenda items in them and tried out the filtering. I got a lot of duplicate entries because (org-roam-node-list) includes the same file multiple times if there are headers (or headers with ID properties?) in them. I have no idea how to post code in a KZbin comment in any rational way, so I'll just observe that wrapping (remove-duplicates ... :test 'string=) around the mapcar expression in my/org-roam-list-notes-by-tag fixes that problem.
@SystemCrafters
@SystemCrafters 3 жыл бұрын
Yep, the way you did it works well, I need to update the show notes to accomodate for that!
@jantona
@jantona Жыл бұрын
These custom commands are great! I've copied them into my own config but I'm running into a weird problem; my/org-roam-find-project complains when I try to override the templates. It says that "Keyword argument [the full text of the project template definition] is not one of (:templates)". I've poked around in M-x describe-function and the org-roam manual and I can't find any reason this would happen! If i take out the template override it works fine, i just have to manually pick the project template if I'm creating a new one. Does anyone have any ideas why this might be happening? EDIT: solved it, it needs an extra "nil" after the filter function. Maybe the function signature has been changed since this video was made? Re-edit: It looks like the code to copy done tasks to the roam daily node breaks task repetition and habits. Anyone who leans on that (like I do) should leave that part out or look at troubleshooting it.
@TheWeezyOfOz
@TheWeezyOfOz Жыл бұрын
Point number 5 is something I was worried I wouldn't be able to have as I move from pen and paper to emacs. I absolutely use my daily pages as history because I have the long term memory of a particularly forgetful goldfish.
@kwinsch7423
@kwinsch7423 3 жыл бұрын
Thanks for the usefull tips. Hey, I am almost shure, that you have a photo of the Great Aletsch Glacier in your background. The spot is literally 2km away from my emacs installation right now :-)
@SystemCrafters
@SystemCrafters 3 жыл бұрын
It's very likely! That's cool if so :)
@keikenhate
@keikenhate 2 жыл бұрын
I have a kinda big problem and I think you ll be the person that may helps on this. I need integration between org-roam and org-agenda. I can understand that those two are kinda different, but why is it so hard to make them work nicely. I need to be able to see my TODO tasks in agenda... and my roam had a multifolder structure, like ˜/roam/1, 2, 3, etc. I tried multiple online method to achieve it, but nothing worked so far... So from your experience, is there a chance to make it work ? 😢
@arvydasgasparavicius7231
@arvydasgasparavicius7231 2 жыл бұрын
8:21 Do I have to "run that function" every time I open emacs, manually? Because the agenda-files list gets erased every time I restart emacs. UNLESS I save the values in my init.el. Which is not quite convenient to do so every time I add a new project. I will try to finish watching the video, perhaps you will show us a way to generate agenda automatically on each emacs launch AND add new project files automatically to agenda-files list.
@sB3rg
@sB3rg 2 жыл бұрын
The C-c n p project notes do not work for me using your exact copy paste code. It keeps giving me a "symbol's value as variable is void: tag-name" error despite having several notes made from the project's template. Any hints on what I'm missing? Great content! Love your channel. I'm using emacs 28.1 and windows 10
@sB3rg
@sB3rg 2 жыл бұрын
Ah... needed to watch all the way through. I think it has something to do with the lexical binding? I'm adding all of this to my config\\.org file which is dispatched by init.el. I tried this: ;; -*- lexical-binding: t; -*- but that did not fix the issue. I also tried this: (setq lexical-binding t) and that did not help either. Any tips or suggestions would be greatly appreciated.
@sB3rg
@sB3rg 2 жыл бұрын
For anyone needing to fix the same problem and sees this, add ":lexical t" to your "#+begin_src emacs-lisp" source block. That fixed my problem.
@nrbjerg
@nrbjerg 3 жыл бұрын
Is it posible to take math notes in org mode or atleast not in default LaTeX? Which is quite cumbersome.
@abarocio80
@abarocio80 3 жыл бұрын
As far as I know, yes, but… you still have to put the formulas in a LaTeX block (and write it in LaTeX, too), but the rest could be just in org, which is easier to type.
@nrbjerg
@nrbjerg 3 жыл бұрын
@@abarocio80 aight, thanks for the response ill look into it tomorrow
@marcelorebazabartra757
@marcelorebazabartra757 3 жыл бұрын
You can write the latex code between $$ and press C-c C-x C-l I think to render directly in the buffer
@eddas5175
@eddas5175 3 жыл бұрын
I don't know if this applies (I'm starting to dabble with latex only now), but if you mean it's tiresome to write the formulas themselves you could make abbreviations. For example, I have one abbrev called "ee" that outputs "#+begin_src emacs-lisp" for me. It would be a lot of work to make your abbreviations, but once it's done you don't need to keep typing huge lines. Sorry if it's out of topic, maybe I didn't understand the question.
@nrbjerg
@nrbjerg 3 жыл бұрын
@@eddas5175 No no no, that was a great point, ill look into that aswell thank you 😀
@PeterPrevos
@PeterPrevos 3 жыл бұрын
Thanks for sharing. Isn't my/org-roam-capture-inbox the same as the standard Org mode capture? I have defined a org-default-notes-file as an Inbox registered in Org-Roam, which collects random tasks and notes. Question: Is there a method to automatically run org-roam-refresh-agenda-list after the org-roam-tag-add or -org-roam-tag-remove?
@SystemCrafters
@SystemCrafters 3 жыл бұрын
Yep, you could use normal Org Mode capture functionality for the Inbox too. It was just a convenient example to show for custom capture workflows in Org Roam. To automatically refresh the agenda list after editing tags, you could use 'advice-add' to add the refresh function as advice that runs after those commands get called, but it would require that you only manage your tags with those commands. It wouldn't pick up manual file edits that change the tags.
@PeterPrevos
@PeterPrevos 3 жыл бұрын
@@SystemCrafters How could I advice the tag functions in Roam to run the agenda function when I add or remove a tag?
@MichaelDiamondMusic
@MichaelDiamondMusic 3 жыл бұрын
Awesome!
@elminsteredwin2524
@elminsteredwin2524 2 жыл бұрын
Hi David ! Hi everyone, first of all thank you for you content it's really great ! I'm new to the channel and emacs so your content is really helpful to grasp the key idea of each subject. I have a problem with your function my/org-roam-find-project. I'm on doom emacs so I have the ;; -*- lexical-binding: t; -*- on my init.el by the way and I run archlinux. The my/org-roam-filter-by-tags seems to work because I have the todo list on the agenda view. The problem is the function my/org-roam-find-project doesn't work whenever my org-roam-directory is populated with a .org file, if there is no file on the directory the function work. However when there is a file in the directory have the "Symbol’s value as variable is void: tag-name" error. Since I'm completly new to emacs-lisp language I can't find what the problem is. So, a bit of help would be much appreciated. I hope I make sens ! By the way, I will start to watch your playlist about emacs-lisp maybe I could find a solution in the meantime. Keep it up ! I'm glad I found your channel. Eldwinster Edit: I found the solution ! For those like me that are on doom-emacs you need to put ;;; config.el -*- lexical-binding: t; -*- at the top of your config.org or config.el if you are not using the literate module in your init.el I found the solution thanks to this config github.com/tecosaur/emacs-config
@andrewemerson6662
@andrewemerson6662 2 жыл бұрын
Hi David, an issue with spacemacs, when I do C-c n p I get the following: org-roam-node-find: Keyword argument ((p project plain * Goals %? * Tasks ** TODO Add initial tasks * Dates :if-new (file+head %-${slug}.org #+title: ${title} #+category: ${title} #+filetags: Project) :unnarrowed t)) not one of (:templates) I figured it's a problem with the :templates function, when I remove the template along with :templates, it works without problems, but when I add the template back in, I get this, couldn't figure this one out yet
@emmahuang4299
@emmahuang4299 2 жыл бұрын
I ran into the same issue. There seems to be an update recently. If you read the documentation, there is a pred argument needed by the function org-roam-find-node. My fix is the add nil before the template argument, after the filter function. Hope this helps.
@Gjermund-Sivertsen
@Gjermund-Sivertsen 2 жыл бұрын
Anyone? I'm new to this, and try to learn the best way I can. " ;; The buffer you put this code in must have lexical-binding set to t!" How? At the top of my init.el file, it is written: ;;; init.el -*- lexical-binding: t; -*- Should those three semicolons be deleted? Thanks to anyone who can help.
5 Custom Org Agenda Views for Productivity
33:40
System Crafters
Рет қаралды 6 М.
Org Roam: The Best Way to Keep a Journal in Emacs
16:50
System Crafters
Рет қаралды 42 М.
風船をキャッチしろ!🎈 Balloon catch Challenges
00:57
はじめしゃちょー(hajime)
Рет қаралды 94 МЛН
How To Choose Mac N Cheese Date Night.. 🧀
00:58
Jojo Sim
Рет қаралды 90 МЛН
ТВОИ РОДИТЕЛИ И ЧЕЛОВЕК ПАУК 😂#shorts
00:59
BATEK_OFFICIAL
Рет қаралды 6 МЛН
Declutter Your Buffer Lists in Emacs with Perspective.el
28:31
System Crafters
Рет қаралды 16 М.
Capturing Notes Efficiently in Emacs with Org Roam
31:06
System Crafters
Рет қаралды 45 М.
what happens when your CPU has a bug? (GhostWrite)
9:58
LaurieWired
Рет қаралды 32 М.
EmacsConf 2020 - 17 - Org-mode and Org-Roam for Scholars and Researchers - Noorah Alhasan
21:16
Emacs. But why?
51:20
(Bit-Mage)
Рет қаралды 6 М.
How to Rescue Your Commits with Git Reflog
14:21
System Crafters
Рет қаралды 240
Emacs Org-mode - a system for note-taking and project planning
46:57
Google TechTalks
Рет қаралды 315 М.
Learning C - Build Your Own Lisp [2]
3:01:52
Domagoj Mišković
Рет қаралды 683
update: doom emacs && dotfile management
7:59
bashbunni
Рет қаралды 48 М.
Как подключить магнитолу?
0:51
KS Customs
Рет қаралды 2,2 МЛН
APT APT tutorial #rosé #apt #cute #robot #tutorial
0:28
Dr. EMO
Рет қаралды 2,3 МЛН
Apple display is the best… ☠️🍎 #transformation #iphone #samsung
0:27