Theseus 0.3.124 (cont'd): Ariadne nested under System; Theseus logo toggles the Settings tab

Ariadne's Thread drops out of the Settings top-level nav. It is reached
from the System section's chevron now; its page gets a System › crumb
back. Aegis stays top-level (user-facing wallet, used often enough to
earn its own slot).

The Theseus logo in the toolbar was open-only — the second click did
nothing. It now toggles: if Settings is already the active tab, the
click closes it (and switches to whatever tab Theseus falls back to).
Deep links that open a specific section (openSettings("ai-engines")
from a picker, say) still always open — toggling is the intent of the
logo click specifically, not of every open-settings call.
This commit is contained in:
Local Dev 2026-10-27 21:57:32 +02:00
parent 94cfb98770
commit b1b393f02f
2 changed files with 18 additions and 6 deletions

15
main.js
View file

@ -8337,7 +8337,20 @@ function openSettingsTab(section) {
}
createTab(null, { settings: true, settingsSection: slug });
}
ipcMain.handle("open-settings", (_e, section) => openSettingsTab(section));
// The toolbar's Theseus logo toggles the Settings tab: if Settings is already
// the active tab, clicking the logo closes it (switching to the previously
// active tab, or the first remaining one). Called without a section, so a
// deep-link call like openSettingsTab("ai-engines") always opens rather than
// toggling — the toggle is intent-of-the-logo-click, not of a nav route.
function toggleSettingsTab() {
const ex = tabs.find((t) => t.settings);
if (ex && isActiveId(ex.id)) { closeTab(ex.id); return; }
openSettingsTab();
}
ipcMain.handle("open-settings", (_e, section) => {
if (section) openSettingsTab(section);
else toggleSettingsTab();
});
// Settings › Performance drives Shield and Cookie Pop-ups through their
// add-ons' own message handlers; only the Settings tab may call this.
const isSettingsSender = (e) => tabs.some((t) => t.settings && t.view?.webContents === e.sender);

View file

@ -320,7 +320,6 @@
<a data-sec="performance">Performance</a>
<a data-sec="privacy">Privacy</a>
<a data-sec="plugins">System</a>
<a data-sec="ariadne">Ariadne's Thread</a>
<a data-sec="aegis">Aegis</a>
<a data-sec="addons">Extensions</a>
<a data-sec="sidebar">Sidebar</a>
@ -632,11 +631,11 @@
</div>
</section>
<!-- Top-level landing section for Ariadne's Thread. Chevrons into the
existing sub-page under Plug-ins, where install / policy / sources /
status / uninstall live. The sub-page keeps its "Plug-ins ›" crumb
so Ariadne stays reachable from either entry. -->
<!-- Ariadne's Thread landing — no longer a top-level nav entry. The
System section's chevron row navigates here; the plugins-ariadne
sub-page's own crumb then goes back to System. -->
<section id="ariadne" hidden>
<div class="crumb"><a data-go="plugins">System</a> ›</div>
<h1>Ariadne's Thread</h1>
<p class="lede">A local daemon that resolves BCDN names for <b>every browser on this machine</b>, not just Theseus. Theseus has its own built-in resolver either way; this plug-in is for Chrome, Edge, Firefox and the rest.</p>
<div class="row link" data-go="plugins/ariadne">