An invention you may be interested in, focused tiddler types and setting current Focus

Folks,

I have built a tool for managing what I call the “focused tiddler”. Basically the last tiddler navigated to, or you can select the focus on any tiddler in the story. This allows a sideBar tab to present custom information, even an editor in the sidebar that changes with the focused tiddler.

  • This allows you to quickly return to the focused tiddler after scrolling in the story.
  • This is not so new but I believe I have an elegant solution.

Proof of concept now available

As a result I have started building in the ability to step backwards and forwards between tiddlers that have recently had the focus.

My most recent invention with this however, is by writing “just a little” extra code that not only captures the current and last focused tiddler, but can determine for example the difference’s between a project tiddler, a todo item, a system tiddler etc…

  • Now this allows you to automatically set the current and last Project, the current and last todo etc…
  • This helps you quickly set or return to the tiddlers of different types you are or were working on.

Does this sound as useful to you as it does to me?

2 Likes

I can’t see a link to an example?

There is no public one yet. And how best to demonstrate the New idea is a little complex.

It is but a discussion at this moment although I have a working POC.

Does it deserve a tiddly host of its own?

  • Perhaps it does because it could be a way to capture a current tiddler in any list eg: the most recent tiddler with the learning tag you focused on.

There is a Proof of concept now available @pmario.

2 Likes

I’m using $:/plugins/Gk0Wk/focused-tiddler TW5 CPL Wiki — TiddlyWiki5 Plugin Library for TiddlyWiki Chinese Communities

from @Sttot

Though this lacks a demo site, but it is used by echarts plugin, to make the brain graph chart show tiddlers around focused tiddler.

1 Like

Seems it is not entirely the same as yours, it is autonomous, while yours can manually assign a tiddler as focused.

I have long wished for the ability to pin one or more tiddles at the start of the story river so that all subsequent ‘story river events’ only change the tiddlers displayed after position N where N is typically less than say five. The very frequent situation is that I have one tiddler I am editing, maybe another that is a core reference I am referring to and then perhaps a varying selection of other tiddlers where I am hunting around for an elusive reference that I can remember but have not yet located.

This ‘focus’ proposal has some resonance with that - just not sure about the focus event being the one that triggers the action.

I would want the focus ( pin ) mechanism to be manual - any automation is trying to second guess what is important to me by taking note of my key presses, mouse use and so on and that is never going to work so I would wish it to perform very much like a pin - basically I want to register this tiddler as being primary for my purposes until I say otherwise, I am going to return back to it frequently - the story river is going to be churning and changing a lot while I hunt around but I want this or these ships safely stowed in harbor for now.

1 Like

I will give it some thought it may be simple to extend this focus solution to allow a single pinned tiddler.

For reference, I think it would just be a tiddler tagged $:/tags/AboveStory containing an appropriate template to display the selected tiddler.

1 Like

I have demonstrated to my self the ease of pinning, in this case alt-click on the focus button and it could be extended to more than one.

  • However the first question to ask is what will the view of such pinned tiddlers look like?
  • The close button standard tiddler view template is no longer relevant in a pinned state, you would need to unpin not close.
  • Do we frame it the way tiddlers in the story are?

Not sure what you mean here, any actions I needed were to;

  • Capture the focus when navigating from anywhere in the wiki asnd still being able to;
  • I have that working now

So @jonnie45 give the appearance of pinned tiddlers some thought and let me know.

Perhaps in the longer run we could pin a project and open a story of task tiddlers last opened in that project. ie the pin saves and restores the story.

Some good questions!

  • However the first question to ask is what will the view of such pinned tiddlers look like?

Not sure what ‘view’ means in this context, if the story river then in my naive view pinned tiddlers would simply appear first, I say naive because my story river is the standard simple one, I don’t use plugins that ‘tile’ the story river so that tiddlers can appear side by side, I have only considered one column layout.

  • The close button standard tiddler view template is no longer relevant in a pinned state, you would need to unpin not close.

