Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

I can set friends to file entries but not to non-file entries, not sure why #366

Closed
michaelsjackson opened this issue Jun 24, 2021 · 5 comments
Labels

Comments

@michaelsjackson
Copy link

What could be the reason for this behaviour? I would like to set friend relationships to any kind of entries, no matter if file or non-file entry. My problem is non-file entries do not appear on my ivy-list and I have to select from this list it seems. At least on my computer with my current settings.

@Kungsgeten
Copy link
Owner

Could you post your org-brain configuration? It sounds strange, but perhaps you have changed some kind of variable.

@michaelsjackson
Copy link
Author

michaelsjackson commented Jun 30, 2021

Maybe this is a good limitation? Let me check if I can get the org-brain configuration together.

I used following method: I am searching in .emacs for "org-brain". Then I find this:

; search with deft
(defun org-brain-deft ()
"Use deft' for files in org-brain-path'."
(interactive)
(let ((deft-directory org-brain-path)
(deft-recursive t)
(deft-extensions '("org")))
(deft)))

Then this:

(setq org-brain-path "/org-brain")
(setq org-id-track-globally t)
(setq org-id-locations-file "
/.emacs.d/.org-id-locations")
(setq org-brain-visualize-default-choices 'files)
(setq org-brain-visualize-one-child-per-line t)
(setq org-brain-file-entries-use-title nil)

Then this, f9 is not shown here in github below:

(global-set-key (kbd "") 'org-brain-visualize)

Then this:

(defun helm-org-rifle-brain ()
"Rifle files in `org-brain-path'."
(interactive)
(helm-org-rifle-directories (list org-brain-path)))

Then this:

(require 'org-brain)
(define-key org-brain-visualize-mode-map (kbd "C-l") #'link-hint-open-link)

Then this:

(defun org-brain-switch-link-complete ()
(concat "brainswitch:" (read-directory-name "Brain dir: " org-brain-path)
"::"
(read-string "Entry: " "index")))
(defun org-brain-switch-and-visualize (directory entry)
(org-brain-switch-brain directory)
(org-brain-visualize entry))
(defun org-brain-switch-link-follow (link)
(let ((link-parts (split-string link "::")))
(org-brain-switch-and-visualize (car link-parts)
(cadr link-parts))))

Later this, I guess scan-for-header-entries nil might be the reason for it? I set this to make org-brain faster in the past. If I would unnil it again, org-brain would slow down again I guess?

'(org-brain-scan-for-header-entries nil)
'(org-brain-show-history nil)

Then this:

;; speeding up org-brain hopefully a bit more
(savehist-mode 1)
(setq savehist-additional-variables '(org-brain-headline-cache))

That's it. I hope this helps. Any suggestions are welcome, except unniling story above.

Side comment: There are so many tools going on in parallel, not clear which to use and which not. And when using, exactly for what where how? Something works here better, another thing elsewhere. org-brain is still one of my favourites for not losing the overview. The better it would integrate with the rest the better. What else is there?

My latest discovery: The fantastic org-transclusion. org-roam, zetteldeft, zettlr, Obsidian, org-wiki, org-brain-deft, and some more variants I can not remember. Maybe org-brain can make use of org-transclusion ideas? I like in org-transclusion you can develop your content in separate modules, then quickly putting together those modules according to your needs. Now I am thinking more: How can I split the whole content into separate more independish modules, so I can reuse those in various combinations with the rest of modules, developing over time. Something like Niklas Luhmann's Zettelkasten technique but in bigger chunks called here "modules". If I try to visualize the organization:

  • (highest level) combined use of modules
    • (mid level) development of modules
  • -- (lower level) development of ideas (chapters maybe)
  • --- (next lover level) development of paragraphs
  • ---- (lowest level) development of claims

You do not need in any scenarios all levels above, it is just one organizational model how you could use same .org files for various degrees of generality. From highest abstraction on top, to lowest abstraction, down to claims as header outputs, and content as argument inputs, as those guys from zettelkasten.de like to use in some of their Youtube videos.

Anyway, thanks again for this fantastic org-brain (as an old The Brain user, many years ago.)

@Kungsgeten
Copy link
Owner

Try setting org-brain-scan-for-header-entries to t (the default). You'll have to see for yourself how much slower it is. To me org-brain is pretty fast once the entries are cached (caching takes a couple of seconds), but I currently have only 400 entries.

Yes, there are several tools for "personal knowledge management". Many seem to be inspired by "Zettelkasten" (and/or the book about it). org-brain started as a "clone" of The Brain's functionality, and thus isn't tailored toward Zettelkasten methods (but can be used as such). I haven't tried org-transclusion, but my guess is that it should work okay with org-brain.

I don't get your idea of modules, but it seems to be an aspect of workflow. If you know what you want (and how it would look in org-mode and perhaps org-brain-visualize) then it would be easier to discuss :)

@michaelsjackson
Copy link
Author

michaelsjackson commented Jun 30, 2021

No, my extra story below was just as a sharing of my use cases, maybe it would help others in future. This is how I see my organization in general. In the end a simple .org file you can use for whatever you want. It is up to the user what an .org file is or should be. As general as you want or as detailed as you want. This is the beauty of it somehow.

What I call now modules just appeared from the use of org-transclusion. You have to try it out for sure. Stop anything you do now. Try org-transclusion. :-) It is really cool. Thanks to its developer also from here if he / she will read this in 5 years. I would describe org-transclusion in my own words as follows:

  • First analogy: Normal links are like a wall. You see the front side of the white wall. This is the link. But its content you can not see. The content is hidden behind the wall. What is org-transclusion doing for me? It is turning the wall so I can see its backside immediately! Cool.
  • Second analogy: Using normal file links in my .org document I need to click or visit this link to switch to the new target and see its content. What is org-transclusion doing instead? Instead of me going to the target, the target is coming/flying to me. Now imagine you have 50 links in your document? All 50 targets immediately are flying to you. Your 10 lines .org gets 10000 lines .org if you want, depending on the size of the targets. Super cool. Best part your linking document is not growing in size, not wasting space on your harddisk. But you can use all org features like export to pdf, this combination of linked .org files. In short I just call "file:links_to_org_documents.org" as modules, which I can later pull in automagically, thanks to org-transclusion.

I hope those comments can help future readers. Have a nice day / night.

@michaelsjackson
Copy link
Author

I set your mentioned variable to t again, it is working now. Great, thanks! Will close then. But then my suggestions above will be more hidden. Well, this is how it is. Thanks. Now org-brain will be even more fun to use! Now only input, output links are missing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants