diff --git a/apps/desktop/src/db/app-settings.ts b/apps/desktop/src/db/app-settings.ts
index f14c2ad8..ab379de3 100644
--- a/apps/desktop/src/db/app-settings.ts
+++ b/apps/desktop/src/db/app-settings.ts
@@ -140,6 +140,7 @@ const defaultSettings: AppSettingsData = {
preferences: {
launchAtLogin: true,
showWidgetWhileInactive: true,
+ showWidgetWhileActive: true,
showInDock: true,
},
transcription: {
diff --git a/apps/desktop/src/db/schema.ts b/apps/desktop/src/db/schema.ts
index 6f97e201..7f863ec2 100644
--- a/apps/desktop/src/db/schema.ts
+++ b/apps/desktop/src/db/schema.ts
@@ -158,6 +158,7 @@ export interface AppSettingsData {
launchAtLogin?: boolean;
minimizeToTray?: boolean;
showWidgetWhileInactive?: boolean;
+ showWidgetWhileActive?: boolean;
showInDock?: boolean;
};
telemetry?: {
diff --git a/apps/desktop/src/main/core/app-manager.ts b/apps/desktop/src/main/core/app-manager.ts
index c9e179a8..77df2ae4 100644
--- a/apps/desktop/src/main/core/app-manager.ts
+++ b/apps/desktop/src/main/core/app-manager.ts
@@ -188,12 +188,14 @@ export class AppManager {
"preferences-changed",
async ({
showWidgetWhileInactiveChanged,
+ showWidgetWhileActiveChanged,
showInDockChanged,
}: {
showWidgetWhileInactiveChanged: boolean;
+ showWidgetWhileActiveChanged: boolean;
showInDockChanged: boolean;
}) => {
- if (showWidgetWhileInactiveChanged) {
+ if (showWidgetWhileInactiveChanged || showWidgetWhileActiveChanged) {
const recordingManager =
this.serviceManager.getService("recordingManager");
const isIdle = recordingManager.getState() === "idle";
@@ -217,7 +219,11 @@ export class AppManager {
const settingsService = this.serviceManager.getService("settingsService");
const preferences = await settingsService.getPreferences();
- if (preferences.showWidgetWhileInactive || !isIdle) {
+ const shouldShow = isIdle
+ ? preferences.showWidgetWhileInactive
+ : preferences.showWidgetWhileActive;
+
+ if (shouldShow) {
this.windowManager.showWidget();
} else {
this.windowManager.hideWidget();
diff --git a/apps/desktop/src/renderer/main/pages/settings/preferences/index.tsx b/apps/desktop/src/renderer/main/pages/settings/preferences/index.tsx
index 2d0dc387..d5371c17 100644
--- a/apps/desktop/src/renderer/main/pages/settings/preferences/index.tsx
+++ b/apps/desktop/src/renderer/main/pages/settings/preferences/index.tsx
@@ -34,6 +34,12 @@ export default function PreferencesSettingsPage() {
});
};
+ const handleShowWidgetWhileActiveChange = (checked: boolean) => {
+ updatePreferencesMutation.mutate({
+ showWidgetWhileActive: checked,
+ });
+ };
+
const handleMinimizeToTrayChange = (checked: boolean) => {
updatePreferencesMutation.mutate({
minimizeToTray: checked,
@@ -48,6 +54,8 @@ export default function PreferencesSettingsPage() {
const showWidgetWhileInactive =
preferencesQuery.data?.showWidgetWhileInactive ?? true;
+ const showWidgetWhileActive =
+ preferencesQuery.data?.showWidgetWhileActive ?? true;
const minimizeToTray = preferencesQuery.data?.minimizeToTray ?? false;
const launchAtLogin = preferencesQuery.data?.launchAtLogin ?? true;
const showInDock = preferencesQuery.data?.showInDock ?? true;
@@ -123,6 +131,25 @@ export default function PreferencesSettingsPage() {
+ Show the widget on screen when recording +
+