diff --git a/apps/array/src/renderer/components/CursorGlow.tsx b/apps/array/src/renderer/components/CursorGlow.tsx
index 9a125343d..59051f920 100644
--- a/apps/array/src/renderer/components/CursorGlow.tsx
+++ b/apps/array/src/renderer/components/CursorGlow.tsx
@@ -1,8 +1,10 @@
+import { useSettingsStore } from "@features/settings/stores/settingsStore";
import { useThemeStore } from "@stores/themeStore";
import { useEffect, useState } from "react";
export function CursorGlow() {
const isDarkMode = useThemeStore((state) => state.isDarkMode);
+ const cursorGlow = useSettingsStore((state) => state.cursorGlow);
const [mousePos, setMousePos] = useState<{ x: number; y: number } | null>(
null,
);
@@ -16,8 +18,7 @@ export function CursorGlow() {
return () => window.removeEventListener("mousemove", handleMouseMove);
}, []);
- // Only show in dark mode
- if (!isDarkMode || !mousePos) return null;
+ if (!isDarkMode || !cursorGlow || !mousePos) return null;
return (
{
+ track(ANALYTICS_EVENTS.SETTING_CHANGED, {
+ setting_name: "cursor_glow",
+ new_value: checked,
+ old_value: cursorGlow,
+ });
+ setCursorGlow(checked);
+ },
+ [cursorGlow, setCursorGlow],
+ );
const handleTerminalLayoutChange = useCallback(
(value: "split" | "tabbed") => {
@@ -237,9 +255,14 @@ export function SettingsView() {
-
- Dark mode
-
+
+
+ Dark mode
+
+
+ Use dark theme for the interface
+
+
+ {isDarkMode && (
+
+
+
+ Cursor glow
+
+
+ Show a glow effect that follows your cursor
+
+
+
+
+ )}
+
Terminal layout
diff --git a/apps/array/src/renderer/features/settings/stores/settingsStore.ts b/apps/array/src/renderer/features/settings/stores/settingsStore.ts
index 05b5a07af..7051ae7ba 100644
--- a/apps/array/src/renderer/features/settings/stores/settingsStore.ts
+++ b/apps/array/src/renderer/features/settings/stores/settingsStore.ts
@@ -15,6 +15,7 @@ interface SettingsStore {
createPR: boolean;
defaultModel: string;
desktopNotifications: boolean;
+ cursorGlow: boolean;
setAutoRunTasks: (autoRun: boolean) => void;
setDefaultRunMode: (mode: DefaultRunMode) => void;
@@ -24,6 +25,7 @@ interface SettingsStore {
setCreatePR: (createPR: boolean) => void;
setDefaultModel: (model: string) => void;
setDesktopNotifications: (enabled: boolean) => void;
+ setCursorGlow: (enabled: boolean) => void;
}
export const useSettingsStore = create()(
@@ -37,6 +39,7 @@ export const useSettingsStore = create()(
createPR: true,
defaultModel: DEFAULT_MODEL,
desktopNotifications: true,
+ cursorGlow: false,
setAutoRunTasks: (autoRun) => set({ autoRunTasks: autoRun }),
setDefaultRunMode: (mode) => set({ defaultRunMode: mode }),
@@ -48,6 +51,7 @@ export const useSettingsStore = create()(
setDefaultModel: (model) => set({ defaultModel: model }),
setDesktopNotifications: (enabled) =>
set({ desktopNotifications: enabled }),
+ setCursorGlow: (enabled) => set({ cursorGlow: enabled }),
}),
{
name: "settings-storage",