I think it’s necessary to define what the single or group of ‘remembered’ tiddlers represents. I can imagine a definition where close or unpin operations would both remove that tiddler from the ‘remembered’ list - in my case the ‘remembered’ list is likely to have a lifespan of less than one day or maybe a couple at most. I would regard closing a ‘remembered’ tiddler as an action indicating that I had lost interest in it - others will doubtless think differently.

  • determine for example the difference’s between a project tiddler, a todo item, a system tiddler

We already have the favourites plugin - if you forget for a moment it’s called favourites and uses the heart icon then really it can be seen as a way of maintaining lists of important tiddlers organised by user defined folder names. For example I could easily create a folder in my favourites plugin called “work in progress” or “references for new tiddler NAME” and clear it out when done. I could work this way right now but it seems messy. I think the ‘focus’ plugin needs to be simple in concept otherwise it might functionally resemble the favourites plugin. For that reason I would suggest a ‘focus’ or pin plugin would not get involved with types of tiddler but of course I am looking at it only from the perspective of manual pinning which sidesteps the issue of the type of tiddler - it is simply a tiddler that was considered worth remembering for a relatively short period of time irrespective of ‘type’ of tiddler. If this is unclear I guess I am looking at standard pin functionality - it does not usually want to know why you pinned or if the pinned item is in some way different to other pinned items - the only important factor is that someone decided it was important for some undeclared reason.

It may be that trying to incorporate a ‘manual pin’ within a plugin that has a broader scope is a bridge too far, that the demands of keeping it very simple with few clicks and keyboard strokes will create complexity to the degree that eventually it evolves to another favourites plugin but by a different name.

I did play with a focusedTiddler field for the $:/HistoryList tiddler some years ago, as I did refactor the TOC macros. I could not get it merged to the core at that time. …

It also uses a “scroll watcher”, that detects the “focused” tiddler depending on the position in the story river. … The problem is, that there are different “story-views”. It only worked with classic, because every story-view can have a different idea, about what is the focused-tiddler.

I also wanted to create a possibility, that if a tiddler link opens a new tiddler in the story, the TOC should auto-expand and highlight that tiddler. … The problem here is tiddlers can be in several toc-branches. So it became a performance problem for many tiddlers. …

A manual focus-in-toc-button similar to the one shown here may be an option. So the action would only be active on user request, where they tolerate a bit of a lag.

I could think about a somewhat “hacky trick” here. It would be easy to create some new tiddlers tagged: $:/tags/AboveStory Those tiddler(s) could show a list of “pinned” tiddlers, without the need to modify the tiddlers that are pinned. … Just an idea …

But I think that’s a bit OffTopic here

1 Like

Over on https://foucus-tiddler.tiddlyhost.com/ I have added the feature to pin a single tiddler at a time above story.

  • On any red focus target icon, use alt-click to pin one tiddler at a time at the top of the story (above story)
    • feature to unpin, or pin multiple yet to be implemented.

Thanks @jonnie45 for your answers,

I already demonstrate what I am suggesting here, and it could not be further from favourites. See the elements example on the demo.

  • The thing is I am allowing the user to control and monitor the focus tiddler, just using the wiki means “different things” get focus over time.
  • I am using knowledge of these “different things” to automatically set current and last values for each type brought into focus. As the elements tab demonstrates. Bring into focus may just be following a link in the wiki.

This thread is about focusing tiddlers, and being able to automatically identify tiddler types “put in focus” is just a bonus. Keeping in mind the focus tool is semi-automatic including automatic and manual.

The Pinning feature is arguably related but could be stand alone, to me when you pin something you are influencing what is in your focus so it seem complementary.

  • I don’t think we need to compromise here, think we can have it all and keep it simple, not withstanding this I will most likely provide a compatible pin solution.

As always interesting to hear your perspective @pmario. This has led me to some fantastic ideas and a clarification below.

In my view using a scroll watcher is changing the user interface “visual focus” it says what are you looking at now. It would be of value for sure. Multiple things could respond to what you are looking at, almost like it is monitoring where our eyes are :nerd_face:

