From 8b4bae5e6aee2d65ebf5471a7e4d21cab155d034 Mon Sep 17 00:00:00 2001
From: Owais Jamil
Date: Mon, 22 Jun 2026 00:35:03 -0500
Subject: [PATCH] feat: add tray action to reset window geometry
---
.changeset/ten-heads-melt.md | 5 ++++
.changeset/wet-wolves-lick.md | 5 ++++
src/lib/components/AppWindow.svelte | 31 +++++++++++++++++--------
src/lib/components/GnomeTray.svelte | 15 ++++++++++++
src/lib/components/WelcomeScreen.svelte | 17 +-------------
static/icons/ui/reload.svg | 4 ++++
vite.config.ts | 1 +
7 files changed, 52 insertions(+), 26 deletions(-)
create mode 100644 .changeset/ten-heads-melt.md
create mode 100644 .changeset/wet-wolves-lick.md
create mode 100644 static/icons/ui/reload.svg
diff --git a/.changeset/ten-heads-melt.md b/.changeset/ten-heads-melt.md
new file mode 100644
index 0000000..93c6bfc
--- /dev/null
+++ b/.changeset/ten-heads-melt.md
@@ -0,0 +1,5 @@
+---
+'intrepid-ibex': minor
+---
+
+remove about computer from welcome
diff --git a/.changeset/wet-wolves-lick.md b/.changeset/wet-wolves-lick.md
new file mode 100644
index 0000000..4efd96e
--- /dev/null
+++ b/.changeset/wet-wolves-lick.md
@@ -0,0 +1,5 @@
+---
+'intrepid-ibex': minor
+---
+
+allow resetting of window position
diff --git a/src/lib/components/AppWindow.svelte b/src/lib/components/AppWindow.svelte
index 597caab..ec0ad5c 100644
--- a/src/lib/components/AppWindow.svelte
+++ b/src/lib/components/AppWindow.svelte
@@ -59,18 +59,29 @@
onMount(() => {
if (!browser || !storageKey) return;
+ const resetStoredGeometry = () => {
+ x = 0;
+ y = 0;
+ width = null;
+ height = null;
+ };
+
+ window.addEventListener('intrepid-ibex:reset-window-geometry', resetStoredGeometry);
+
const storedGeometry = localStorage.getItem(storageKey);
- if (!storedGeometry) return;
-
- try {
- const geometry = JSON.parse(storedGeometry) as { x?: number; y?: number; width?: number; height?: number };
- x = typeof geometry.x === 'number' ? geometry.x : 0;
- y = typeof geometry.y === 'number' ? geometry.y : 0;
- width = typeof geometry.width === 'number' ? geometry.width : null;
- height = typeof geometry.height === 'number' ? geometry.height : null;
- } catch {
- localStorage.removeItem(storageKey);
+ if (storedGeometry) {
+ try {
+ const geometry = JSON.parse(storedGeometry) as { x?: number; y?: number; width?: number; height?: number };
+ x = typeof geometry.x === 'number' ? geometry.x : 0;
+ y = typeof geometry.y === 'number' ? geometry.y : 0;
+ width = typeof geometry.width === 'number' ? geometry.width : null;
+ height = typeof geometry.height === 'number' ? geometry.height : null;
+ } catch {
+ localStorage.removeItem(storageKey);
+ }
}
+
+ return () => window.removeEventListener('intrepid-ibex:reset-window-geometry', resetStoredGeometry);
});
function startDrag(event: PointerEvent) {
diff --git a/src/lib/components/GnomeTray.svelte b/src/lib/components/GnomeTray.svelte
index 63e8099..7d90da2 100644
--- a/src/lib/components/GnomeTray.svelte
+++ b/src/lib/components/GnomeTray.svelte
@@ -47,6 +47,18 @@
startupSound.setMuted(target.checked);
}
+
+ function resetWindowGeometry() {
+ const geometryKeyPrefix = 'intrepid-ibex:window-geometry:';
+
+ for (const key of Object.keys(localStorage)) {
+ if (key.startsWith(geometryKeyPrefix)) {
+ localStorage.removeItem(key);
+ }
+ }
+
+ window.dispatchEvent(new Event('intrepid-ibex:reset-window-geometry'));
+ }
-
-