diff --git a/main.js b/main.js
index 59ee82f7..c94fc3df 100644
--- a/main.js
+++ b/main.js
@@ -589,6 +589,7 @@ const SETTINGS_DEFAULTS = {
{ id: "whatsapp", url: "https://web.whatsapp.com/", title: "WhatsApp" },
{ id: "x", url: "https://x.com/", title: "X" },
{ id: "youtube", url: "https://www.youtube.com/", title: "YouTube" },
+ { id: "proton", url: "https://mail.proton.me/", title: "Proton Mail" },
],
// Settings › Sidebar. Per-app panel widths and pins (keys "q:" /
// "p:"), extension panels the user took off the strip, and when
@@ -665,6 +666,23 @@ function loadSettings() {
settings.quickLinks = SETTINGS_DEFAULTS.quickLinks.map((L) => ({ ...L }));
}
} catch (e) { console.warn("quickLinks migrate:", e?.message); }
+ // A web app added to the default sidebar after a profile was made is put on
+ // that profile's strip once (the saved list never picks up new defaults by
+ // itself). quickLinksOffered remembers it, so one the user removes stays
+ // removed. Kept out of SETTINGS_DEFAULTS so an old profile reads as "never offered".
+ try {
+ const LATER_DEFAULTS = ["proton"]; // added in 0.3.88
+ const offered = Array.isArray(settings.quickLinksOffered) ? settings.quickLinksOffered.slice() : [];
+ const have = Array.isArray(settings.quickLinks) ? settings.quickLinks : null;
+ let changed = false;
+ for (const id of LATER_DEFAULTS) {
+ if (offered.includes(id)) continue;
+ offered.push(id); changed = true;
+ const def = SETTINGS_DEFAULTS.quickLinks.find((L) => L.id === id);
+ if (have && def && !have.some((L) => L && L.id === id)) have.push({ ...def });
+ }
+ if (changed) { settings.quickLinksOffered = offered; saveSettings(); }
+ } catch (e) { console.warn("quickLinks offer:", e?.message); }
// Translator moved from a single `translateEndpoint` to a peer list in
// the same release that shipped the chip. A custom endpoint comes along
// as the primary peer; the historical LibreTranslate.com default is
diff --git a/quicklinks.html b/quicklinks.html
index c16a2c0a..5f4eadcd 100644
--- a/quicklinks.html
+++ b/quicklinks.html
@@ -72,6 +72,8 @@
whatsapp: '',
messenger: '',
youtube: '',
+ // Proton Mail: an envelope in Proton's purple.
+ proton: '',
spotify: '',
discord: '',
};