However My idea for a focus-tiddler is different, more like the users cognitive focus, not where they are looking (a digression). That is; “what is it I am focusing on in my mind”, if I look elsewhere I am scanning, browsing or diverging form my original focus. My focus-tiddler is the one I am focusing on, “to get the job done”.

  • Often we have two things the “objective” and “means to reach that objective” for this reason I have included the aforementioned Pinned tiddler as the “objective” and the “means to reach that objective” is the focus tiddler. Crtl-click on links opens a tiddler “below” but does not change the focus-tiddler.
  • Ctrl-home to see the Pin, Click one of the icons to jump to the focused tiddler, ctrl-click to open tiddlers (without changing the focus), scroll to digress.

I imagine differentiating between these two forms of focus such as the cognitive focus (mine) and the visual focus (yours) is not only important but a system capable of monitoring and measuring both could be used to do some powerful things;

  • Advanced usage analytics
  • Analytics given back to the user so they can learn about their own behaviours
  • Make suggestions based on past behaviour’s or make new connections.
  • Provide reminders about what you are doing or did do.
  • Yes, good idea synchronising with an index, contents etc… would be nice.
  • The toc in fact tracks each tiddlers expand/collapse status, not a current tiddler.
    • Perhaps we use a linkcatcher around the TOC to set a “current toc item state tiddler”
    • However the display of the TOC needs to somehow indicate this
      • Perhaps the core TOC macros should be modified to test if the current tiddler is named in a state tiddler and apply a class to that title only. Perhaps we can do it with CSS only?
    • Users could then provide a link that sets and highlights any item in any toc by settings its state tiddler.
      • The trick with expandable TOCs would be opening multiple expansions, perhaps just expand all.

Try this: TiddlyTools/Templates/Pin

  • Adds a tiddler “ViewToolbar” button that toggles display of the current tiddler between the StoryRiver and “AboveStory”.
  • Note that the current tiddler is NOT modified by this action. Instead, a list of “AboveStory” tiddlers is kept in a separate $:/config/TiddlyTools/Pin tiddler
  • To install, just drag-and-drop the TiddlyTools/Templates/Pin tiddler into your own TiddlyWiki.

enjoy,
-e

1 Like

@TW_Tones Thanks for the focus tiddler. This is what I am trying to do using the focus tiddler.
https://focus-tiddler-demo.tiddlyhost.com/

1 Like

I do something very slightly similar. Just like your approach I have custom layout with a slightly modified copy of the page template. I am using the linkcatcher widget, but the same should be achievable with the more general messagecatcherwidget:

<$linkcatcher message="tm-navigate" actions="""
<$action-listops $tiddler="$:/StoryList" $subfilter="[<navigateTo>] +[putfirst[]limit[15]]"/>
""">

With the above, any tiddler navigation will cause that tiddler to be opened at the very top of the storylist. If the tiddler is already open, then it will be moved to the top. It enforces that the storylist is always in the order of link clicks from most recent to least recent. I’m limiting the storylist size to 15.

I didn’t particularly care for any of the built-in options for tiddler-opening behavior and I arrived at the above approach. It suits me better.

I guess the core of your solution isn’t really using the alternate layout. Instead it is mainly built on $:/HistoryList!!current-tiddler. In my case I’m not “focusing” any tiddlers. But what you are calling the “focused tiddler” is always at the top of the page in my approach. Probably not something most people would like, but I do like it.

1 Like

It sounds very much like something I would appreciate. Do you have a version of this shareable anywhere? I’m still new enough that I make sense of what your linkcatcher does, but not how one would actually deploy it.

No that is just an optional way to add a revised page layout containing the message catcher.

  • Not exactly, focused tiddler is anywhere, and you can jump to it. The Addition of a pinned tiddler (Later I may allow multiple pinned) is the top of the story tiddler. The advantage one pin only, is repining replaces it.
    • In the current example alt-click on the “focus tiddler icon” pins it

Right. Your approach makes clever use of $:/HistoryList!!current-tiddler to add a visible box around the last clicked tiddler and to also have buttons which make it easy to jump to that tiddler. My approach moves each clicked tiddler to the top of the story (pushing the previous top-of-story tiddler down one). Jumping to the last clicked tiddler involves jumping to the top of the story.

1 Like