Stay Organized by Using Multiple Desktops in TiddlyWiki

Would you like a multi-desktop experience in TiddlyWiki, similar to Windows, Mac, or Linux? It’s easy!
In TiddlyWiki a multi-desktop is a multi-layout design.

Create a second layout by:

i. Cloning the current page layout ($:/core/ui/PageTemplate).

  • Name it whatever you like—for example, "Private Desktop."
  • Then, rename the $:/StoryList and $:/HistoryList tiddlers used for story and history variables(Default values are story="$:/StoryList" history="$:/HistoryList") .
  • Replace
<$list filter="[all[shadows+tiddlers]tag[$:/tags/PageTemplate]!has[draft.of]]"
              variable="listItem">

With

<$list filter="[all[shadows+tiddlers]tag[$:/tags/PageTemplate]!has[draft.of]]
              -[[$:/core/ui/PageTemplate/story]]" variable="listItem">
  • Don’t forget to tag your new layout tiddler with $:/tags/Layout.

ii. Next clone ($:/core/ui/PageTemplate/story)

  • Then, rename the $:/StoryList and $:/HistoryList tiddlers used for story and history variables(Default values are story="$:/StoryList" history="$:/HistoryList") .
  • Use the same tiddler names for story and history as step i.

Use Ctrl+Shift+L to switch between the two layouts (or desktops).

Sidenote
Some page control buttons like Home are hard coded to current $:/StoryList and $:/HistoryList, so they wont work in your second Desktop (Layout).

TiddlyWiki is incredibly flexible—endless possibilities await! :muscle::heart_eyes::muscle:

References

** Example**

2 Likes

Hi @pmario,

In a previous discussion, we talked about hardcoded StoryList and HistoryList variables. I noticed that in $:/AdvancedSearch, some saved filters also rely on hardcoded StoryList and HistoryList tiddlers.

Wouldn’t it be more flexible if these were handled as variables? That way, they could adapt to different page layouts rather than being fixed to a specific setup.

What are your thoughts on this approach?

To have the complete desktop experience, I would like a way to hide sets of tiddlers from discovery. In particular, from the search engine.

Check the second update! Is the issue fixed?

If I understand correctly, you want the open tiddlers in the first desktop not to carry over to the second desktop. Is that right?

Unfortunately, all state and temporary tiddlers are shared between both desktops, meaning the some search words will remain the same across layouts.

That’s ok. I just mean that you could have an entire layout about your pets, and another layout about bike repairs. A search for “water” in the pets layout would only find your entry about goldfish, but your instructions for cleaning your bike seat in the bike repair layout.

That is how layouts like Health tracker plugin (buff & debuff tracker) as a layout (mini fullscreen app) and Calendar and Agenda plugin tw-calendar with Mobile friendly agenda page layout works.

Dedicated layout.

While the technique in this post is also interesting, classical layout, but have two.

in $:/AdvancedSearch , some saved filters also rely on hardcoded StoryList and HistoryList tiddlers.

The PageTemplate uses a $navigator widget that already defines two variables: <<tv-history-list>> and <<tv-story-list>>.

All PageTemplate elements are enclosed within that $navigator widget, so it should be possible to use those two variables in filters instead of hard-coding the values.

These variables are also available within modal dialogs (displayed via tm-modal message handling) which are OUTSIDE of the PageTemplate (the .tc-page-container-wrapper element), so they can also be used there as well.

-e

1 Like