From 39aa663ebfe60715d2a1cf8e27f442b68898e024 Mon Sep 17 00:00:00 2001 From: miracle Date: Tue, 8 Sep 2026 11:19:24 +0800 Subject: [PATCH] feat(app): add configurable global background wallpaper --- apps/desktop/src/App.vue | 5 + .../editor/EditorSettingsDialog.vue | 151 ++++++++++++++ .../__tests__/backgroundImageWiring.spec.ts | 38 ++++ .../__tests__/useBackgroundImage.spec.ts | 114 +++++++++++ .../src/composables/useBackgroundImage.ts | 140 +++++++++++++ apps/desktop/src/i18n/locales/en.ts | 17 ++ apps/desktop/src/i18n/locales/es.ts | 17 ++ apps/desktop/src/i18n/locales/it.ts | 17 ++ apps/desktop/src/i18n/locales/ja.ts | 17 ++ apps/desktop/src/i18n/locales/ko.ts | 17 ++ apps/desktop/src/i18n/locales/pt-BR.ts | 17 ++ apps/desktop/src/i18n/locales/tr.ts | 17 ++ apps/desktop/src/i18n/locales/zh-CN.ts | 17 ++ apps/desktop/src/i18n/locales/zh-TW.ts | 17 ++ .../app/__tests__/appBackgroundImage.spec.ts | 156 ++++++++++++++ .../desktop/src/lib/app/appBackgroundImage.ts | 176 ++++++++++++++++ apps/desktop/src/lib/backend/api.ts | 4 + apps/desktop/src/lib/backend/http.ts | 22 ++ apps/desktop/src/lib/backend/tauri.ts | 21 ++ .../__tests__/settingsTransfer.spec.ts | 12 ++ .../src/lib/settings/editorSettingsDraft.ts | 3 + .../src/lib/settings/settingsTransfer.ts | 2 +- .../settingsStore.backgroundImage.spec.ts | 33 +++ apps/desktop/src/stores/settingsStore.ts | 5 + apps/desktop/src/styles/globals.css | 10 + src-tauri/src/commands/background_image.rs | 191 ++++++++++++++++++ src-tauri/src/commands/mod.rs | 1 + src-tauri/src/lib.rs | 4 + 28 files changed, 1240 insertions(+), 1 deletion(-) create mode 100644 apps/desktop/src/components/editor/__tests__/backgroundImageWiring.spec.ts create mode 100644 apps/desktop/src/composables/__tests__/useBackgroundImage.spec.ts create mode 100644 apps/desktop/src/composables/useBackgroundImage.ts create mode 100644 apps/desktop/src/lib/app/__tests__/appBackgroundImage.spec.ts create mode 100644 apps/desktop/src/lib/app/appBackgroundImage.ts create mode 100644 apps/desktop/src/stores/__tests__/settingsStore.backgroundImage.spec.ts create mode 100644 src-tauri/src/commands/background_image.rs diff --git a/apps/desktop/src/App.vue b/apps/desktop/src/App.vue index de4388b8f0..ff78d004cc 100644 --- a/apps/desktop/src/App.vue +++ b/apps/desktop/src/App.vue @@ -140,6 +140,7 @@ import { Input } from "@/components/ui/input"; import { SearchableSelect } from "@/components/ui/searchable-select"; import type { HistoryEntry } from "@/lib/backend/tauri"; import { resolveDefaultAiSchema, type AiAction } from "@/lib/ai/ai"; +import { useBackgroundImage } from "@/composables/useBackgroundImage"; import ExternalSqlFileChangeDialog from "@/components/editor/ExternalSqlFileChangeDialog.vue"; import { resolveWindowContext } from "@/lib/app/windowContext"; import { openDetachedTabWindow } from "@/lib/app/detachedTabWindow"; @@ -172,6 +173,7 @@ const { t } = useI18n(); const connectionStore = useConnectionStore(); const queryStore = useQueryStore(); const settingsStore = useSettingsStore(); +const { active: appBackgroundActive, backgroundObjectUrl: appBackgroundObjectUrl, backgroundImageStyle: appBackgroundImageStyle } = useBackgroundImage(settingsStore); const { uiFontFamilyPreview } = useUiFontFamilyPreview(); const savedSqlStore = useSavedSqlStore(); const promptTemplateStore = usePromptTemplateStore(); @@ -3386,6 +3388,9 @@ onUnmounted(() => {