DavidGretzschel

Since @Harlan asked so nicely how link-selection should work, I took that as an excuse to write up a detailled technical document about..... probably more than he bargained for.
https://forums.thebrain.com/post/praise-for-11-31-10311235?pid=1310052245
But I do answer his question as well.

This is all somewhat redundant with earlier feature requests that I have already made (or have not gotten around to making), but I feel that just saying I want feature x, y and z isn't nearly as helpful as really describing how those features would look like exactly and how they would work together in synergy.

A couple of fairly small changes would make keyboard navigation infinitely better. The current state of affairs is stuck at a very unfortunate "almost cool".

Scope:
From here on out, I’ll be assuming “Normal view”, so that the description is simpler.
Nothing really changes for the other views, except which arrow keys correspond to which direction. If it’s more complicated than that, just don’t implement it for the other views immediately. Might be, not that familiar with the others.
I’ll also assume that “forgetting” is not a thing, but instead only mention “deletion”.
This document starts with some definitions to use later.

Things:
A Thing can be a Thought or a Link.
NeighboursAndThoughtsAndLinksAreThings.png 

Highlighting vs Selection:

The assumption is that Highlighting uses the Highlight-circle and the Highlight circle can be on only one Thought or Link at a time.

[merging Highlighting and Selection would be a highly welcome, but more ambitious change, but for most of the basic operations that are missing at the moment, that is not necessary.
I think that the change I suggest would make possible future merge of this easier as well]

Active Thoughts:
Commands should never, ever be executed on active Thoughts, unless the active Thought happens to be highlighted.
Active Thoughts merely determine the perspective, when viewing Things in the Plex.
Nothing more.

Highlighting:
There can only be one highlighted Thing at a time.
And there must be exactly one Thing highlighted at a time.

Highlight-Visibility and Content-Area:
The Highlighting-circle must always be visible, unless the Content-Area is maximized.
alwaysShowHighlighterCircle.png 
The Content-Area must always show the Content of the highlighted Thing.
With the Content-area is maximized however, it must be implicit, that the highlighted Thing would be the Thing that we see the content of.

Link types:
There are PC-links, connecting parents with children and JK-links between two Jump-Thoughts. Furthermore the Parent Thought shall be called P, the Child Thought be referred to as C.
JumpLinkNames.png 

SiblingNeighbors.png 

Neighbor-property:

Two links can be neighbors.
Each link can have up to two neighbors.
There are two implementations for this, one for PC-links, the other for JK-links. The “neighbor”-property is dependent on the Link and the active Thought.
The active Thought is always P for PC-links and J for JK-links.
This is important for multiple parents and a Jump-Thought having Jump-Thoughts of its own.

PC:
If C was highlighted and using right/left-arrow would bring me to another Child of P called C`, the Link P`C would be the left/right-neighbor of L.

