Quickly select and group multiple tiddlers for various operations

As much as I expected this to be a basic feature, I was still not able to find an example on how to quickly select and group multiple tiddlers at once in order to make them accessible for further operations all at the same time. Example: I am browsing a family album and I want to tag the pictures with names of the people appearing (without editing each tiddler one by one).

This feature actually has massive usability as, once users have grouped tiddlers (let’s say with a temporary tag), they can make them available as the objects of any kind of subsequent repetitive tiddlywiky operations that normally users end up doing editing each single tiddler manually.

So far I’ve known about the $select widget and the Commander plugin.
The Commander plugin makes tiddlers available for selection trough a mix of filter search and checkboxes. It does its job well, but it is not quick and not suitable for things like a photo gallery.
The select widget looks promising as it can be compact and it has the ability to work with multiple non-contiguous selections. Its main downside to me is that it seems not customizable to work with hjkl vim-inspired movements (instead of the default arrow keys) and that it forces to use the mouse if one wants to make non-contiguous selections.

Any insights?

Best wishes,
dam

What you are talking about seems to be a most fundamental of features in TiddlyWiki of “lists”. Selected lists. If you look for the rating, favorites and bookmarks plugins many will provide an icon you click to add any tiddler to a “list”. You can also include the button in a list widget to select from a list.

For example see here Favorites Plugin: Update 4.6.5 for a favorites that allows organising into folders/multiple lists as well.

Here is a list with its own filter but shows how you transclude any view toolbar button into any list using the default current tiddler.

<$list filter="[tag[Contents]]">
  {{||$:/plugins/kookma/favorites/ui/buttons/add-remove}} <$link/><br> 
</$list>

Keep in mind that tags effectively define a list of items so tagged.

Of course we can take this a lot further, just ask

Hello Tones, thank you for your answer.
What I am hoping to find is a way to speed up these operations greatly, hence needing to select several tiddlers at once.

Something at least as efficient as in file managers where you can use shift and ctrl (together with mouse or arrowkeys) to select multiple non-contiguous files.

Ideally I’m looking for a solution which is both touchscreen friendly and keyboard friendly. So far I’ve had good results using TW with Vimium, which allows me to do most things in TW without leaving the home row on the keyboard and without having to come up and maintain a long list of keyboard shortcuts.

Hence I am hoping not having to use the mouse nor arrow keys, not just for productivity reason but also to reduce wrist pain.

This is a play tool, but it could be enhanced. It creates checkboxes for your items that you want to do something with. It remembers what your last two items checked were. Then, you can use shift+J to mark everything between those two marks. Right now it depends on you marking the two checkboxes in the same order as the list. A smarter version would re-arrange the markers so it’s always correct. A similar keystroke, like control+J might be used to undo all the checkboxes between two markers. This example is for use at tiddlywiki.com.

\define mark-range()
<$action-setfield $tiddler="test" text=<<__tag__>>/>
<$list filter="[tag<myTag>allafter:include{1st-mark}allbefore:include{2nd-mark}]">
<$action-setfield $tiddler=<<myCur>> $field={{{[<currentTiddler>slugify[]addprefix[field-]]}}}  $value="yes" />
</$list>  
\end
\define actions() 
<$action-setfield $tiddler="1st-mark" text={{2nd-mark}}  />  
<$action-setfield $tiddler="2nd-mark"  text=<<currentTiddler>> />  
\end
\define mylist(tag)
<$vars myCur=<<currentTiddler>> myTag=<<__tag__>> >
<$keyboard key="shift+J" actions=<<mark-range>> >
<$list filter="[tag<__tag__>]">
<$checkbox tiddler=<<myCur>> field={{{[<currentTiddler>slugify[]addprefix[field-]]}}}    checked="yes" unchecked="no" actions=<<actions>>> <<currentTiddler>></$checkbox><br/>
</$list>
</$keyboard>
</$vars>
\end

<<mylist HelloThere>>
2 Likes

I have not tested it on touch devices but have you tried the select widget with “multiple”. You may need to increase the font size?

I was thinking of something like this, thanks.
If the checkboxes are given text tooltips it should be able to work with vim-like bindings through Vimium.
Somebody would be interested in co-working on a plugin starting from this idea?

Yes (mentioned it in the original post); I’ve tested it on android browsers, the menu becomes a popup checkboxes list that you have to select individually.

1 Like