From b982ca2c5b5bed854f726f1b04e4e404d5be2d53 Mon Sep 17 00:00:00 2001 From: contributor Date: Tue, 25 Nov 2025 12:14:50 +0200 Subject: [PATCH 1/3] note context menu: search selected text in Trilium --- apps/client/src/menus/electron_context_menu.ts | 11 +++++++++++ apps/client/src/translations/en/translation.json | 1 + 2 files changed, 12 insertions(+) diff --git a/apps/client/src/menus/electron_context_menu.ts b/apps/client/src/menus/electron_context_menu.ts index 90d6a4826..98435bb2d 100644 --- a/apps/client/src/menus/electron_context_menu.ts +++ b/apps/client/src/menus/electron_context_menu.ts @@ -119,6 +119,17 @@ function setupContextMenu() { uiIcon: "bx bx-search-alt", handler: () => electron.shell.openExternal(searchUrl) }); + + items.push({ + title: t("electron_context_menu.search_in_trilium", { term: shortenedSelection }), + uiIcon: "bx bx-search", + handler: async () => { + const appContext = (await import("../components/app_context.js")).default; + await appContext.triggerCommand("searchNotes", { + searchString: params.selectionText + }); + } + }); } if (items.length === 0) { diff --git a/apps/client/src/translations/en/translation.json b/apps/client/src/translations/en/translation.json index d1f70699f..bb4e6b330 100644 --- a/apps/client/src/translations/en/translation.json +++ b/apps/client/src/translations/en/translation.json @@ -1868,6 +1868,7 @@ "copy-link": "Copy link", "paste": "Paste", "paste-as-plain-text": "Paste as plain text", + "search_in_trilium": "Search in Trilium for \"{{term}}\"", "search_online": "Search for \"{{term}}\" with {{searchEngine}}" }, "image_context_menu": { From b1c77b508ab3fb06807f5e3b7d071be6a347107f Mon Sep 17 00:00:00 2001 From: contributor Date: Tue, 25 Nov 2025 12:35:29 +0200 Subject: [PATCH 2/3] note context menu: cache appContext import call --- apps/client/src/menus/electron_context_menu.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/apps/client/src/menus/electron_context_menu.ts b/apps/client/src/menus/electron_context_menu.ts index 98435bb2d..219a009c7 100644 --- a/apps/client/src/menus/electron_context_menu.ts +++ b/apps/client/src/menus/electron_context_menu.ts @@ -4,7 +4,7 @@ import zoomService from "../components/zoom.js"; import contextMenu, { type MenuItem } from "./context_menu.js"; import { t } from "../services/i18n.js"; import type { BrowserWindow } from "electron"; -import type { CommandNames } from "../components/app_context.js"; +import type { CommandNames, AppContext } from "../components/app_context.js"; function setupContextMenu() { const electron = utils.dynamicRequire("electron"); @@ -13,6 +13,8 @@ function setupContextMenu() { // FIXME: Remove typecast once Electron is properly integrated. const { webContents } = remote.getCurrentWindow() as BrowserWindow; + let appContext: AppContext; + webContents.on("context-menu", (event, params) => { const { editFlags } = params; const hasText = params.selectionText.trim().length > 0; @@ -124,7 +126,10 @@ function setupContextMenu() { title: t("electron_context_menu.search_in_trilium", { term: shortenedSelection }), uiIcon: "bx bx-search", handler: async () => { - const appContext = (await import("../components/app_context.js")).default; + if (!appContext) { + appContext = (await import("../components/app_context.js")).default; + } + await appContext.triggerCommand("searchNotes", { searchString: params.selectionText }); From fb02751bdd6492c89224296278bbaf22cfe883b6 Mon Sep 17 00:00:00 2001 From: contributor Date: Tue, 25 Nov 2025 16:24:55 +0200 Subject: [PATCH 3/3] note context menu: change search wording to match other menu items --- apps/client/src/translations/en/translation.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/client/src/translations/en/translation.json b/apps/client/src/translations/en/translation.json index bb4e6b330..799c2a1d1 100644 --- a/apps/client/src/translations/en/translation.json +++ b/apps/client/src/translations/en/translation.json @@ -1868,7 +1868,7 @@ "copy-link": "Copy link", "paste": "Paste", "paste-as-plain-text": "Paste as plain text", - "search_in_trilium": "Search in Trilium for \"{{term}}\"", + "search_in_trilium": "Search for \"{{term}}\" in Trilium", "search_online": "Search for \"{{term}}\" with {{searchEngine}}" }, "image_context_menu": {