JK:
J refers to the Thought from which we jump, K refers to the Thought we jump to. A neighbor is the Thought K`, we could reach should we press up/down-arrow, from a highlighted K.

NeighboursAndThoughtsAndLinksAreThings.png 


Navigation between Things:

Between Thoughts:

Navigation between Thoughts is already working well and does not need to be changed.

Between Thoughts and Links:

From Thoughts to Links:

From our highlighted Thought, using shift+up/down arrow (for PC) or shift+left/right the highlighted Thought, one should be able to select a PC-link or JK-link, should one exist.
The specific link selected is always the link between the what one highlighted and what one would ordinarily have highlighted, had one not used the shift+modifier.

From Links to Thoughts:

One would use shift+up/down to highlight the corresponding Parent or Child-Thought.
One would use shift+left/right to highlight to the corresponding Jump Thought.

Between a Link and neighboring Links:
Using left/right-arrow one can jump between neighbors from a PC-link.
Using up/down-arrow one can jump between neighbors from a JK-link.

Visualizing Highlighting:
The Highlighting circle should appear on the Link in addition to the same graphical effect that “hovering” already uses.

CircleOnLink.png 


Commands (or why we bothered with all the highlighting-stuff in the first place):

Things should share most commands. Some commands by necessity are Link-exclusive, some other commands are Thought-exclusive. Those should be in the minority.

So I suggest that the current commands get the new groups “Things”, “Thought-exclusive” and “Link-exclusive”.

Thoughts:

Since a Link basically works like a Thought already, being able to hold Notes and Attachments, a link should be able to make use of the same commands, without requiring a different key-stroke.
Deletion, showing properties and history don’t need to be redundant anymore.
Link>Unlink would no longer be necessary, since that would just fall under Deletion.

Thought-exclusive:
Create new Child/Parent/Jump-Thought.
Some new commands should be added for efficient gardening:
Remove all links to children.
Delete all children.
Add all Children to Selection.
Add all Children to Selection and delete Links to those Children.

All those commands should have their equivalent available for Parents and Jumps.


 

Link-exclusive:

Link>Unlink, Link>Show History, Link>Show Link properties would be already included in Thought. Link>Unlink would be included in Thing>Delete Thing.
Note: Using “alt+enter” it’s infinitely easier to name a link, now.

New commands (since otherwise this would be empty):
A command that toggles the Boolean “one-way”-property and a three-way toggle for the three possible states of the arrow (henceto referred to as “arrow-states”) which are “left/down”/”right/up”/”no arrow”.
Toggling to “no arrow” should automatically disable the “one-way”-Boolean.
Toggling on the “one-way” property should automatically toggle to “left/down”, if it was previously at “no selection”.Increase Line Thinkness.
Decrease Line Thinkness.
Open color-picker for lines. (note: the default color should be selected, and I should be able to move within the color box using arrow-keys and escaping thru Esc)

accessible Link Properties.png 


additional functionalities/simplifications:

The basic idea is to overload as many commands as possible, have the least amount of possible command-contexts as possible, thus sparing the user the need to memorize hundreds of different commands.
With that in mind I have discussed how Things should be highlighted in the Plex.
And that would be a good start.
But why stop there?
Perhaps it’s good enough now, but with a couple more changes, TheBrain 11 can be far better still.

Search Box:

When we make a search, the Highlighted Thing should immediately go from where it was before to what is selected in the search-box. When we cancel our search by pressing Esc, the highlighted Object should revert.
All Thought or Link-commands should be doable from within the search-bar.
If I named a link, want to find it and add a URL from my clipboard to it or just change its line thickness, I should be able to do that from the search bar. If I want to delete a Thought right from the search bar, I should. The search bar should however only close, when we press Esc or activate the Thought with enter.
If we press enter on a link, it should automatically activate the corresponding Parent-Thought.
With Jump-Thoughts it doesn’t really matter which one is activated. Beware of potential corner cases with one-ways, though.
As mentioned before, the Content-Area should always display the Content of the Highlighted Thing. That makes the search-box far more useful, too. Because we might not find what we want, without checking the Attachments. Now we can move between different attachments of a Thought in the search-box, even deleting Attachments or adding a quick line or two and immediately going back to one was before.
This is perfect for Inbox-type Thoughts. The Project is my focus and I just want to log very quickly to get it out of my head. I don’t really want to change the view of the Plex.
So I merely search for the log-Thought, select it in the search-box, use the command to set the focus to the content-area, add a timestamp and describe what was bugging me and go back to work. Because the Plex never changes, we don’t loose as much of our mental context and are of no risk of forgetting what we were supposed to do.

SearchBox.png 

History bar (the thingy at the bottom of the screen):

There should additionally be a way to highlight the Thoughts at the history bar the same way.
We can of course use the mouse for that, but the mouse is slow, and life is short.
So I suggest that there should be a command that highlights the first entry of the history.
Using Left/Right-arrow one should be able to change the Highlight and update the Content, without refreshing the Plex. Similarly Enter would activate the Thought and pressing Esc one would go back to the previously highlighted Thought (before one was in the history bar).
As with the Search-box all commands that work for Things should of course be usable here as well.

history bar.png 
EDIT 1 (just after posting): This is a first draft and I haven't double-checked everything. And I didn't really have captions for the images, but rather added the pictures roughly where they needed to be.
Some things probably would benefit from additional images as well.
The structure could be better, but I think it should be a lot better than my usual either overly wordy or overly terse descriptions. If anything should be unclear, I'm happy to elaborate.

---------------------------------------------------------------------------------------------------------------------------------------------------------- seperator bcs. the forum software will append all images, iirc ---------------------------------------------------------------------------------------------------------------------------------------------------------- 

Click image for larger version - Name: JumpNeighbours.png, Views: 98, Size: 9.44 KB Click image for larger version - Name: ThoughtsAndLinksAreThings.png, Views: 99, Size: 13.32 KB

Lenovo Legion Y720 | 32Gb Ram | i5-7300-HQ, 4 cores @2.5 Ghz | GTX 1060 | :{Windows 10 (latest build) |  SSD: Model SAMSUNG MZVLW256HEHP-000L2

Laptop monitor: 15,6 inch, 1920x1080@60Hz
external monitor: 42.5 inch, 3840x2160@60Hz
(I use one or the other, never both at once)
--
Samsung Galaxy Tab S6 256Gb LTE
Samsung Galaxy S10 Plus 256Gb LTE
---
unless otherwise specified, assume 100% scaling
My videos always show the current time & date (look at Windows Taskbar).
---
How to use TheBrain 11 fast (work in progress)

Quote
DavidGretzschel
another thing to mention:
Should one be able to do a lot of functionality (espcecially notetaking) from the search-bar, it would cut down a lot on the number of application-windows that users would have open at the same time. That means, that lower-end machines would have an easier time without noticing *ahem* performance-issues of the software.

Lenovo Legion Y720 | 32Gb Ram | i5-7300-HQ, 4 cores @2.5 Ghz | GTX 1060 | :{Windows 10 (latest build) |  SSD: Model SAMSUNG MZVLW256HEHP-000L2

Laptop monitor: 15,6 inch, 1920x1080@60Hz
external monitor: 42.5 inch, 3840x2160@60Hz
(I use one or the other, never both at once)
--
Samsung Galaxy Tab S6 256Gb LTE
Samsung Galaxy S10 Plus 256Gb LTE
---
unless otherwise specified, assume 100% scaling
My videos always show the current time & date (look at Windows Taskbar).
---
How to use TheBrain 11 fast (work in progress)

Quote
mcaton
David,

Thanks for sharing. I'll make sure Harlan and the design team review your thoughts. Thank you for taking the time to put this together!

Matt
Quote
DavidGretzschel
@mcaton 
Good to hear!
Let me know, if I should clarify or expand on something (or you can't read my handwriting).

Lenovo Legion Y720 | 32Gb Ram | i5-7300-HQ, 4 cores @2.5 Ghz | GTX 1060 | :{Windows 10 (latest build) |  SSD: Model SAMSUNG MZVLW256HEHP-000L2

Laptop monitor: 15,6 inch, 1920x1080@60Hz
external monitor: 42.5 inch, 3840x2160@60Hz
(I use one or the other, never both at once)
--
Samsung Galaxy Tab S6 256Gb LTE
Samsung Galaxy S10 Plus 256Gb LTE
---
unless otherwise specified, assume 100% scaling
My videos always show the current time & date (look at Windows Taskbar).
---
How to use TheBrain 11 fast (work in progress)

Quote

Newsletter Signup  Newsletter        Visit TheBrain Blog   Blog       Follow us on Twitter   Twitter       Like Us on Facebook   Facebook         Watch Us on Youtube  YouTube       

TheBrain Mind Map & Mindmapping Software     Download TheBrain Mind Mapping Software